我正在尝试进行一些数据清理。我的数据包括受访者回答的调查问题,评分范围为1到5(要素类型数据)。我的数据集中有几个NA。我有49个变量。现在,我想用该列的中位数来估算每列中的NA。
我试图将数据转换为数值以获取中位数,然后我尝试将列表转换为数据框,但这没有用。
# Replacing NAs with median
# data.class(data3$column)
data4 <- lapply(data3,as.numeric)
median(data4$ER_ALLVIS)
# Replacing NAs with median
data5 %>%
mutate_all(~ifelse(is.na(.), median(., na.rm = TRUE), .))
我想用该列的中位数来估算每列中的NA。
答案 0 :(得分:0)
尽管用平均数或中位数进行插补并不是最好的方法,但在实践中却很常见。如果您希望采用这种方法:
data %>% mutate_if(is.factor, function(x) replace(x, is.na(x), median(as.numeric(as.character(x)),na.rm = TRUE)))