R: 减少功能.Na处理

  • 本文关键字:Na 处理 功能 r list na
  • 更新时间 :
  • 英文 :


我有一个关于Reduce函数的问题。例如,我有一个列表,其中一个元素具有NA

a<-list(c(1,2),c(2,2),c(1,NA))

我希望使用Reduce函数对列表中的元素进行平均。

(1+2+1)/3=1.33(2+2+NA)/3 = NA。但在最后一种情况下,我实际需要的是避免NA,所以结果应该是(2+2)/2 = 2,所以最终结果是矢量1.33, 2

我使用Reduce("+", a)/length(a),但由于NA元素,我得到了NA

提前感谢

我不会为此使用Reduce。无论如何,它只是一个隐藏的for循环。这里有一个更好的选择:

rowMeans(do.call(cbind, a), na.rm = TRUE)
#[1] 1.333333 2.000000

这将向量组合成一个矩阵,并使用rowMeans函数计算行平均值,该函数可以删除NA值。

最新更新