2012-07-10 75 views
-1

我會盡量把它這種方式:[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] 
} 

這是行不通的。

有什麼建議嗎? 謝謝。

+0

@ttmaccer這是非常巨大的。我想逐行總結每一列,並通過這樣做創建一個新的矩陣。 – g256 2012-07-10 14:28:35

+2

請將您的問題在未來更具可重複性。例如,「fac」的結構是什麼?你有什麼錯誤?你期望得到什麼?如果你對你的問題稍加思考,你會得到無限好的答案。 – Chase 2012-07-10 14:53:48

回答

2

我只能猜測你的問題。 (你忘了錯誤信息。) 恕我直言,這是行不通的,因爲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] 
+0

非常感謝,你明白我的意思。感謝您的寶貴意見。 – g256 2012-07-10 14:47:23

+1

+1作爲心靈讀者。 – Chase 2012-07-10 14:49:59