我遇到了多数组平均的问题,例如,我有一个三维 4*4*3 数组x
,
x
, , 1
[,1] [,2] [,3] [,4]
[1,] NA NA NA NA
[2,] 0.5 NA NA NA
[3,] NA NA NA NA
[4,] NA NA NA NA
, , 2
[,1] [,2] [,3] [,4]
[1,] NA NA NA NA
[2,] 0.7 NA NA NA
[3,] 0.4 NA NA NA
[4,] NA NA NA NA
, , 3
[,1] [,2] [,3] [,4]
[1,] NA NA 0.8 NA
[2,] NA NA NA NA
[3,] NA NA NA NA
[4,] NA NA NA NA
我想要得到的是没有 NA 的总和,它是非 NA 元素数量的平均值:
基本上,结果是这样的
[,1] [,2] [,3] [,4]
[1,] 0 0 0.8 0
[2,] 0.6 0 0 0
[3,] 0.4 0 0 0
[4,] 0 0 0 0
在matlab中我是这样做nansum(x, 3)./sum(~isnan(x), 3)
的,我在R中尝试了很多,比如apply(x, 3, sum, na.rm = T)
or Reduce
,尝试先得到初步结果
[,1] [,2] [,3] [,4]
[1,] 0 0 0.8 0
[2,] 1.2 0 0 0
[3,] 0.4 0 0 0
[4,] 0 0 0 0
但是我还是没搞定,有没有人打的?