【发布时间】:2017-01-13 12:32:31
【问题描述】:
我正在使用 dplyr 进行编程,因此我使用的是标准评估。我使用数据框和列名作为参数创建了一个通用函数。在函数中,我想应用我自己在数据框列上编写的另一个函数。这是一个最小的例子:
some_udf <- function(x) mean(x + 3)
generic_function <- function(dat, input_var){
dat %>% dplyr::summarise_(mean_3 = sprintf("some_udf(%s)", input_var))
}
现在在运行泛型函数时,我会收到以下错误:
generic_function(mtcars, 'cyl')
Error: could not find function "some_udf"
当 some_udf 被基本 R 函数替换时,例如 mean 或 sd,一切正常。
有人可以向我解释为什么 udf 在这种情况下不起作用以及可能的解决方案是什么?
【问题讨论】: