我有一个关于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
,请尝试:Reduce("+", lapply(a, function(x) replace(x, is.na(x), 0))) / Reduce("+", lapply(a, Negate(is.na)))
。 - G. Grothendieck