1

我正在做一个学校项目,我需要对缺失的数据进行插补,在用老鼠插补后,我试图生成具有完整功能的完整数据集。

当我一一运行它们时,一切正常,但是我想使用 for 循环以防万一我想要的不仅仅是m = 5插补。现在,当尝试运行时for-loop,我总是得到错误

完整错误(插补[1]):输入数据必须具有“mids”类。

但是,当我查找课程时,它中间的,这里出了什么问题?

这是我的代码:

imputation <- mice(data = data, m = 5, method = "norm", maxit = 1, seed = 500) 
m <- 5
for(i in 1:m){
  completeData[m] <- complete(imputation[m])
  print(summary(completeData[m]))
}

有人可以帮我吗?

4

1 回答 1

1

我们收到错误,因为该类不是mids

imputation[1]
# $call
# mice(data = walking, m = 5, maxit = 0, seed = 500)

class(imputation[1])
# [1] "list"

从手册中?complete

用法

complete(x, action = 1, include = FALSE)

library(mice)

# dummy data imputation
data(walking)
imputation <- mice(walking, max = 0, m = 5, seed = 500)

# using for loop
m <- 5
for(i in 1:m){
  completeData <- complete(imputation, m)
  print(summary(completeData))
}

# I prefer to use lapply
lapply(seq(imputation$m), function(i) summary(complete(imputation, i)))
于 2017-03-08T12:37:35.673 回答