结合Survfit和ggplot对象的生存分析

时间:2018-07-20 12:24:27

标签: r ggplot2 survival-analysis survival

可能有用的一些背景知识。我有两个情节需要合并。

  1. 我已经使用“生存”包从一组数据生成了Kaplan-Meier曲线。
  2. 我还创建并使用了自定义函数来生成生存曲线(由WinBUGS处理后,根据相同的数据)

我通过以下方式生成我的K-M曲线。

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"

https://i.stack.imgur.com/RnSIz.png

现在考虑我的自定义函数,(注意:nma是Winbugs的自定义对象)

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

它还输出必要的绘图,

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

https://i.stack.imgur.com/yASja.png

我现在的问题是,是否可以将surv.plot和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 个答案:

答案 0 :(得分:0)

编辑:我刚刚意识到您可能会要求将曲线合并到一个面板中,在这种情况下,我认为按Markus的注释适用。

您应该可以使用grid.arrange来做到这一点:

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

或者,如果您想要更多控制权(例如,添加标签,标题等),则可以查看cowplot

cowplot::plot_grid(KM.plot$plot, surv.plot, ncol=1)