使用 survminer::ggsurvplot 在 r 中以编程方式绘制许多生存曲线的问题
Posted
技术标签:
【中文标题】使用 survminer::ggsurvplot 在 r 中以编程方式绘制许多生存曲线的问题【英文标题】:issues using survminer::ggsurvplot to plot many survival curves programmatically in r 【发布时间】:2019-06-08 23:57:23 【问题描述】:我可以使用 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
我不知道为什么会这样。有谁知道如何解决这一问题?非常感谢。
【问题讨论】:
github.com/kassambara/survminer/issues/252fit2 <- do.call(survfit, args = list(formula = fml, data = lung))
【参考方案1】:
正如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
帮助页面中,它还显示了如何拟合公式列表。
【讨论】:
以上是关于使用 survminer::ggsurvplot 在 r 中以编程方式绘制许多生存曲线的问题的主要内容,如果未能解决你的问题,请参考以下文章
在使用加载数据流步骤的猪中,使用(使用 PigStorage)和不使用它有啥区别?
Qt静态编译时使用OpenSSL有三种方式(不使用,动态使用,静态使用,默认是动态使用)