我对 R 中的数据操作有一个非常普遍的问题,我正在寻找一种方便快捷的方法。假设我有一个维度为 (R)-by-(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)-by-(m)mat
的新n
矩阵(称为下一个n
元素,依此类推。这样,第一行mat
以m
数字结束。每隔一行做同样的事情mat
。
对于上面给出的示例,新矩阵第一行的第一个元素new.mat
应该是sum(mat[1,1:5])
,第二个元素是sum(mat[1,6:10])
,最后一个元素是sum(mat[1,46:50])
。第 2 行new.mat
是(sum(mat[2,1:5]), sum(mat[2,6:10),...)
.
如果可能,最好避免for
循环。谢谢!