我对这个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
值.