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

如何在tbl_uvregression生成的Poisson回归表中添加合计行

在tbl_uvregression生成的Poisson单变量分析表中添加合计行

需求说明

为tbl_uvregression()生成的Poisson回归单变量分析表格添加合计行,展示样本的总事件数与总暴露时间。

解决方案

通过以下步骤实现:

  1. 计算数据集的总事件数和总暴露时间;
  2. 生成回归表格时,添加分组的事件数和暴露时间统计列;
  3. 向表格主体插入合计行,填充预先计算的总统计量;
  4. 格式化表格,隐藏合计行中不需要的NA值。

完整代码

library(gtsummary)
library(tidyverse)

# 构造数据集
df = tibble(
  study_arm = c("C", "T", "C", "T", "C", "T", "C", "T"),
  events = c(3,4,12,6,7, 8,9,10),
  time_at_risk = c(100,200,400,200,300,100,500,500)
)

# 计算总事件数与总暴露时间
total_stats <- df %>%
  summarize(
    total_events = sum(events),
    total_time = sum(time_at_risk)
  )

# 生成带合计行的回归表格
df %>% 
  tbl_uvregression(
    y= events,
    method = glm,
    formula = "{y} ~ {x} + offset(log(time_at_risk))",
    method.args = list(family = poisson(link = log)),
    exponentiate = TRUE,
    include= -time_at_risk,
    hide_n = TRUE,
    pvalue_fun = function(x) style_pvalue(x, digits = 3),
    # 添加分组的事件数和暴露时间统计列
    add_stat = list(
      ~style_number(sum(.data$events), digits = 0) %>% paste0(" 事件"),
      ~style_number(sum(.data$time_at_risk), digits = 0) %>% paste0(" 人时")
    ),
    stat_label = list(
      ~"事件数", ~"暴露时间"
    )
  ) %>%
  # 插入合计行
  modify_table_body(
    ~ .x %>%
      bind_rows(
        tibble(
          variable = "合计",
          row_type = "label",
          label = "合计",
          n = NA,
          estimate = NA,
          conf.low = NA,
          conf.high = NA,
          p.value = NA,
          stat_1 = paste0(total_stats$total_events, " 事件"),
          stat_2 = paste0(total_stats$total_time, " 人时")
        )
      )
  ) %>%
  # 隐藏合计行中无关的NA值
  modify_fmt_fun(
    list(estimate ~ NA, conf.low ~ NA, conf.high ~ NA, p.value ~ NA)
  )

代码说明

  • add_stat参数用于在表格中新增分组的事件数和暴露时间列,方便对比各组与合计的差异;
  • modify_table_body通过bind_rows插入合计行,填充总统计量;
  • modify_fmt_fun用于隐藏合计行中回归相关的NA值,让表格更整洁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 17:40:17