首页 > 解决方案 > 获取一个与原始数据大小相同的“survfit”对象,以防出现平局?(生存,R)

问题描述

我想要 Kaplan-Meier 估计器为我的数据框的每个人估计的生存概率。该 survfit(Surv(.))函数计算按降序排列的每个唯一时间的生存概率。

survfit从对象中获取每个个体的生存概率的优雅方法是什么?

library(survival)
data = data.frame(cbind(id = 1:10, 
            time = c(2,3,4,5,2,3,8,9,10,11), 
            status = c(1,0,0,1,0,1,0,1,0,1)))
survfit(Surv(data$time, data$status)~1)$surv
 # 0.9000 0.7875 0.7875 0.6300 0.6300 0.4200 0.4200 0.0000
survfit(Surv(data$time, data$status)~1)$time
 #  2  3  4  5  8  9 10 11

提前致谢!

标签: rsurvival-analysissurvival

解决方案


您可以将结果放在 data.frame 中,然后将其合并回

merge(data, 
   with(survfit(Surv(data$time, data$status)~1), data.frame(time, surv))
)

在这里,我只是with()用来轻松地从 survfit 结果中提取两列。


推荐阅读