R:初始化向量跳过字段

时间:2017-08-29 08:38:58

标签: r vector initialization

我想使用R计算并绘制基于odinary微分方程的随机微分方程。计算ODE的每个时间步长的值。现在基于它们我想计算SDE的值,在这个过程中我注意到,该片段正在跳过一些字段。 nres的输出低于。

你能解释一下这种行为吗?

谢谢

timestep <- 0.01
times <- seq(0, 25, timestep)
N <- length(times)
nres <- vector("list", N)

for(i in times){
   print(i)
   current <- i/timestep 
   if( current > 0 ) {
      nextPos <- current + 1
      nres[[nextPos]] <- 1
   }
}

输出:

[[25]] 1
[[26]] 1
[[27]] 1
[[28]] 1
[[29]] 1
[[30]] **NULL**
[[31]] 1
[[32]] 1
[[33]] 1

2 个答案:

答案 0 :(得分:1)

尝试更改为

current <- round(i/timestep) 

答案 1 :(得分:0)

您的代码对我不起作用,因为缺少nres的定义/初始化。无论如何,我的假设是它不起作用,因为你用浮点数计算你的指数。这可能会弄乱事情。也许添加round(...,0)会起作用......

timestep <- 0.01
times <- seq(0, 25, timestep)
N <- length(times)

for(i in times){
   print(i)
   current <- i/timestep 
   if( current > 0 ) {
      nextPos <- round(current + 1, 0)
      nres[[nextPos]] <- 1
   }
}

或者做你想做的其他方式是:

timestep <- 0.01
times <- seq(0, 25, timestep)

for(i in len(times)){
    print(times[i])
    nres[i+1] <- 1
}