首页 > 解决方案 > lmer 中的动态协变量在 emmeans 中不起作用

问题描述

我正在尝试在模型中使用动态协变量(取自用户输入)lmer。这工作正常,但应用emmeans不再工作。

例子:

fit1 = lmer(get(uservar) ~ Intervention + period + sequence + age + (1|ID),
            data = mydata, REML=T)

emmeans(fit1, list(pairwise ~ Intervention), adjust = "tukey")

运行没有问题。

lmer(get(uservar) ~ Intervention + period + sequence + get(covariable) + (1|ID),
     data = mydata, REML=T)

"age"从用户输入弹出框中获取协变量也可以。

但:

emmeans(fit1, list(pairwise ~ Intervention), adjust = "tukey")

不再运行。它在说:

变量有不同的长度(为“协变量”找到)

但事实并非如此。如果我检查mydata[,covariable]它的长度与其他变量相同。

有什么建议该怎么做吗?

标签: rvariablesdynamiclme4emmeans

解决方案


emmeans()必须能够重建预测变量的数据,以获得诸如协变量的平均值和因子水平之类的东西。如果您将用户指定的数据保存在数据框中并使用该数据框拟合模型,它将起作用。但请记住,如果您随后更改该数据框,例如使用另一个用户输入,emmeans()即使您不重新调整模型,它也会更改结果,因为它无法知道数据已更改。


推荐阅读