使用fct_relevel调整2×2实验设计交互项因子水平排序
解决方案
你只需要在调用interaction()时添加lex.order = TRUE参数即可。该参数会让交叉因子的水平按照「先遍历第一个因子的第一个水平下所有第二个因子的水平,再遍历第一个因子的下一个水平下所有第二个因子的水平」的规则排序,无需硬编码其他非参考水平,只要提前把gen和treat的参考水平设置正确即可适配任意其他水平组合。
修改后代码
library(tidyverse) toy1 <- tidyr::expand_grid( gen = c("WT", "QQ"), treat = c("saline", "ab") ) toy1 %>% mutate(gen = fct_relevel(gen, reference="WT"), treat = fct_relevel(treat, reference="saline"), # 新增lex.order参数控制排序逻辑 inter = interaction(gen, treat, lex.order = TRUE)) %>% pull(inter)
运行输出
[1] WT.saline WT.ab QQ.saline QQ.ab Levels: WT.saline WT.ab QQ.saline QQ.ab
内容的提问来源于stack exchange,提问作者Matias Andina
相关产品推荐
相关产品推荐

