You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用gtsummary或gt在表格中插入自定义值

解决方案:向gtsummary表格插入自定义值

你需要将df2中的自定义百分比值插入到合并后的表格的「Adjusted Calculation」列,替换该列的原始统计结果,同时保留「Standard Calculation」列的默认计算值。可以通过gtsummary的modify_table_body函数结合数据匹配来实现,具体代码如下:

library(dplyr)
library(gtsummary)
set.seed(666)
df1 <- data.frame(type=factor(round(runif(n=5000,min=1,max=5.49),digits=0),levels=c(1,2,3,4,5),labels=c("Apollo","Atens","Atiras","Amor","Unknown")),
                  class=factor(round(runif(n=5000,min=1,max=4.49),digits=0),levels=c(1,2,3,4),labels=c("C-type","S-type","M-type","Unknown")))
# 自定义待插入的表格值
df2 <- data.frame(c1=c('type_apollo','type_atens','type_atiras','type_amor','type_unknown','class_c-type','class_s-type','class_m-type','class_unknown'),
                  c2=c('15%','21%','18%','20%','26%','12%','30%','32%','26%'))

# 生成两个基础表格
example1.tab <- df1 %>% tbl_summary(label=list(type~"Type",class~"Class"))
example2.tab <- df1 %>% tbl_summary(label=list(type~"Type",class~"Class"))

# 合并表格并调整表头,同时替换自定义值
ex_all.tab <- tbl_merge(list(example1.tab, example2.tab)) %>%
  modify_spanning_header(c(stat_0_1, stat_0_2) ~ NA_character_) %>%
  modify_header(stat_0_1~"Adjusted<br>Calculation",stat_0_2~"Standard<br>Calculation") %>%
  modify_table_body(function(data) {
    # 创建匹配ID,和df2的c1格式对齐
    data <- data %>%
      mutate(
        match_id = case_when(
          variable == "type" ~ paste0("type_", tolower(label)),
          variable == "class" ~ paste0("class_", tolower(gsub("-", "", label))),
          TRUE ~ NA_character_
        )
      )
    # 匹配自定义值并替换目标列
    data <- left_join(data, df2, by = c("match_id" = "c1")) %>%
      mutate(stat_0_1 = ifelse(!is.na(c2), c2, stat_0_1)) %>%
      select(-match_id, -c2)
    return(data)
  })

# 查看最终表格
ex_all.tab

关键步骤说明:

  • 生成匹配标识:通过mutate创建和df2$c1格式一致的match_id,将变量名和类别名统一转换为小写并拼接,确保能和自定义值的键值精准对应。
  • 匹配替换目标列:用left_join关联df2的自定义值到表格数据中,然后替换「Adjusted Calculation」对应的stat_0_1列内容,仅替换存在自定义值的行。
  • 清理临时数据:移除用于匹配的临时列,保持表格数据结构整洁。

处理完成后,「Adjusted Calculation」列会显示df2中的自定义百分比,「Standard Calculation」列保留原始统计结果,完全符合你期望的表格样式。

内容的提问来源于stack exchange,提问作者seehorse

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 20:33:16