请考虑以下矩阵:
mat <- cbind(c(5,2,5),c(6,3,2))
我想对前两行求和,所以得到以下矩阵:
7 9
5 2
如何在R中做到这一点?
答案 0 :(得分:3)
您应该使用rowsum
:
> rowsum(mat, c(1,1,2))
[,1] [,2]
1 7 9
2 5 2
第一个参数是矩阵mat
,第二个参数指定应如何将行分组在一起。这里c(1,1,2)
指定前两行在一组中(并加在一起),第三行在另一组中。
注意:请勿将此与rowSums
(另一个功能)混淆。
答案 1 :(得分:2)
我们可以使用colSums
对前n
行和其余rbind
行进行求和
n <- 2
rbind(colSums(mat[seq_len(n), ]), mat[(n + 1):nrow(mat), ])
# [,1] [,2]
#[1,] 7 9
#[2,] 5 2