我有一些相同维度的矩阵。某些值缺失或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不正确
答案 0 :(得分:4)
如果m1
,m2
,m3
是矩阵
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