具有至少n(> 1)个非缺失值的向量的均值R

时间:2019-04-03 10:29:59

标签: r mean na.rm

仅在至少存在多个值的情况下,我才想计算具有缺失值的向量的平均值。因此,例如,如果只有一个(或少于五个)非缺失值,我想返回NA,但是如果我有至少两个(或超过五个)非缺失值,我想返回卑鄙的。

我如何使用mean()实现这一目标?

mean()的标准行为是:如果缺少至少一个值,则返回NA;或者如果至少一个值不缺失(我希望介于两者之间),则返回均值:

x = c(1, 2, NA, NA)

mean(x)   # returns NA if there is one (or more) value missing
[1] NA

mean(x, na.rm = T) # returns the mean of the existing values (if there is at least one)
[1] 1.5

理想情况下,我想要一个适用于tapply(..., FUN = mean)方案的解决方案。

1 个答案:

答案 0 :(得分:1)

这是使用ifelse函数的一种方法:

x <- c(rep(NA_real_, 5), 1:4)

mean(x, na.rm = T)
[1] 2.5
ifelse(sum(!is.na(x)) > 5, mean(x, na.rm = T), NA_real_)
[1] NA