R でのデータ操作に関する非常に一般的な質問があり、便利で迅速な方法を探しています。次元 (R) 行 (nxm) の行列、つまり R 行と n × m 列の行列があるとします。
set.seed(999)
n = 5; m = 10; R = 100
ncol = m*n
mat = matrix(rnorm(n*m*R), nrow=R, ncol=ncol)
new.mat
ここで、次元 (R) 行 (m)の新しい行列 ( と呼びます) が必要です。つまり、 の特定の行が与えられた場合、最初の要素mat
の数値 (合計など) を計算し、次に次の数値を計算します。n
次のn
要素など。このように、 の最初の行は数字でmat
終わりm
ます。の 1 行おきに同じことが行われmat
ます。
上記の例では、新しい行列の 1 行目の 1番目の要素new.mat
は、 sum(mat[1,1:5])
2 番目の要素はsum(mat[1,6:10])
、最後の要素は になりsum(mat[1,46:50])
ます。の 2 行目はnew.mat
です(sum(mat[2,1:5]), sum(mat[2,6:10),...)
。
可能であれば、for
ループを回避することをお勧めします。ありがとうございました!