将矩阵中的两行相加

时间:2019-10-03 07:13:44

标签: r matrix sum

请考虑以下矩阵:

mat <- cbind(c(5,2,5),c(6,3,2))

我想对前两行求和,所以得到以下矩阵:

7 9
5 2

如何在R中做到这一点?

2 个答案:

答案 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