使用 survminer::ggsurvplot 在 R 中以编程方式绘制许多生存曲线的问题



我可以用ggsurvplot绘制一个像下面这样的Kaplan-Meier图:

library(survminer)
library(survival)
fit1 = survfit(Surv(time, status) ~ sex, data = lung)
ggsurvplot(fit1, data = lung)

但是,我需要以编程方式绘制许多 KM 图。我需要将不同的变量作为字符串传递。我在下面试过。

fml = as.formula(paste('Surv(time, status)~', 'sex'))
fit2 = survfit(fml, data = lung)
ggsurvplot(fit2, data = lung)

令人惊讶的是,这不起作用。我收到以下错误消息:

Error: object of type 'symbol' is not subsettable

我不知道为什么会这样。有谁知道如何解决这个问题? 多谢。

正如 Aidan 评论中的链接所建议的那样,您需要使用函数 survminer::surv_fit() ,它是survival::survfit()的包装器。所以,在你的例子中,

library(survminer)
library(survival)
 # lung is distributed as an object, survival::lung
fit1 = surv_fit(Surv(time, status) ~ sex, data = lung)
ggsurvplot(fit1, data = lung)

然后可以绘制surv_fit(object.formula)的输出

fml = as.formula(paste('Surv(time, status)~', 'sex'))
fit2 = surv_fit(fml, data = lung)
ggsurvplot(fit2, data = lung)

surv_fit帮助页面中,它还显示了如何适应公式列表。

最新更新