Если еще (установите максимум, чтобы закончить на заданном значении) - PullRequest
0 голосов
/ 29 апреля 2020

Как настроить al oop на максимальное значение (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)

Ответы [ 2 ]

1 голос
/ 29 апреля 2020

Если вы хотите for l oop, это может быть что-то вроде ниже

for (time in seq_len(n_steps)){  
  if (tail(D,1) >= Dend)  break
  D[time + 1] <- r + D[time] 
}
0 голосов
/ 29 апреля 2020

Я думаю, что вы можете достичь с помощью seq без каких-либо петель:

D <- seq(D0, Dend, r)

Если вам нужно использовать for l oop, вы можете использовать:

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

Мы также можем использовать while l oop:

i <- 1
while(TRUE) {
  temp <- r + D[i] 
  if(temp > Dend) break
  i <- i + 1
  D[i] <- temp
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...