1

我一直在尝试在 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

}

我相信我已经将问题隔离到我正在使用的 while 循环中,在 for 循环中。我不知道为什么它不会停止运行。任何意见或建议将不胜感激!

4

0 回答 0