输入数据必须有 class 个中音

Input data must have class mids

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

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

Error in complete(imputation[1]) : Input data must have class 'mids'.

然而,当我查找 class 时,它 中频,这里出了什么问题?

这是我的代码:

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]))
}

有人可以帮助我吗?

我们遇到错误,因为 class 不是 mids:

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

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

来自 ?complete 的手册:

Usage

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)))