R - 在向量或列表中保存For循环中的值

时间:2018-02-16 20:40:06

标签: r for-loop vector

我正在尝试在向量中保存此for循环的每次迭代。

for (i in 1:177) { a <- geomean(er1$CW[1:i]) }

基本上,我有177个值的列表,我希望脚本能够逐个查找列表的累积几何平均值。现在它只给我最终值,它不会将每个循环迭代保存为列表或向量中的单独值。

3 个答案:

答案 0 :(得分:3)

您的代码不起作用的原因是每次迭代都会覆盖对象a。例如,以下代码正是您所希望的:

    a <- c()
    for(i in 1:177){
      a[i] <- geomean(er1$CW[1:i])
    }

或者,这也可行:

    for(i in 1:177){
      if(i != 1){
      a <- rbind(a, geomean(er1$CW[1:i]))
      }
      if(i == 1){
        a <- geomean(er1$CW[1:i])
      }
    }

答案 1 :(得分:0)

我和@nate_edwinton一起开始了与rbind类似的路径,但无法理解。然而,我确实提出了一些有效的方法。嗯,geo_mean。凉。强制回到清单。

MyNums <- data.frame(x=(1:177))
a <- data.frame(x=integer())
for(i in 1:177){
  a[i,1] <- geomean(MyNums$x[1:i])
}
a<-as.list(a)

答案 2 :(得分:0)

您可以尝试定义可以先保存结果的变量

b <- c()
for (i in 1:177) {
    a <- geomean(er1$CW[1:i])
    b <- c(b,a)
}