对于r -rouble中的循环问题

约翰·杜

我在R中的这个for循环时遇到了麻烦

for (times in out){
  if(times < 15) {
    beta <- 0.02
  }else if (15 <= times & times <= 55)  {
   beta <- 0.002 
  }else if(times > 55){ 
   beta <- 0.01
  }
}

parms <- c(beta, gamma=0.7, rho=0.9)
y <- c(S =980/1000 , I =1/1000 , E=1/1000)
times <- seq(0, 200, by=1)
out <- NULL


我得到的错误消息是:

“解析错误(文本= x,srcfile = src):12:4:意外符号11:beta == 0.003 12} elif ^调用:...-> parse_all-> parse_all.character-> parse暂停执行。”

我想做的是根据时间值更新参数值beta,但是此for循环不起作用。有人可以给些建议吗?

瑞·巴拉达斯(Rui Barradas)

我看到的一个错误是分配

out <- NULL

并循环

for(times in out)

这没有多大意义,但不会给出问题中的错误。


可以使用矢量化方法来更新beta的值findInterval完全没有循环。

#times <- seq(0, 200, by = 1)
times <- 0:200

beta_vals <- c(0.004, 0.002, 0.0012)
vec <- c(25, 35, Inf)

i <- 1L + findInterval(times, vec, rightmost.closed = TRUE, left.open = TRUE)
beta <- beta_vals[i]

beta
#  [1] 0.0040 0.0040 0.0040 0.0040 0.0040 0.0040 0.0040 0.0040 0.0040 0.0040 0.0040 0.0040 0.0040 0.0040
# [15] 0.0040 0.0040 0.0040 0.0040 0.0040 0.0040 0.0040 0.0040 0.0040 0.0040 0.0040 0.0020 0.0020 0.0020
# [29] 0.0020 0.0020 0.0020 0.0020 0.0020 0.0020 0.0020 0.0020 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012
# [43] 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012
# [57] 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012
# [71] 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012
# [85] 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012
# [99] 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012
#[113] 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012
#[127] 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012
#[141] 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012
#[155] 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012
#[169] 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012
#[183] 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012 0.0012
#[197] 0.0012 0.0012 0.0012 0.0012 0.0012

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章