我有一个包含大约 11,500 行和 15 个因子的数据集。我只需要估算 3 个因子的值,其中只有 2 个因子具有大量缺失值。我一直在尝试使用鼠标来创建估算数据集,并且我使用以下代码:
dataset<-read.csv("filename.csv",header=TRUE)
model<-success~1+course+medium+ethnicity+gender+age+enrollment+HSGPA+GPA+Pell+ethnicity*medium
library(mice)
vempty<-c(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
v12<-c(0,0,0,0,0,0,0,1,1,1,1,0,1,1,1)
v13<-c(0,0,0,0,0,0,0,1,1,1,1,1,0,1,1)
v14<-c(0,0,0,0,0,0,0,1,1,1,1,1,1,0,1)
list<-list(vempty,vempty,vempty,vempty,vempty,vempty,vempty,vempty,vempty,vempty,vempty,v12,v13,v14,vempty)
predmatrix<-do.call(rbind,list)
MIdataset<-mice(dataset,m=2,predictorMatrix=predmatrix)
MIoutput<- pool(glm(model, data=MIdataset, family=binomial))
在此代码之后,我收到错误消息:
as.data.frame.default(data) 中的错误: 无法将“mids”类强制转换为 data.frame
我完全不知道这意味着什么。我可以轻松地进行相同的分析,只需删除丢失的数据并使用常规 glm 即可。我还想使用 lmer 对估算数据集进行多层逻辑模型(这是我与 glm 一起使用后的下一步),所以如果我做错了什么也会影响下一步,那就会也很高兴知道。我尝试在互联网上搜索此错误,但一无所获。我刚刚开始学习R,所以我对环境还不太熟悉。
感谢您的宝贵时间!
最佳答案
您需要应用with.mids
函数。我认为代码中的最后一行应该如下所示:
pool(with(MIdataset, glm(formula(model), family = binomial)))
你也可以尝试这个:
expr <- 'glm(success ~ course, family = binomial)'
pool(with(MIdataset, parse(text = expr)))
关于r - R : cannot coerce class '"mids"' into a data. 帧中的鼠标问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17194278/