我正在使用PIRLS 2016和PIRLS 2021数据进行一些研究工作。我需要用加权数据执行线性回归(我为代码中的非英语语言道歉)。为了正确计算我使用的加权数据:
imputetas.kopas.X <- lapply(1:5,
function(x, dati = X) {
dati$PV <- unlist(X[, paste0("ASRREA0", x)])
return(dati)
})
然后我创建了一个设计,
dizains.X.1 <- svrepdesign(repweights = "TOTWGT",
type = "JK1",
scale = 1,
combined.weights = TRUE,
weights = P2016.1$X.TOTWGT,
data = imputationList(imputetas.kopas.X))
和
survey_design_Regr_ASBGSCR1 <- svydesign(
ids = 1:nrow(Regr.ASBGSCR1),
weights = P2016.1$X.TOTWGT,
data = Regr.ASBGSCR1
)
当尝试将所有内容合并合并并执行线性回归时:
modelis1 <- MIcombine(with(dizains.X.1, svyglm(formulla, design = survey_design_Regr_ASBGSCR1)))
这就是“formulla”变量:
formulla <- as.formula(paste("X.ASBGSCR ~ X.ASBGERL + X.ASBGSLR + X.ASBH03A + X.ASBG03 + X.ASBGHRL + X.ASBGSSB + X.ASBG06"))
所有这些变量都在设计变量中使用的相同数据框架下。我得到一个错误:
Error in UseMethod("svyglm", design) :
no applicable method for 'svyglm' applied to an object of class "svyimputationList"
我做错了什么?
1条答案
按热度按时间ttcibm8c1#
您不应该在
with()
调用中指定design=
。with()
调用的要点是,它依次将每个估算的数据集替换为您提供的表达式。例如,在with.svyimputationList
的帮助页上,没有为
svymean
指定design=
参数