如何为含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() # 每个分层表格单独生成总计列 )
补充:添加全局总计列
如果需要在所有分层之外增加一个全局范围的总计列,可以分三步操作:
- 先生成分层表格
- 单独生成全局汇总的总计表格
- 用
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
相关产品推荐
相关产品推荐

