r - 如何在 R 中的 emmeans() 命令中评估字符串变量作为因子?

标签 r eval emmeans

我想将 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/

相关文章:

r - 使用连续预测变量的多个值计算 emmeans

r - 如何为R中的lapply函数设置一行矩阵的条件

r - 从本地计算机 R 连接到服务器中的 PostgreSQL 数据库

javascript - 在javascript中计算字符串值,而不是使用eval

bash - 具有 STDERR/STDOUT 重定向的 eval 命令导致问题

python - python中的Lua解析器

r - 将变量粘贴到 mutate_at 函数中以改变特定列(如果存在)

R按索引对列求和

r - 无法在 map 内使用 emmeans

R:一次运行多个事后测试,使用 emmeans 包