行列で次のような合計を実行しようとしています:
行列が次のようになっているとしましょう:
mat <- matrix(c(1:5,rep(0,7),c(1:7),rep(0,5),c(1:10), 0,0), 12,3)
列番号1、2、3の行番号5、7、10までの行をそれぞれ累積合計したい。(実際のデータには、任意の数の行と列を含めることができます)。
今のところ、次のコードを使用しています。
sum1 <- matrix(rep(0, 36), 12, 3)
row_index <- c(5,7,10)
for (k in 1:3) {
sum1[1:row_index[k], k] <- cumsum(mat[1:row_index[k], k])
}
sum1 <- matrix(apply(sum1,1,sum))
まず、matrix と row_index があります。データには多くの列があるため、ループの使用を避けたいです。それを行う方法があるかどうか疑問に思っています。