r - R : cannot coerce class '"mids"' into a data. 帧中的鼠标问题

标签 r r-mice

我有一个包含大约 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/

相关文章:

r - 查找数据框中每个字母的频率

r - 编写一个可跟踪的 R 函数,模仿 LAPACK 的 dgetrf 进行 LU 分解

css - R Shiny 中的响应式 CSS 属性

r - 绘制多重插补结果

r - 有没有人尝试在 'mice' 包中并行化多重插补?

r - 从 R 中的总和中排除特定列

r - 如何将一列拆分为三个不同的列,然后从结果两列中获取平均值 (R)

Round 函数不再适用于鼠标输出

r - 使用 MICE 包进行多次插补后合并 Cox PH 结果

r - 如何从文件中导入保存的 mice/mids 对象