我有一个矩阵 temp1(维度 Nx16)(通常为 NxM)
我想将每行中的每 k 列求和为一个值。
到目前为止,这是我得到的结果:
cbind(rowSums(temp1[,c(1:4)]), rowSums(temp1[,c(5:8)]), rowSums(temp1[,c(9:12)]), rowSums(temp1[,c(13:16)]))
必须有一种更优雅(和通用)的方法来做到这一点。
我在这里注意到了类似的问题:
sum specific columns among rows
无法使用 Ananda 的解决方案; 出现以下错误:
sapply(split.default(temp1, 0:(length(temp1)-1) %/% 4), rowSums)
Error in FUN(X[[1L]], ...) :
'x' must be an array of at least two dimensions
请指教。
最佳答案
你可以使用by
:
do.call(cbind, by(t(temp1), (seq(ncol(temp1)) - 1) %/% 4, FUN = colSums))
关于R对矩阵中的每k列求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27320580/