目的 '。'使用 dplyr 管道时未找到

Object '.' not found while piping with dplyr

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

我得到了一个相同的错误。有谁能弄清楚如何从我的数据框一直通过生存曲线进行管道传输?我想这样做的原因是简化数据框的过滤,以便生成大量不同的生存曲线,而无需创建许多子集数据框。

显然,ggsurvplot 需要 class "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"))