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
相关产品推荐
相关产品推荐

