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

gtsummary包tbl_survfit()多因子组合使用报错求助

解决tbl_survfit处理多因子组合生存分析的报错问题
  • 核心问题:你用~ trt + stage创建的是主效应生存模型,而非按因子组合分层的生存曲线模型,tbl_survfit主要适配分层分组的生存分析结果,因此会报错。
  • 解决方案:用strata()包裹多因子,创建包含所有组合分层的survfit对象,再传入tbl_survfit即可生成所有组合的生存概率表格。

具体代码示例

library(survival)
library(gtsummary)

# 1. 创建按trt和stage所有组合分层的survfit对象
surv_obj <- survfit(Surv(ttdeath, death) ~ strata(trt, stage), data = trial)

# 2. 生成指定时间点的生存概率表格(这里选12、24个月)
tbl_survfit(surv_obj, times = c(12, 24)) %>%
  modify_header(label ~ "分组组合") %>%
  modify_footnote(all_stat_cols() ~ "生存概率(95%置信区间)")

额外说明

如果坚持用~ trt + stage的主效应模型,tbl_survfit无法直接解析这类带协变量的模型结果。若要提取模型中的生存概率,可先用broom::tidy()整理survfit对象,再用tbl_summary()二次加工:

# 整理主效应模型的生存数据
tidy_surv <- broom::tidy(surv_obj) %>%
  dplyr::mutate(分组 = paste(trt, stage, sep = " + "))

# 生成自定义表格
tbl_summary(tidy_surv,
            by = 分组,
            include = c(time, estimate, conf.low, conf.high),
            statistic = list(
              time = "{median}",
              estimate = "{mean}",
              conf.low = "{mean}",
              conf.high = "{mean}"
            )) %>%
  modify_header(estimate ~ "生存概率") %>%
  modify_header(conf.low ~ "95% CI下限") %>%
  modify_header(conf.high ~ "95% CI上限")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 04:22:16