以特定时间间隔计算KM图中幸存者的数量

时间:2015-01-26 12:26:45

标签: r survival-analysis

我正在使用survival包进行Kaplan Meier分析,需要在Kaplan Meier图中显示特定时间段内幸存者的具体数量。

为了更好的可追溯性,我们使用示例包KMsurv

library(survival)
library(KMsurv)
data(tongue)
my.fit <- survfit(Surv(tongue$time,tongue$delta)~1)
pl=plot(my.fit,conf.int=FALSE)

我需要的是将特定点的幸存者的具体数量显示为x轴上的文本(例如,在50,100,150,200 ......),在这种情况下将是49,22,11 ,5 ......

问题是,summary(my.fit)没有给出我在50时剩余幸存者的数量,所以我需要前一个时间步的值。这应该在我设定的整个时间间隔内完成。以下是更好理解的摘要的一部分:

time n.risk n.event survival std.err lower 95% CI upper 95% CI    
32     51       1    0.634  0.0541       0.5363        0.750
41     50       1    0.621  0.0545       0.5232        0.738
42     49       1    0.609  0.0549       0.5101        0.726
51     48       1    0.596  0.0552       0.4971        0.715
56     47       1    0.583  0.0554       0.4842        0.703

如何获取特定时间段内幸存者数量的列表或数据框,列表将为c(49,22,11,5,5,5,5,5) 50天步骤。如果我可以生成它,它将被包含在

的情节中
text(y=0.1,x=seq(0,400,50),labels=survivorslist)

1 个答案:

答案 0 :(得分:2)

如果我正确理解'舌头'数据,您可以使用'时间'变量(“死亡时间”)来计算在给定时间间隔内死亡的患者数量(此处时间步长为50),如下所示:

tt <- table(cut(x = tongue$time, breaks = seq(from = 0, to = 400, by = 50)))
tt
# (0,50]  (50,100] (100,150] (150,200] (200,250] (250,300] (300,350] (350,400] 
#     32        27        13         4         3         0         0         1

每个时间步之后的幸存者数量是:

80 - cumsum(tt)
# (0,50]  (50,100] (100,150] (150,200] (200,250] (250,300] (300,350] (350,400] 
#     48        21         8         4         1         1         1         0