используя строки в janitor tabyl !!! высший уровень - PullRequest
1 голос
/ 08 ноября 2019

Я пытаюсь использовать вектор строк в качестве входных данных столбца внутри функции janitor tabyl

Я знаю, что могу преобразовать строку в символы, а затем использовать big bang в 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")

МожетНе используйте !!! на верхнем уровне

1 Ответ

1 голос
/ 08 ноября 2019

Один из вариантов - создать выражение и eval uate

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%)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...