以下R代码的工作?需要说明

时间:2018-07-15 13:12:40

标签: r

有人可以向我解释一下R代码中发生了什么吗?有必要在na.rm函数中使用mean()吗?

datasets$Age = ifelse(is.na(datasets$Age), 
                      ave(datasets$Age, FUN = function(x) mean(x, na.rm = TRUE)),
                       datasets$Age)

1 个答案:

答案 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