【发布时间】:2021-05-05 05:01:47
【问题描述】:
我正在编写一个带有一些参数summary_fn <- function(data,...,select_var,fun) 的函数。第一个参数是data,第二个是group_by,第三个是变量,最后一个是summarise的多选
有什么方法可以用 eval(parse(text=exp)) 在summarise 函数中映射?或者无论如何会有帮助?
summary_fn <- function(data,...,select_var,fun){
group <- ensyms(...)
var <- ensym(select_var)
name <- c()
expr <- c()
for( i in 1:length(fun)){
exps <- fun[[i]]
exps <- ensym(exps)
name[[i]] <- paste0(quo_name(exps),"_", quo_name(var))
expr[[i]] <- paste0(exps,"(",var,", na.rm = TRUE)")
}
print(name)
print(expr)
data %>% group_by(!!!group) %>% summarise(.......)
}
summary_fn(mtcars,cyl, am, select_var = mpg,fun = c("mean","max","min"))
【问题讨论】: