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

}

forループ内で、使用しているwhileループに問題を切り分けたと思います。しかし、なぜそれが実行を停止しないのかわかりません。コメントや提案をいただければ幸いです。

4

0 に答える 0