如何在 R 中保存 ggcoxzph 图?

How to save a ggcoxzph plot in R?

我拟合了一个 Cox 模型,然后使用 cox.zph 测试了比例风险假设。

我使用 ggcoxzph 绘制了缩放后的 Schoenfeld 残差,结果非常整洁,我想保存它。

由于我的变量是一个因素,ggcoxzph returns 4 个图的网格,顶部是全局 pvalue。

> coxt %>% cox.zph %>% ggcoxzph %>% class
[1] "ggcoxzph" "ggsurv"   "list" 

问题是 ggsave() 不接受那些 类 :

no applicable method for 'grid.draw' applied to an object of class "c('ggcoxzph', 'ggsurv', 'list')"

coxt %>% cox.zph %>% ggcoxzph %>% print 不过很有魅力。

由于此测试是在一个函数中进行的(它将应用于变量列表),因此最好不要在保存之前打印该图。

如何以这种方式保存我的情节?

这是使用gridExtra

的方法
library(gridExtra)
library(ggplot2)
ggsave("ggcoxzph", arrangeGrob(grobs = object.ggcoxzph))

完整示例

library(survival)
library(survminer)
fit <- coxph(Surv(futime, fustat) ~ age + ecog.ps + rx, data=ovarian)
cox.zph.fit <- cox.zph(fit)
plot_zph = ggcoxzph(cox.zph.fit)
library(gridExtra)
ggsave("ggcoxzph.pdf", arrangeGrob(grobs = plot_zph))