【发布时间】:2017-09-15 09:51:27
【问题描述】:
在我的数据集中,我有大约 40% 的缺失值。所以我使用了e1071 包中的impute()。我使用下面的代码通过它们的中位数来估算整数变量的缺失值,并通过它们的模式来估算字符变量的缺失值。
library(mlr)
imp1 <- impute(obj = as.data.frame(train_prop), target=character(0),
classes = list(integer=imputeMedian(), factor=imputeMode()))
执行代码后,我使用以下代码检查缺失值
table(is.na(imp1$data))
# FALSE TRUE
# 5493033 13742
显示大约 0.25% 的缺失值
在运行 impute 函数之前,我做了同样的检查,发现了以下结果
# FALSE TRUE
# 3267515 2239260
最初我的数据有 40% 的缺失值,但在运行 impute() 之后,我得到了 0.2% 的缺失值。
为什么我没有 0% 的缺失值?
【问题讨论】:
-
impute()来自哪个包。没有名为ml的包 -
@KenS。包“e1071”包含 impute() 函数。
-
会不会是你的一些变量既不是整数变量也不是字符变量?如果是这样,它们将不会被估算并且它们的缺失值将保留。
-
您说“字符变量的缺失值是该变量的模式”,但在您的论点中您提到
factor而不是character。 -
e1071具有不同的 implementation 和impute。 @PythonLearner 你能确认你使用的是哪个包吗?
标签: r missing-data