修改gt表格多模型列标签 有无无需命名向量的简便方法?
gt表格多模型列标签批量修改方案
有两种比手动写键值对更高效的方法,完全支持直接传入名称向量操作:
方法1:直接在modelsummary输出时定义列名(最省事)
不需要后续调用gt的修改函数,在构造模型列表时直接给列表元素命名即可,输出的gt表格自动应用你设置的列名:
data('mtcars') mod1 <- lm(mpg~wt, data=mtcars) mod2 <- lm(hp~wt, data=mtcars) library(modelsummary) library(gt) # 直接给模型列表命名,输出的列标签自动生效 mods <- modelsummary(list("模型1" = mod1, "模型2" = mod2), output="gt")
方法2:针对已生成的gt表格批量传入名称向量修改
如果你已经生成了gt表格不想重新跑模型输出,可以用以下两种方式实现批量修改:
方式A:按列位置匹配,不需要处理原有列名
用cols_label_with()指定要修改的列位置,直接传入对应顺序的名称向量即可:
# 假设表格第2、3列是你要修改的两个模型列,直接传入新标签向量 mods %>% cols_label_with(columns = 2:3, fn = ~c("模型1", "模型2"))
方式B:按原有列名匹配批量转换
如果需要和原有列名对应修改,用!!!操作符解开批量构造的命名向量即可,不需要手动逐个写键值对:
# 先定义新标签向量和对应的原有列名向量 new_labels <- c("模型1", "模型2") old_cols <- c("mpg", "hp") # 批量传入完成修改 mods %>% cols_label(!!!setNames(old_cols, new_labels))
内容的提问来源于stack exchange,提问作者spindoctor
相关产品推荐
相关产品推荐

