2

我有一个包含大约 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,所以我对环境还不太熟悉。

谢谢你的时间!

4

1 回答 1

2

您需要应用该with.mids功能。我认为您代码中的最后一行应如下所示:

池(与(MIdataset,glm(公式(模型),家庭=二项式)))

你也可以试试这个:

expr <- 'glm(success ~ course, family = binomial)'
pool(with(MIdataset, parse(text = expr)))
于 2013-06-19T16:44:44.063 回答