多个矩阵的元素之和

时间:2014-08-08 05:04:14

标签: r

我有一些相同维度的矩阵。某些值缺失或NA。

 matrix1

      [,1] [,2]
 [1,]    0    0
 [2,]   NA    2


 matrix2

      [,1] [,2]
 [1,]    1   NA
 [2,]   NA    0

 matrix3

       [,1] [,2]
 [1,]    1    0
 [2,]    3   NA

预期输出

      [,1] [,2]
[1,]    2    0
[2,]    3    2

尝试A + B + C不正确

2 个答案:

答案 0 :(得分:4)

如果m1m2m3是矩阵

 matrix(mapply(sum, m1,m2,m3, MoreArgs=list(na.rm=T)),ncol=2)
 #      [,1] [,2]
 #[1,]    2    0
 #[2,]    3    2

或者

 Reduce(`+`, lapply(list(m1,m2,m3),function(x) {x[is.na(x)] <-0;x}))
 #       [,1] [,2]
 #[1,]    2    0
 #[2,]    3    2

答案 1 :(得分:2)

这也可以通过将矩阵放入array首先(2行,2列和3个层),然后sum ming在每行和每列中来实现({{1每个层次,1:2删除了NA个值:

na.rm=TRUE