0

仅当至少存在多个值时,我才想计算具有缺失值的向量的平均值。因此,例如,如果只有一个(或少于五个)值是非缺失值,我想返回 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)方案。

4

1 回答 1

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
于 2019-04-03T10:47:57.517 回答