在单独的参数中提供数据框和列

时间:2018-04-14 21:23:37

标签: r survival ggfortify

我知道如何从survival autoplotggfortify绘制生存曲线(由ovarian包制作)。在这里,我使用library(survival) library(ggfortify) autoplot(survfit(Surv(ovarian$futime, ovarian$fustat) ~ ovarian$resid.ds)) 数据框,也来自生存包。

autoplot(survfit(Surv(futime, fustat) ~ resid.ds, data = ovarian))

可以仅使用列名提供幸存函数,并分别指定数据框,如下所示:

data

这很好用。我想做的是在开头使用 myfun <- function(data, time, event, group){ autoplot(survfit(Surv(time, event) ~ group, data)) } 参数将其包装到我自己的函数中,这样我就可以使用管道并在数据帧之前过滤,而不必创建gazillions新的数据帧。

这是功能:

myfun(ovarian, futime, fustat, resid.ds)

Error in Surv(time, event) : object 'futime' not found 

然而,调用它会引发错误:

CardElement

我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

我想我拥有它。使用下标地址列可以正常工作。

myfun <- function(data, time, event, group){
  autoplot(survfit(Surv(data[,time], data[,event]) ~ data[,group]))
}


filter(ovarian, futime < 500) %>%
myfun("futime", "fustat", "resid.ds")

如果你有更优雅或“正确”的解决方案,我会全力以赴。 : - )