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

如何将ggsurvfit累积风险表的生存值替换为指定时间点事件比例?

用ggsurvfit在风险表中展示指定时间点的事件发生比例

要把风险表中的生存数据替换为事件发生比例,核心逻辑是利用「事件发生率 = 1 - 生存率」的关系,对原有的生存率统计值反向计算,同时调整置信区间的上下限顺序(因为生存率的置信区间下限对应事件发生率的上限,反之亦然)。

修改后的完整代码

library(ggsurvfit)

res <- survfit2(Surv(time, status) ~ 1, data = df_colon) %>%
  ggsurvfit(type = "risk", linewidth = 0.8) +
  add_confidence_interval() +
  add_risktable(
    risktable_stats =
      c("{n.risk} ({cum.event})",
        "{round((1 - estimate)*100)}% ({round((1 - conf.high)*100)}, {round((1 - conf.low)*100)})"),
    stats_label = c("At Risk (Cum. Events)", "Event Rate (95% CI)"),
    # 直接指定风险表要显示的时间点,和x轴刻度对齐
    times = c(0, 1, 2, 4, 6, 8)
  ) +
  scale_ggsurvfit(x_scales = list(breaks = c(0, 1, 2, 4, 6, 8)))

关键修改说明

  1. 事件发生率计算:用1 - estimate替代原有的estimate,乘以100转为百分比格式
  2. 置信区间调整:原生存率的conf.low是生存概率下限,对应事件发生率的上限;conf.high是生存概率上限,对应事件发生率的下限,因此需要调换顺序为(1 - conf.high)和(1 - conf.low)
  3. 指定时间点:通过times参数直接定义风险表要展示的时间点,配合scale_ggsurvfit的x_scales$breaks让x轴刻度和风险表时间点完全对齐
  4. 标签更新:把stats_label中的生存相关标签改为事件发生率对应描述

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 23:36:04