Анализ выживания, объединяющий объекты выживания и ggplot

Небольшой фон, который может быть полезен. Я нахожусь в положении, что у меня есть два графика, которые нужно объединить.

  1. Я использовал пакет "выживания", чтобы сгенерировать кривую Каплана-Мейера из набора данных.
  2. Я также создал и использовал пользовательскую функцию для создания кривых выживания (из тех же данных, после обработки WinBUGS)

Я генерирую свою кривую КМ следующим образом.

library("survminer")
library("survival")


KM.est <- survfit(Surv(IPD.data[,1],IPD.data[,2])~1,
              data=IPD.data,type="kaplan-meier")
KM.plot <- ggsurvplot(KM.est, data = IPD.data)

Когда я сейчас вызываю KM.plot, сюжет генерируется так, как я хочу. Я также могу извлечь только график с помощью KM.plot$plot, который после проверки имеет следующий класс:

> class(KM.plot$plot)
[1] "gg"     "ggplot"

Теперь рассмотрим мою пользовательскую функцию (примечание: nma - это пользовательский объект из winbugs)

prepare.survival <- prep_all_survivals(nma, "Study 1", "Treatment")
surv.plot <- survival_plot(prepare.survival)

он также выводит необходимый сюжет, с

> class(surv.plot)
[1] "gg"     "ggplot"

Мой вопрос сейчас таков: возможно ли объединить оба SurvPlot и KM.Plot в одну фигуру?

Трудно воссоздать весь проект, так как вам потребуются модели WinBUGS и несколько проприетарных функций, но я думаю, что если вы сможете предложить способ объединения таких объектов вместе, тогда я смогу воссоздать его. Обратите внимание, что объекты KM могут быть воспроизведены с помощью упомянутых пакетов и краткого описания данных, которые я предоставлю ниже.

"54" 25.06776181 24 0 1
"55" 25.10061602 23 0 1
"56" 25.62628337 22 0 1
"57" 25.98767967 21 0 1
"58" 26.21765914 20 0 1
"59" 26.41478439 19 1 1
"60" 26.51334702 17 0 1
"61" 26.54620123 16 0 1
"62" 26.67761807 15 0 1
"63" 27.72895277 14 0 1
"64" 28.28747433 13 0 1
"65" 29.24024641 12 0 1
"66" 30.35728953 11 1 1
"67" 31.47433265 9 0 1
"68" 31.96714579 8 0 1
"69" 32.13141684 7 0 1
"70" 33.57700205 6 0 1
"71" 34.98973306 5 1 1
"72" 35.44969199 3 0 1
"73" 36.13963039 2 0 1
"74" 38.47227926 1 0 1

Спасибо за ваше время!

1 ответ

Изменить: Я только что понял, что вы можете попросить объединить кривые в одну панель, и в этом случае я думаю, что комментарий по Маркус применяется.

Вы должны быть в состоянии сделать это с помощью grid.arrange:

library(gridExtra)
grid.arrange(KM.plot$plot, surv.plot)

Или, если вы хотите немного больше контроля (например, добавление меток, подписей и т. Д.), Вы можете проверить коровье заговор.

cowplot::plot_grid(KM.plot$plot, surv.plot, ncol=1)
Другие вопросы по тегам