当我 运行 complete() 时,我得到一个错误- Error in (function (类, fdef, mtable)

When I run complete(), I am getting the an error- Error in (function (classes, fdef, mtable)

我有一个看起来像这样的数据集(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)

请指出我做错的地方

似乎 NA 值未正确分配到 data_NA data.frame 中,这导致了问题。

修改后的数据(使用 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)