按升序排序emmeans结果时触发arrange错误,求修复方案
问题原因
你的错误是因为arrange(mean)中的mean被R优先识别为内置的mean()统计函数,而非emmeans结果转成tibble后的mean列名,导致传入arrange的是函数而非列向量,触发类型不匹配错误。
修复方法
有两种直接有效的修复方式:
- 用反引号包裹列名,明确指定这是数据框的列而非函数:
emmeans(tgmod, specs = c("dose", "supp")) %>% as_tibble() %>% arrange(`mean`)
- 使用dplyr的
.data代词,精准指向数据框中的目标列:
emmeans(tgmod, specs = c("dose", "supp")) %>% as_tibble() %>% arrange(.data$mean)
之前尝试的filter(!is.na(mean))无效,是因为filter场景下R的解析逻辑没有触发函数优先级冲突,但arrange中列名与内置函数名完全重合时,必须显式指定列的身份才能避免混淆。
内容的提问来源于stack exchange,提问作者Chai Jung
相关产品推荐
相关产品推荐

