【问题标题】:Calculating cell means of multiple matrices w/ NA values in R在R中计算具有NA值的多个矩阵的单元格平均值
【发布时间】: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

标签: r matrix


【解决方案1】:
 ar <- array(c(2,4,6,8,NA,2,4,6,4,6,8,NA),c(2,2,3))

在 Base R 中你会这样做:

apply(ar, c(1,2), mean, na.rm=TRUE)
     [,1] [,2]
[1,]    3    6
[2,]    4    7

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-15
    • 2011-04-23
    • 2020-05-24
    • 1970-01-01
    相关资源
    最近更新 更多