我想将 ANOVA 模型中具有自定义因子的变量分配给 emmeans() 语句。在这里,我使用 R 中的橙子数据集来使代码可重现。这是我的模型以及我通常如何计算因子存储的 emmmeans:
library(emmeans)
oranges$store<-as.factor(oranges$store)
model <- lm (sales1 ~ 1 + price1 + store ,data=oranges)
means<-emmeans(model, pairwise ~ store, adjust="tukey")
现在我想分配一个变量 (lsmeanfact) 来定义计算 lsmeans 的因子。
lsmeanfact<-"store"
但是,当我想在 emmeans() 函数中计算这个变量时,它返回一个错误,它基本上没有找到变量 lsmeanfact,因此它不会计算这个变量。
means<-emmeans(model, pairwise ~ eval(parse(lsmeanfact)), adjust="tukey")
Error in emmeans(model, pairwise ~ eval(parse(lsmeanfact)), adjust = "tukey") :
No variable named lsmeanfact in the reference grid
我应该如何更改代码才能计算变量 lsmeanfact,以便正确计算“plantcode”的 lsmeans?
最佳答案
您可以使用reformulate
功能。
library(emmeans)
lsmeanfact<-"store"
means <- emmeans(model, reformulate(lsmeanfact, 'pairwise'), adjust="tukey")
或者使用formula
/as.formula
构建公式。
means <- emmeans(model, formula(paste('pairwise', lsmeanfact, sep = '~')), adjust="tukey")
这里 reformulate(lsmeanfact, 'pairwise')
和 formula(paste('pairwise', lsmeanfact, sep = '~'))
返回 pairwise ~ 存储
。
关于r - 如何在 R 中的 emmeans() 命令中评估字符串变量作为因子?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68177838/