У меня есть следующий код:
#1
evolve = function(N,p0,s){
tot.fit = p0*(1+s)+(1-p0)
A.fit= p0*(1+s)
return(rbinom(1,N,(A.fit/tot.fit))/N)
}
#2
N <- 1000
p <- 0.02
pvector = c()
while(p<1 & (1-p)<1){
px <- evolve(N,p,0.02)
Nm <- 20
p <- (N*px)/(N+Nm)
pvector <- c(pvector, px)
}
Конечное значение tail (pvector, n = 1) может достигать только 0 или 1. Я хочу изменить свойсценарий таким образом, что часть 2 моего сценария выполняется в цикле столько раз, сколько требуется, чтобы получить окончательное значение tail (pvector, n = 1) равным 1, по крайней мере, 20 раз.Когда он достигнет конечной итерации 20-го времени tail (pvector, n = 1) , равного 1, я также хотел бы знать, сколько раз до этого времени это было 0.
Как сделатьЯ делаю это?