我會盡量把它這種方式:[R總和在for循環中
我正在做一個總和:
tot <- fac$a[,1]+fac$b[,1]
其中A和B是因素和1的第一列。直到這裏沒事。現在
我想用一個for循環爲了做到總和爲全列:
tot <- 0
for (i in 5:13) {
tot[,i] <- fac$a[,i]+fac$b[,i]
}
這是行不通的。
有什麼建議嗎? 謝謝。
我會盡量把它這種方式:[R總和在for循環中
我正在做一個總和:
tot <- fac$a[,1]+fac$b[,1]
其中A和B是因素和1的第一列。直到這裏沒事。現在
我想用一個for循環爲了做到總和爲全列:
tot <- 0
for (i in 5:13) {
tot[,i] <- fac$a[,i]+fac$b[,i]
}
這是行不通的。
有什麼建議嗎? 謝謝。
我只能猜測你的問題。 (你忘了錯誤信息。) 恕我直言,這是行不通的,因爲tot
是類數字並沒有矩陣(並沒有列均未可以通過指數i
訪問任何行)。
要修復代碼:tot <- matrix(ncol=ncol(fac$a), nrow=nrow(fac$b))
BTW你不應該使用一個for循環對於這種計算。改爲使用矢量化:
a <- matrix(10, ncol=13, nrow=10)
b <- matrix(20, ncol=13, nrow=10)
tot <- a[, 5:13] + b[, 5:13]
@ttmaccer這是非常巨大的。我想逐行總結每一列,並通過這樣做創建一個新的矩陣。 – g256 2012-07-10 14:28:35
請將您的問題在未來更具可重複性。例如,「fac」的結構是什麼?你有什麼錯誤?你期望得到什麼?如果你對你的問題稍加思考,你會得到無限好的答案。 – Chase 2012-07-10 14:53:48