2

我可以使用 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

我不知道为什么会这样。有谁知道如何解决这一问题?非常感谢。

4

1 回答 1

0

正如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帮助页面中,它还显示了如何拟合公式列表。

于 2021-11-30T01:12:05.403 回答