r-如果为else(将最大值设置为以设定值结束)



如何将循环设置为运行到最大值(Dend(?我只想看看它会长得有多快、有多深,但我想设定一个最大值,说它不能长到Dend之外。

我收到一个错误,说明

In if (D == Dend) { :
the condition has length > 1 and only the first element will be used

代码

D0 <- 0 
Dend <- 4200
r <- 5 growth rate
days <- 1000 
n_steps <- days*1 

D <- rep(NA, n_steps+1)
D <- D0
for (time in seq_len(n_steps)){  
if (D == Dend){
break}  else
D[time + 1] <- r + D[time] 
}
D
plot(-D, las=1)

如果你想要一个for循环,它可能是低于的

for (time in seq_len(n_steps)){  
if (tail(D,1) >= Dend)  break
D[time + 1] <- r + D[time] 
}

我认为使用seq可以在没有任何循环的情况下实现您想要的:

D <- seq(D0, Dend, r)

如果必须使用for循环,可以使用:

for (time in seq_len(n_steps)){ 
temp <- r + D[time] 
if (temp >= Dend) break
D[time + 1] <- temp
}

我们也可以使用while循环:

i <- 1
while(TRUE) {
temp <- r + D[i] 
if(temp > Dend) break
i <- i + 1
D[i] <- temp
}

相关内容

  • 没有找到相关文章

最新更新