【发布时间】:2020-09-02 22:28:16
【问题描述】:
对不起,标题中的许多介词。与this question, 类似,我有一个想要传递给dplyr::count 之类的函数的引号/参数列表:
library(rlang)
suppressPackageStartupMessages(library(dplyr))
q_list <- function(...) {
enquos(...)
}
my_q_list <- q_list(
c(cyl, sort = TRUE),
c(cyl, gear, sort = TRUE)
)
my_q_list
#> <list_of<quosure>>
#>
#> [[1]]
#> <quosure>
#> expr: ^c(cyl, sort = TRUE)
#> env: global
#>
#> [[2]]
#> <quosure>
#> expr: ^c(cyl, gear, sort = TRUE)
#> env: global
由reprex package (v0.3.0.9001) 于 2020 年 9 月 2 日创建
使用 purrr 和 rlang,我如何将这个列表的每个 quosure 传递并执行到 count(mtcars, ...)
所以最终结果与:
suppressPackageStartupMessages(library(dplyr))
count(mtcars, cyl, sort = TRUE)
#> cyl n
#> 1 8 14
#> 2 4 11
#> 3 6 7
count(mtcars, cyl, gear, sort = TRUE)
#> cyl gear n
#> 1 8 3 12
#> 2 4 4 8
#> 3 6 4 4
#> 4 4 5 2
#> 5 6 3 2
#> 6 8 5 2
#> 7 4 3 1
#> 8 6 5 1
由reprex package (v0.3.0.9001) 于 2020 年 9 月 2 日创建
【问题讨论】:
-
也许你需要
count(mtcars, !!! q_list(cyl, gear), sort = TRUE)