Я построил график Каплана Мейера с помощью ggsurvplot на выжившем объекте и пытаюсь построить еще одну кривую сверху. Линия представляет собой вектор средней продолжительности жизни. Мой KM оценивается на основе IPD с 225 наблюдениями с максимальным временем выживания 7,2 года, а мое среднее время выживания оценивается на основе байесовского анализа с выборками, взятыми из задней функции выживаемости с 6-месячными интервалами. Проблема, по-видимому, в том, что дополнительная линия, которую я пытаюсь построить из среднего времени выживания, не той же длины, что и мой фрейм данных IPD, за исключением деления последнего времени выживания на количество наблюдений в моем IPD и повторной выборки через эти интервалы из апостериорное распределение. Мне интересно, есть ли что-нибудь вокруг этого?
Мои данные выглядят так,
## IPD data
treatment t event
2 1 5.5250 1
3 1 1.9493 1
4 1 4.9473 1
7 1 5.9466 0
11 1 1.5797 1
12 1 0.5038 1
. . .
. . .
. . .
## mean survival times from the Bayesian analysis
1.0000000 0.9129731 0.8337045 0.7614860 0.6956758 0.6356917 .....
Код, который я пытаюсь,
f <- survfit(Surv(t, event)~1, data=treatment)
f1 <- ggsurvplot(f)
f2 <- f1$plot + geom_line(aes(c(0:16), meansurv))
При этом я получаю следующую ошибку:
<error/rlang_error>
Aesthetics must be either length 1 or the same as the data (225): x and y
Дополнительный вопрос: я не уверен, как создать график только с одной легендой, следующее дает две, если я использую legend = "none", оба удалены.
meansurv1 <- c(1.0000000, 0.9129731, 0.8337045, 0.7614860, 0.6956758, 0.6356917, 0.50, 0.43, 0.37)
meansurv2 <- c(1.0000000, 0.9324888, 0.8671987, 0.8042297, 0.7436717, 0.6856045, 0.6300962, 0.5772029, 0.5269681)
x<- c(0:8)
temp <- data.frame(x, meansurv1, meansurv2)
temp<- temp %>%
gather(key, value, -c(x))
f1 <- survfit(Surv(t, event)~1, data=control)
f1 <- ggsurvplot(f1, legend="right")
f1 <- f1$plot + geom_line(data = temp, aes(x=x, y=value, group=key, color=key));f1