计算特定时间间隔内 KM 图中的幸存者数量
Calculate number of survivors in a KM plot in certain time intervals
我正在使用 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
如何获得特定时间段内幸存者人数的列表或 data.frame,该列表将是 c(49,22,11,5,5,5,5,5)
50 天的步骤。如果我能生成它,它将被包含在
的情节中
text(y=0.1,x=seq(0,400,50),labels=survivorslist)
如果我对'tongue'数据的理解正确,您可以使用'time'变量("Time to death")来计算在给定时间间隔(此处为时间)内死亡的患者人数步骤 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
我正在使用 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
如何获得特定时间段内幸存者人数的列表或 data.frame,该列表将是 c(49,22,11,5,5,5,5,5)
50 天的步骤。如果我能生成它,它将被包含在
text(y=0.1,x=seq(0,400,50),labels=survivorslist)
如果我对'tongue'数据的理解正确,您可以使用'time'变量("Time to death")来计算在给定时间间隔(此处为时间)内死亡的患者人数步骤 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