有人可以向我解释一下R代码中发生了什么吗?有必要在na.rm
函数中使用mean()
吗?
datasets$Age = ifelse(is.na(datasets$Age),
ave(datasets$Age, FUN = function(x) mean(x, na.rm = TRUE)),
datasets$Age)
答案 0 :(得分:1)
请考虑以下示例。
如果向量中没有NA值,则均值计算正确。如果有NA值,而您不添加na.rm=TRUE
,则平均值将为NA
。为防止这种情况,请添加na.rm=TRUE
。
vec <- c(1,4,3,5,4,2,3,4,5,2,3)
vecNA <- c(1,4,3,5,4,2,3,4,5,2,3, NA)
mean(vec)
[1] 3.272727
mean(vecNA)
[1]不适用
mean(vecNA, na.rm = TRUE)
[1] 3.272727