在看门人 tabyl 中使用字符串!!!顶层

using strings within janitor tabyl !!! top level

我正在尝试使用字符串向量作为 janitor 函数中的列输入 tabyl

我知道我可以将字符串转换为符号,然后在 dplyr 函数中使用 big bang,例如 group_by

stg <- syms(c("gear", "carb"))

mtcars %>% group_by(!!!stg) %>% summarise(count = n())

但是当我尝试将同样的逻辑应用于 janitor 函数时 tabyl 我得到了错误:

mtcars %>%
  tabyl(!!!stg) %>%
  adorn_pct_formatting(rounding = "half up", digits = 0) %>%
  adorn_ns(position = "front")

不能在顶层使用!!!

一个选项是创建一个表达式并evaluate

library(rlang)
exp1 <- expr(mtcars %>%
              tabyl(!!!stg) %>%
              adorn_pct_formatting(rounding = "half up", digits = 0) %>%
              adorn_ns(position = "front"))
eval_tidy(exp1)
#gear        1        2        3        4        6        8
#    3 3 (300%) 4 (400%) 3 (300%) 5 (500%) 0   (0%) 0   (0%)
#    4 4 (400%) 4 (400%) 0   (0%) 4 (400%) 0   (0%) 0   (0%)
#    5 0   (0%) 2 (200%) 0   (0%) 1 (100%) 1 (100%) 1 (100%)