Я пытаюсь перехватить summarize_at
операцию с кучей переменных. Вот глупый пример:
library(dplyr)
library(stringr)
starwars %>%
summarise_at(c("hair_color", "skin_color"),
~ sum(if_else(str_detect(., "brown"), 1, birth_year), na.rm = TRUE))
# A tibble: 1 x 2
hair_color skin_color
<dbl> <dbl>
1 2399. 3123.
Допустим, я хочу записать это в функцию, в которой я могу изменить birth_year
на что-то другое.
myfun <- function(df, var) {
df %>%
summarize_at(c("hair_color", "skin_color"),
~ sum(if_else(str_detect(., "brown"), 1, !! enquo(var)), na.rm = TRUE))
}
myfun(starwars, birth_year)
Error in is_quosure(e2) : argument "e2" is missing, with no default
Чего мне не хватает? Я использую dplyr v0.8.0.1, stringr v1.4 и rlang v0.3.1, работающие на R v3.5.3