簡體   English   中英

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

[英]R - Saving the values from a For loop in a vector or list

我試圖將這個 for 循環的每次迭代保存在一個向量中。

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

基本上,我有一個包含 177 個值的列表,我希望腳本能夠逐個查找列表的累積幾何平均值。 現在它只會給我最終值,它不會將每個循環迭代保存為列表或向量中的單獨值。

您的代碼不起作用的原因是對象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])
      }
    }

我開始了與@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)

可以嘗試先定義可以保存結果的變量

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM