2016-04-30 55 views
0

我以一個值開始,比如說10,然後想要向它添加一個數字(從矩陣/向量),一旦得到這個結果,我想添加矩陣中的下一個數字到這個結果等等。使用for循環將值添加到以前的值

numbers <- c(1:10) 
matrix2 <- matrix("", 1,11) 
matrix2 <- as.numeric(matrix2) 

aggregate <- for (i in length(matrix2 +1)) { 
     matrix2[1] <- 10 
     matrix2[1+i] <- matrix2[1] + numbers[i] 
    } 

爲此,我得到空的結果

我所期待的是:

 10 
10+1 = 11 
11+2 = 13 
13+3 = 16 
16+4 = 20 
20+5 = 25 

所以每次迭代後,前面的結果將有在「數字」下一個號碼向量添加到它。

有什麼建議嗎?

+3

爲什麼不用'10 + cumsum(數字)'? – Heroka

+0

非常棒!雖然我有點困惑,爲什麼我的循環不工作...... –

+0

你可能會考慮在矩陣2中檢查,因爲這是你在循環內分配數字的地方....但通常,for循環不是R的方式。 – Heroka

回答

0
numbers <- c(1:10) 
matrix2 <- matrix("", 1,11) 
matrix2 <- as.numeric(matrix2) 

matrix2[1] <- 10 
for (i in 2:length(matrix2 +1)) { 
    matrix2[i] <- matrix2[i-1] + numbers[i-1] 
} 

你需要給for循環起點和終點,你已經索引的方式,載體不會給你,你曾表示結果。

+0

感謝您的接送! –

相關問題