【发布时间】:2018-03-20 17:30:33
【问题描述】:
我有一个使用 dplyr 来汇总变量的函数。我希望能够将摘要函数的名称作为参数传递。下面的方法有效(使用 match.fun)。我想知道是否有更好/更简单的方法?
exampleFunction <- function(df, var, function_name, ...){
var <- enquo(var)
apply_some_function <-function(data, function_name, ...){
FUN <- match.fun(function_name)
FUN(data,...)
}
results <- df %>%
summarize (result=apply_some_function(!!var, function_name,...))
}
exampleFunction(iris, Sepal.Width, "mean")
exampleFunction(iris, Sepal.Width, "min")
【问题讨论】:
-
你可以使用
get -
为什么将名称作为字符串传递,而不是传递实际函数?