首页 > 解决方案 > 在看门人 tabyl 中使用字符串!!!顶层

问题描述

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

我知道我可以将字符串转换为符号,然后使用big banginside dplyr 函数,例如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")

不能!!!在顶层使用

标签: rrlangjanitor

解决方案


一种选择是创建一个表达式并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%)

推荐阅读