当我运行complete()时,我得到一个错误 - 错误(函数(classes,fdef,mtable))

时间:2018-04-02 14:09:43

标签: r imputation r-mice

我有一个看起来像这样的数据集(A-J是列名)

A   B   C   D   E   F   G   H   I   J
1   2   2   3   2   1   1   1   1
2   1   1   1   1   1   1   1   1   1
2   1   2   2   2   2   2   2   1   1
2   1   2   1   1   1   1   1   1   1
2   1       3   3   3   2   2   2   2
2   1   3   2   2   3   1   1   1   1
    1   3   2   1   2   2   2   1   2
2   1   2   2   2   2   2   2   1   1
1   2   2   2   2   1   1   1   1
2   1   2   1   1   1   2   1   1   1
2   1   1   1   1   1   2   2   1   1
2   1   2   1   1   1   1   1   1   2
2   1   1   1           1   1   1   1
2   1   3   3   3   3   1   1   1   2
    1   2   2   1   2   1   1   1   1
    1   2   2   2   2   2   2   1   1
2   2   4   1   1   1   2   2   1   1
1   1   3   3   3   3                
2   1   3   3   1   2   2   2   2   3

我收到以下错误 -

Error in (function (classes, fdef, mtable)  : unable to find an inherited method for function ‘complete’ for signature ‘"mids", "numeric"’

我的数据有很多NULL值,我试图使用下面的代码来估算数据 -

imp_data<-mice(data = data_NA, m = 5, method = "rf", maxit = 5, seed = 500)

运行代码时出现错误 -

complete(imp_data,1)

请建议我做错的地方

1 个答案:

答案 0 :(得分:1)

似乎NA data.frame中没有正确分配data_NA值导致问题。

修改后的数据(包含NA)并使用mice对其进行转换,因为它对我有用:

library(mice)

imp_data <- mice(data = data_NA, m = 5, method = "rf", maxit = 5, seed = 500)
complete(imp_data, 1)

已编辑:OP看到的错误已通过将呼叫更改为:

来解决
mice::complete(imp_data, 1) 

可能是mice::complete被某些函数掩盖了其他包。

#Result
# A B C D E F G H I J
# 1  1 2 2 3 2 1 1 1 1 2
# 2  2 1 1 1 1 1 1 1 1 1
# 3  2 1 2 2 2 2 2 2 1 1
# 4  2 1 2 1 1 1 1 1 1 1
# 5  2 1 1 3 3 3 2 2 2 2
# 6  2 1 3 2 2 3 1 1 1 1
# 7  1 3 2 1 2 2 2 1 2 1
# 8  2 1 2 2 2 2 2 2 1 1
# 9  1 2 2 2 2 1 1 1 1 1
# 10 2 1 2 1 1 1 2 1 1 1
# 11 2 1 1 1 1 1 2 2 1 1
# 12 2 1 2 1 1 1 1 1 1 2
# 13 2 1 1 1 1 1 1 1 1 1
# 14 2 1 3 3 3 3 1 1 1 2
# 15 1 2 2 1 2 1 1 1 1 1
# 16 1 2 2 2 2 2 2 1 1 1
# 17 2 2 4 1 1 1 2 2 1 1
# 18 1 1 3 3 3 3 2 1 2 1
# 19 2 1 3 3 1 2 2 2 2 3
# 

数据

data_NA<- read.table(text = 
"A   B   C   D   E   F   G   H   I   J
1   2   2   3   2   1   1   1   1    NA
2   1   1   1   1   1   1   1   1   1
2   1   2   2   2   2   2   2   1   1
2   1   2   1   1   1   1   1   1   1
2   1   NA    3   3   3   2   2   2   2
2   1   3   2   2   3   1   1   1   1
1   3   2   1   2   2   2   1   2   NA
2   1   2   2   2   2   2   2   1   1
1   2   2   2   2   1   1   1   1   NA
2   1   2   1   1   1   2   1   1   1
2   1   1   1   1   1   2   2   1   1
2   1   2   1   1   1   1   1   1   2
2   1   1   1   NA  NA  1   1   1   1
2   1   3   3   3   3   1   1   1   2
1   2   2   1   2   1   1   1   1   NA
1   2   2   2   2   2   2   1   1   NA
2   2   4   1   1   1   2   2   1   1
1   1   3   3   3   3   NA  NA  NA  NA             
2   1   3   3   1   2   2   2   2   3",header = TRUE)