我的问题是对使用“小鼠”进行分组插补的问题的后续: multiple imputation and multigroup SEM in R
答案部分中的代码在插补部分的范围内都可以正常工作。但是之后,我剩下了一份实际上完整的数据列表,但不止一组。该示例如下所示:
'Set up data frame'
df.g1<-data.frame(ID=rep("A",5),x1=floor(runif(5,2)),x2=floor(runif(5,10,20)),x3=floor(runif(5,100,150)))
df.g2<-data.frame(ID=rep("B",25,50)),200,250)))
df.g3<-data.frame(ID=rep("C",4,5)),75,99)),500,550)))
df<-rbind(df.g1,df.g2,df.g3)
'Introduce NAs'
df$x1[rbinom(15,1,0.1)==1]<-NA
df$x2[rbinom(15,0.1)==1]<-NA
df$x3[rbinom(15,0.1)==1]<-NA
df
'Impute values by group:'
df.clean<-lapply(split(df,df$ID),function(x) mice::complete(mice(df,m=5)))
df.clean
如您所见,df.clean是3的列表。每个组一个元素。但是每个元素都包含我要寻找的完整数据集。
原始答案建议在df.clean中rbind()获得的数据,这给了我一个具有45个观察值(原始大小的3倍)的新数据集。 这是最后一步的原始代码:
imputed.both <- do.call(args = df.clean,what = rbind)
哪个数据是“正确的”数据?为什么要最后一步?
谢谢你!