我正在寻找一个函数,该函数接受(数据框)变量列表作为其参数之一。我已经设法让它部分工作,但是当我到达 group_by/count 时,事情就崩溃了。我怎样才能做到这一点??
## Works
f1 <- function(dfr, ..., split = NULL) {
dots <- rlang::enquos(...)
split <- rlang::enquos(split)
dfr %>%
select(!!!dots, !!!split) %>%
gather('type', 'score', -c(!!!split))
}
## does not work
f2 <- function(dfr, ..., split = NULL) {
dots <- rlang::enquos(...)
split <- rlang::enquos(split)
dfr %>%
select(!!!dots, !!!split) %>%
gather('type', 'score', -c(!!!split))
count(!!!split, type, score)
}
我想做类似的事情
mtcars %>% f2(drat:qsec)
mtcars %>% f2(drat:qsec, split = gear)
mtcars %>% f2(drat:qsec, split = c(gear, carb)) ## ??
这些调用f1()
都可以正常工作,但对于f2
任何命令都不起作用。他们都以Error in !split : invalid argument type
. 没有论点,这f2(drat:qsec)
不会(立即)起作用split
,我对此并不感到惊讶,但是如何使第二条和第三条评论起作用?