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

如何在风险表中展示受试者数量而非观测数量(4个受试者场景)

重复事件生存分析中调整风险表展示受试者数量的方案

你的重复事件数据中,每个受试者对应多条观测记录(示例数据共12条观测,但仅包含4个独特受试者),默认生成的风险表统计的是观测数量,而非实际的受试者数量。以下是调整代码的具体方案:

修改后的完整代码

# 加载所需包
library(survival)
library(ggplot2)
library(ggsurvfit)

# 示例数据
d1 <- data.frame (
  id = c(8, 8, 8, 18, 18, 18, 113, 113, 113, 130, 130, 130), 
  times = c(2, 2, NA, 3, 3, NA, 2, 2, NA, 3, 3, NA), 
  event1 = c(1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0)
)

# 生成包含受试者数量风险表的生存曲线
survfit2(Surv(times, event1) ~ 1, data = d1) %>%
  ggsurvfit(color = "#508050") +
  labs(title = "probability of fever clearance as a function of time") + # 设置指定标题
  add_confidence_interval(fill = "#508050") +
  add_risktable(
    # 自定义风险统计逻辑:计算每个时间点的独特受试者数
    risktable_stats = list(
      n.risk = function(data, ...) {
        length(unique(data$id))
      }
    ),
    # 可选:修改风险表列标题为更直观的名称
    risktable_labels = list(n.risk = "受试者数量")
  ) +
  scale_ggsurvfit()

关键调整说明

  • 风险表统计逻辑修改:通过add_risktable()的risktable_stats参数,重定义n.risk的计算方式——用length(unique(data$id))统计每个时间点的独特受试者ID数量,替代默认的观测数统计。
  • 标题设置:使用labs()函数添加你指定的生存曲线标题。
  • 可选优化:通过risktable_labels参数将风险表的列标题修改为更直观的文字(比如示例中的"受试者数量"),提升图表可读性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 16:12:34