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

如何为含93个分层级别的gt_summary分层表格添加总计列?

解决分层汇总表格添加总计列的问题

问题原因

add_overall() 仅支持单个 tbl_summary 对象,而 tbl_strata() 返回的是多个分层表格合并后的 tbl_strata/tbl_merge 类型对象,直接调用会触发方法不匹配错误。

解决方案

把 add_overall() 放到 tbl_strata() 的 .tbl_fun 参数内部,让每个分层的汇总表格先单独添加总计列,再完成分层合并:

table0 <- data1 %>% 
  select(A6_ULB_NAME, D6, D7, A8_TYPE_OF_HOUSE) %>% 
  tbl_strata(
    strata = A6_ULB_NAME,
    .tbl_fun = ~ .x |> 
      tbl_summary(by = A8_TYPE_OF_HOUSE, missing = "no") |> 
      add_overall()  # 每个分层表格单独生成总计列
  )

补充:添加全局总计列

如果需要在所有分层之外增加一个全局范围的总计列,可以分三步操作:

  1. 先生成分层表格
  2. 单独生成全局汇总的总计表格
  3. 用 tbl_merge() 合并两个表格
# 1. 生成分层表格
strata_table <- data1 %>% 
  select(A6_ULB_NAME, D6, D7, A8_TYPE_OF_HOUSE) %>% 
  tbl_strata(
    strata = A6_ULB_NAME,
    .tbl_fun = ~ .x |> tbl_summary(by = A8_TYPE_OF_HOUSE, missing = "no")
  )

# 2. 生成全局总计表格
overall_table <- data1 %>% 
  select(D6, D7, A8_TYPE_OF_HOUSE) %>% 
  tbl_summary(by = A8_TYPE_OF_HOUSE, missing = "no") %>% 
  add_overall() %>% 
  modify_header(label ~ "全局总计")

# 3. 合并分层表格与全局总计表格
final_table <- tbl_merge(list(strata_table, overall_table))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 21:20:56