我可以使用ggsurvplot绘制一个Kaplan-Meier图,如下所示:
library(survminer)
library(survival)
fit1 = survfit(Surv(time, status) ~ sex, data = lung)
ggsurvplot(fit1, data = lung)然而,我需要以编程方式绘制许多公里图。我需要将不同的变量作为字符串进行传递。我在下面试过了。
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我不知道为什么会这样。有人知道怎么解决这个问题吗?非常感谢。
发布于 2021-11-30 01:12:05
正如Aidan's comment中的链接所建议的,您需要使用函数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帮助页面中,它还展示了如何拟合公式列表。
https://stackoverflow.com/questions/54190948
复制相似问题