r - 如何在 R 中的 emmeans() 命令中评估字符串变量作为因子?
问题描述
我想将具有自定义因子的变量从方差分析模型分配给 emmeans() 语句。在这里,我使用 R 中的 oranges 数据集来使代码可重现。这是我的模型以及我通常如何计算因子存储的 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 ~ store
。
推荐阅读
- excel - 几列之间的单词查找/映射
- css - 如何在线使用字体真棒图标
- javascript - 如何在highchart上显示每个点的注释然后消失
- snowflake-cloud-data-platform - 雪花外部表分区 - 粒度路径
- bash - 如何将(部分)输出重定向到有异常的文件
- xaml - 当 ListView(嵌套在模板内)在 UWP 中为空时显示消息
- r - mlr3proba surv.xgboost 不产生发行版输出 + 文档链接不稳定
- r - R:SVAR 模型中的 IRF,无法显示指定模型
- iis - 无论 IIS 或 web.config 中的设置如何,ASP Classic Web 应用程序都会在 2 分钟后超时
- php - Symfony 5 表单域在不应该出现的时候出现