R语言emmeans包cld()函数输出因子水平排序异常如何解决?
问题解决方法
cld()函数默认开启了按均值排序的逻辑,会自动覆盖你预先设置的因子水平顺序,要保留原有顺序可以用以下两种方案解决:
方法1:调用cld时添加sort参数
直接在生成cld结果的代码中加入sort = FALSE,即可保留原因子水平的排序:
# 修改后的cld调用代码 cld.years <- cld(by.years, Letters = letters, sort = FALSE)
方法2:手动重设cld输出结果的因子水平
如果修改调用参数后仍有排序问题(比如后续绘图时),可以对输出的cld结果手动重设因子水平:
cld.years$Grazing.intensity <- factor(cld.years$Grazing.intensity, levels = c('No-grazing','Light-grazing','Moderate-grazing'))
额外注意事项
你当前代码中使用了attach(plants),该操作容易引发环境内的变量命名冲突,后续使用建议移除attach()语句,仅通过lmer()的data参数指定数据集即可正常运行。
内容的提问来源于stack exchange,提问作者suzz
相关产品推荐
相关产品推荐

