Можно ли добавить горизонтальный индикатор длины X, предшествующий каждому смертельному событию, к классической кривой выживания? Моя цель - визуализировать продолжительность события, предшествующего смерти каждого человека. Например, продолжительность, в течение которой пациент проходил курс лечения до смерти, или время, в течение которого каждый человек находился в плохом состоянии перед смертью ( См. Изображение ниже ).
Что я пробовал:
Я попытался добавить горизонтальные линии к объекту графика ggsurvplot
, однако я не могу получить доступ к координате y точек графика, чтобы поместить линию перед событием смерти. Есть ли решение этой проблемы в каком-либо пакете выживания R? Ниже я вставил обходной путь, который пытаюсь заменить:
library(dplyr)
library(survival)
library(survminer)
original_input <- data_frame(
Strain = rep(c("Random_1", "Random_2"), each = 100),
time = c(rnorm(100, mean = 13), rnorm(100, mean = 19)),
Censored = 0,
treatment_onset = c(time - abs(c(rnorm(100, mean=0.25), rnorm(100, mean = 2))))
)
# Ugly work-around code to retrieve population survival
original_input <- original_input[order(original_input$Strain, original_input$time), ]
fit <- survfit(Surv(time,1-Censored) ~ Strain, data=original_input)
names(fit$strata) <- gsub(pattern = "Strain=", x = names(fit$strata), replacement = "")
mod <- summary(fit)
mod <- mod[c("strata","time","surv")] %>% as_tibble()
mod <- mod[order(mod$strata, mod$time), ]
data <- cbind(original_input,mod$surv)
# plot output
ggsurv <- ggsurvplot(fit = fit, data = data, xlab = "Time")
ggsurv$plot +
geom_point(aes(x = treatment_onset, y = mod$surv, color = Strain, shape = Strain),
data = data,show.legend = FALSE) +
geom_segment(aes(x = treatment_onset, y = mod$surv,
xend = time, yend = mod$surv, color = Strain),
data = data)
Я очень благодарен за предложения о том, как реализовать это лучше! Спасибо!