我想提取模型列表的模型调用。该列表包括 glm 和 glmm。
这似乎适用于 glm 对象,但不适用于 glmerMod 对象
gm1 <- glm(cbind(incidence, size - incidence) ~ period,
data = cbpp, family = binomial)
gm1$call
>glm(formula = cbind(incidence, size - incidence) ~ period, family = binomial,
data = cbpp)
gm2 <- glmer(cbind(incidence, size - incidence) ~ period + (1 | herd),
data = cbpp, family = binomial)
gm2$call
>Error in gm2$call : $ operator not defined for this S4 class
当我单击 rstudio 环境 Pane 中的 glmerMod 对象时,我可以看到该对象确实具有与其关联的调用值。
有没有办法可以使用相同的函数从两种类型的模型中提取此信息?这将是我的偏好,因为我希望将其设置为 lapply 函数以应用于模型列表。
models <- list(gm1, gm2)
calls <- lapply(models, function(x) x$call)
最佳答案
你根本不需要summary()
。
getCall(lmm)
和 getCall(lm)
都可以工作。 (如果您深入研究这一点,您会发现 getCall
的默认方法只是 getElement(., "call")
;getElement
是一个实用函数,用于查找列表元素 ($...
) 或 S4 槽 (@...
) 形式的元素.)
关于list - 如果未为此 S4 类定义 $ 运算符,如何从 glmerMod 对象中提取模型组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69714753/