为什么不在R中输入函数无法归因所有NA值

时间:2017-09-15 09:51:28

标签: r missing-data

在我的数据集中,我有大约40%的缺失值。所以我使用了impute()包中的e1071。我使用下面的代码通过它们的中位数来计算整数变量的缺失值,并通过它们的模式将字符变量的值丢失。

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%的值?

1 个答案:

答案 0 :(得分:1)

假设impute属于classes包,只需更改class(1) [1] "numeric" 参数即可解决问题。

注意:

classes

因此,在integer参数中,只需将numeric更改为imp1 <- impute(obj = as.data.frame(train_prop), target =character(0),classes = list(numeric = imputeMedian(), factor = imputeMode()))

var object = [
    {id: 1, items: "a, b, c, d"}, 
    {id: 2, items: "a, b, d, c"},
    {id: 3, items: "a, b, c, d, e"}
    {id: 4, items: "a, b, d, c, e"}
];

希望这有帮助。