如何在gtsummary中合并表格以得到包含置信区间(CI)的汇总表
核心原因
合并操作实际已执行成功,未展示出置信区间列是因为gtsummary默认不会渲染未配置表头的自定义列,仅完成数据合并但未给新增的ci列配置显示规则,所以最终渲染表格时该列被隐藏,不属于合并不生效的问题。
修正后完整代码
library(gtsummary) library(tidyverse) # 生成基础统计表格 tbl2 <- trial %>% mutate(trt = as.factor(trt)) %>% select(grade, response, trt) %>% tbl_summary(missing = "no", type = everything() ~ "categorical") # 计算分类变量的95%置信区间 myci2 <- tbl2$meta_data %>% filter(summary_type %in% c("categorical", "dichotomous")) %>% select(summary_type, var_label, df_stats) %>% unnest(df_stats) %>% mutate( conf.low = (p - qnorm(0.975) * sqrt(p * (1 - p) / N)) %>% style_percent(symbol = TRUE), conf.high =( p + qnorm(0.975) * sqrt(p * (1 - p) / N)) %>% style_percent(symbol = TRUE), ci = str_glue("{conf.low}, {conf.high}"), label = coalesce(variable_levels, var_label), row_type = ifelse(summary_type == "dichotomous", "label", "level") ) %>% select(variable, row_type, label, ci) # 合并置信区间列并配置显示规则 finaltbl <- tbl2 %>% modify_table_body( left_join, myci2, by = c("variable", "row_type", "label") ) %>% # 给新增的置信区间列设置表头 modify_header(ci = "**95%置信区间**") %>% # 可选:调整列位置,放到统计结果列之后 modify_column_relocate(ci, .after = stat_0)
验证方式
如需确认合并结果,可运行View(finaltbl$table_body)查看表格底层数据,即可看到已合并完成的置信区间字段。
内容的提问来源于stack exchange,提问作者Moses
相关产品推荐
相关产品推荐

