在数据集中估算 NA 的中位数是最好的方法。如果 yes/no,为什么?

Is imputing median for NAs in a dataset the best approach. If yes/no, so why?

我正在尝试进行一些数据清理。我的数据包括受访者在 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。

虽然无论怎么想,使用均值或中位数进行估算都不是最佳方法,但在实践中却很常见。如果这是您希望采用的方法:

data %>% mutate_if(is.factor, function(x) replace(x, is.na(x), median(as.numeric(as.character(x)))))