阅读使用 dplyr 编程的指南,我可以...
一次引用所有变量。但是我怎样才能单独使用它们呢?
这是一个计算两个变量的函数。它成功使用quos()
and !!!
:
library(dplyr) # version 0.6 or higher
library(tidyr)
# counts two variables
my_fun <- function(dat, ...){
cols <- quos(...)
dat <- dat %>%
count(!!!cols)
dat
}
my_fun(mtcars, cyl, am)
#> # A tibble: 6 x 3
#> cyl am n
#> <dbl> <dbl> <int>
#> 1 4 0 3
#> 2 4 1 8
#> 3 6 0 4
#> 4 6 1 3
#> 5 8 0 12
#> 6 8 1 2
现在我想要tidyr::spread
第二个变量,在这种情况下是am
列。当我添加到我的功能时:
result <- dat %>%
tidyr::spread(!!!cols[[2]], "n", fill = 0)
我得到:
错误:无效的列规范
我应该如何仅引用cols <- quos(...)
列表的第二个变量?