【发布时间】:2020-11-12 02:04:35
【问题描述】:
我有几个相同维度的矩阵,我试图计算矩阵中的单元格平均值,同时考虑 NA 值。我不想删除具有一个或多个 NA 值的单元格,而只是在计算中忽略它们。因此,例如,如果我有三个矩阵,a、b 和 c...
a
c1 c2
1 2 6
2 4 8
b
c1 c2
1 NA 4
2 2 6
c
c1 c2
1 4 8
2 6 NA
我需要的是一个结果矩阵 d,如下所示...
d
c1 c2
1 3 6
2 4 7
...其中 d (3) 中单元格 [1,1] 的值将是 a (2)、b (NA) 和 c (4) 中单元格 [1,1] 的平均值,在这种情况下,只计算不是 NA 的两个值的平均值。单元格 [1,2] d (4) 的值将是单元格 [1,2] 在 a (4)、b(2) 和 c(6) 中的平均值,依此类推。我不能简单地使用 (a+b+c)/3 因为我没有每个单元格的 3 个值。在我看到的相关帖子中,结果始终是 d 中的单元格的 NA,其中任何原始矩阵在该给定单元格中都有 NA。
d
c1 c2
1 NA 6
2 4 NA
看起来这应该是一个相对简单的问题,我需要找到一个有效的解决方案,因为我的实际数据集是 1200 多行和 250 多列。
【问题讨论】:
-
我相信this answer 应该适合你,
na.rm = TRUE。