具有至少 n (>1) 个非缺失值的向量的平均值,R
mean of vector with at least n (>1) non-missing values, R
我想仅在至少存在多个值的情况下计算具有缺失值的向量的平均值。因此,例如,如果只有一个(或少于五个)值是非缺失值,我想 return NA,但如果我至少有两个(或五个以上)非缺失值,我想要return均值。
如何使用 mean()
实现此目的?
mean()
的标准行为是 return NA(如果至少有一个值缺失)或 return 平均值(如果至少有一个值不缺失(我想要介于两者之间的东西):
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)
场景的解决方案。
这是使用 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
我想仅在至少存在多个值的情况下计算具有缺失值的向量的平均值。因此,例如,如果只有一个(或少于五个)值是非缺失值,我想 return NA,但如果我至少有两个(或五个以上)非缺失值,我想要return均值。
如何使用 mean()
实现此目的?
mean()
的标准行为是 return NA(如果至少有一个值缺失)或 return 平均值(如果至少有一个值不缺失(我想要介于两者之间的东西):
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)
场景的解决方案。
这是使用 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