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

如何在{gtsummary}的tbl_uvregression中按类别展示事件数与随访时间?

解决方案:用{gtsummary}按分类变量水平展示事件数及随访时长

很高兴听到你用{gtsummary}制作回归表格体验不错!针对你希望按gender不同水平展示事件数、随访时长的需求,完全可以通过{gtsummary}自带功能实现,无需手动计算后合并表格,下面提供两种实用方案:

方案一:在单因素回归表中直接添加分组统计量

这种方法会在回归表的每个分类水平行后,直接附上对应的事件数和总随访时长:

步骤1:加载包并构造可重复数据

library(survival)
library(gtsummary)
library(dplyr)
library(glue)

set.seed(123) # 设置随机种子保证结果可重复
df <- data.frame(
  time = sample(1:1000, 100, replace = TRUE),
  event = sample(0:1, 100, replace = TRUE),
  gender = sample(c("M", "F"), size = 100, replace = TRUE),
  stringsAsFactors = FALSE
)

步骤2:定义统计量计算函数

自定义函数用于计算每个分组的事件数和总随访时长:

stat_event_time <- function(data, variable, ...) {
  data %>%
    group_by({{variable}}) %>%
    summarize(
      nevent = sum(event),
      total_time = sum(time),
      .groups = "drop"
    ) %>%
    mutate(stat = glue("事件数: {nevent}, 总随访时长: {total_time}")) %>%
    pull(stat)
}

步骤3:生成带分组统计量的回归表

tbl_uvregression(
  df,
  method = survival::coxph,
  y = survival::Surv(time = time, event = event),
  include = gender # 可选:只展示gender变量,去掉则显示所有变量
) %>%
  add_stat(
    fns = list(all_categorical() ~ stat_event_time),
    location = level # 指定统计量显示在每个分类水平行
  ) %>%
  modify_header(stat_1 ~ "**事件数及随访时长**") %>%
  modify_column_unhide(stat_1) # 确保新添加的列可见

方案二:合并生存统计表与回归表

这种方法会先生成单独的生存统计表格(包含分组的N、事件数、随访时长),再与单因素回归表合并,展示更规整:

步骤1:生成生存统计表

surv_summary <- tbl_survfit(
  Surv(time, event) ~ gender,
  data = df,
  stat_display = c(n = "N", nevent = "事件数", total_time = "总随访时长")
) %>%
  modify_column_unhide(c(n, nevent, total_time)) # 显示默认隐藏的统计列

步骤2:生成单因素回归表

reg_summary <- tbl_uvregression(
  df,
  method = survival::coxph,
  y = survival::Surv(time = time, event = event),
  include = gender
)

步骤3:合并两个表格

tbl_merge(
  list(surv_summary, reg_summary),
  tab_spanner = c("**生存统计信息**", "**单因素Cox回归结果**")
)

两种方案都能满足你的需求,你可以根据表格展示的偏好选择。如果还有其他{gtsummary}的使用问题,随时可以提问~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 22:12:26