我正在尝试使用survival
软件包绘制生存曲线。 MWE代码如下:
df %>%
filter(fac <= "Limit") %>%
survfit(Surv(tte, !is.na(event)) ~ fac, data = .) %>%
ggsurvplot(fit = .)
我收到错误Error in eval(fit$call$data) : object '.' not found
当我尝试通过以下方式进一步细分时:
survfit <- df %>%
filter(fac <= "Limit") %>%
survfit(Surv(tte, !is.na(event)) ~ fac, data = .)
ggsurvplot(fit = survfit)
我得到一个相同的错误。有谁能够弄清楚如何从我的数据帧一直到生存曲线?我之所以这样做,是为了简化数据框的过滤过程,以便生成大量不同的生存曲线,而不必创建许多子集数据框。
答案 0 :(得分:2)
显然,ggsurvplot
期望将类"survfit"
的对象作为其第一个参数,但也需要将数据集作为参数。
下面的示例基于函数的第一个示例
survfit.formula {survival}
。
library(dplyr)
library(survival)
library(survminer)
aml %>%
survfit(Surv(time, status) ~ x, data = .) %>%
ggsurvplot(data = aml)
在问题的情况下,它将变成
df %>%
filter(fac <= "Limit") %>%
survfit(Surv(tte, !is.na(event)) ~ fac, data = .) %>%
ggsurvplot(data = filter(df, fac <= "Limit"))