可以从以下位置获取以下引用的数据:https ://gist.github.com/markhwhiteii/6ce74461a789ddc6d04044de73d99939
我可以传递多项逻辑模型的交互,以通过硬编码来获得事后测试:
library(nnet)
library(emmeans)
model <- multinom(outcome ~ cond * party, data)
emmeans(model, ~ outcome + cond | party)
但是,我需要为此提供一个包装函数。如果我有作为变量的输入,然后传递这些as.formula()
,那么我会收到一个错误:
iv <- "cond"
dv <- "outcome"
mod <- "party"
formula <- as.formula(paste(dv, "~", iv, "*", mod))
model <- multinom(formula, data)
emmeans(model, as.formula(paste("~", dv, "+", iv, "|", mod)))
调用emmeans
生成:
Error in object$call$formula[[2]] :
object of type 'symbol' is not subsettable
似乎它来自multinom
函数,因为我可以将粘贴的公式emmeans
与硬编码multinom
模型一起运行。这很奇怪,因为我已经让这种方法与lm
、glm
和clm
模型一起使用。我查看了这两个model
对象的结构,它们似乎是相同的。重要的是,model$terms
两者是相同的。emmeans
调用一个函数,该函数调用一个函数,该函数调用一个方法等,因此很难使用调试器找出错误发生在哪里。