Получите объект «выжить», который будет иметь тот же размер, что и исходные данные в случае связей? (выживание, R) - PullRequest
0 голосов
/ 28 апреля 2020

Я хочу, чтобы вероятность выживания оценивалась оценкой Каплана-Мейера для каждого отдельного моего фрейма данных. Функция 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

Заранее спасибо!

1 Ответ

1 голос
/ 28 апреля 2020

Вы можете поместить результаты в data.frame, а затем просто объединить их обратно в

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

Здесь я просто использую with(), чтобы легко извлечь оба столбца из результата выживания.

...