对象“。”使用dplyr进行配管时找不到

时间:2019-11-29 17:25:01

标签: r dplyr tibble survival

我正在尝试使用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)

我得到一个相同的错误。有谁能够弄清楚如何从我的数据帧一直到生存曲线?我之所以这样做,是为了简化数据框的过滤过程,以便生成大量不同的生存曲线,而不必创建许多子集数据框。

1 个答案:

答案 0 :(得分:2)

显然,ggsurvplot期望将类"survfit"的对象作为其第一个参数,但也需要将数据集作为参数。

下面的示例基于函数的第一个示例
 survfit.formula {survival}

library(dplyr)
library(survival)
library(survminer)

aml %>%
  survfit(Surv(time, status) ~ x, data = .) %>%
  ggsurvplot(data = aml)

enter image description here

在问题的情况下,它将变成

df %>% 
  filter(fac <= "Limit") %>% 
  survfit(Surv(tte, !is.na(event)) ~ fac, data = .) %>% 
  ggsurvplot(data = filter(df, fac <= "Limit"))