【发布时间】:2021-11-04 15:01:17
【问题描述】:
我正在编写一个 R 函数,它允许用户在创建 survival::survfit 对象时指定一个单独的时间变量。 survival 包具有“无字符串”语法,这意味着时间变量的名称(在我的例子中是“dtime”)不需要任何引号:
survival::survfit(formula = survival::Surv(dtime, death) ~ 1, rotterdam)
因此,我认为我可以使用 tidy 评估来达到我的目的。这是我的代码:
# My function
get_survfit <- function(.data, .time){
return(survival::survfit(formula = survival::Surv({{ .time }}, status) ~ 1, .data))
}
# Application example
library(survival)
data(cancer)
rotterdam
colnames(rotterdam)[which(names(rotterdam) == "death")] = "status"
get_survfit(.data=rotterdam, .time=dtime)
但是,我总是收到以下错误:
生存错误::Surv({ : object 'dtime' not found
在调试器中查看“dtime”时,我得到:
总结时出错: 已在评估中的承诺:递归默认参数引用或更早 有问题吗?
我怎样才能解决这个问题并仍然获得我的功能?
【问题讨论】: