1

我正在使用 svydesign 分析估算数据集,但出现错误。下面是代码:

library(mitools)

library(survey)

data(nhanes)

nhanes$hyp <- as.factor(nhanes$hyp)

imp <- mice(nhanes,method=c("polyreg","pmm","logreg","pmm"), seed = 23109)

des<-svydesign(id=~1, strat=~age, data=imputationList(imp))


Error in as.data.frame.default(data, optional = TRUE) : cannot coerce class ""call"" to a data.frame

我正在关注此页面的教程: http ://r-survey.r-forge.r-project.org/survey/svymi.html

我如何修改代码以使其工作?

编辑:

我更改data=imputationList(imp)data=complete(imp,1)并且我能够使代码工作。但是,这效率不高,因为我必须对所有估算集执行此操作。使用时有什么磨损imputationList吗?

4

1 回答 1

1

mice()产生结果,并且imputationList需要一个包含所有五个data.frame估算值的列表,但是您需要使用它mice::complete来构造这五个已完成的data.frame对象

library(mitools)
library(survey)
library(mice)
data(nhanes)
nhanes$hyp <- as.factor(nhanes$hyp)
imp <- mice(nhanes,method=c("polyreg","pmm","logreg","pmm"), seed = 23109)
imp_list <- lapply( 1:5 , function( n ) complete( imp , action = n ) )
des<-svydesign(id=~1, strat=~age, data=imputationList(imp_list))
于 2017-02-28T12:53:50.087 回答