2016-04-30 7 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] 
    } 

私は私が期待していた何NULL

の結果をしてもらう:

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

だから、各反復の後、前回の結果が「数字」で次の番号を持っているでしょうベクトルがそれに追加されました。

提案がありますか?

+3

「10 + cumsum(numbers)」はどうしたらいいですか? – Heroka

+0

素晴らしい作品!私はちょっと混乱していましたが、なぜ私のループがうまく動作しないのでしょうか... –

+0

matrix2をチェックすることをお勧めします。ループ内の数字を割り当てる場所です...しかし、一般的に、for-loopsは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] 
} 

あなたはループの始点と終点を与える必要があり、そしてあなたがインデックス化した方法は、ベクターは、あなたが示していた結果を与えるつもりはなかったです。

+0

ピックアップありがとう! –

関連する問題