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

如何在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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 01:15:04