私は R での遺伝的浮動の基本モデルを作成しようと試みてきました。ただし、プログラムを実行しようとするたびにプログラムが停止せず、手動で停止する必要があります。
私の完全なコード:
trials <- 100 #initialize the number of times you'll generate the time to fixation
fixation <- trials #Create a vector that records the number of generations until fixation of the alleles.
genVector <- numeric(trials)
for(i in 1:trials){
pop <- c(rep('a',20), rep('b',20)) #Initialize the population with equal numbers of both a and b alleles, for twenty individuals, or 40 alleles.
genTime <- 1 #Number of generations
freq <- length(pop[grep('a', pop)])/length(pop)
while(freq > 0 | freq < 1){ #While the frequency of a in the population is greater than 0 or less than 1, perform the following calculations
pop <- sample(pop, length(pop), replace = TRUE) #Randomly select 40 alleles with constant replacement
freq <- length(pop[grep('a', pop)])/length(pop)
genTime <- genTime + 1 #Add one to the generation time
}
genVector[i] <- genTime
}
forループ内で、使用しているwhileループに問題を切り分けたと思います。しかし、なぜそれが実行を停止しないのかわかりません。コメントや提案をいただければ幸いです。