Я изо всех сил пытаюсь заставить quosures работать внутри вызова map
.
Некоторые данные игрушки:
library(tidyverse)
df <- tibble(
g1 = letters[1:2] %>%
rep(each = 3),
g2 = letters[3:5] %>%
rep(times = 2),
y = runif(6)
)
Я могу заставить эту функцию работать, где я enquo
переменную перед тем, как передать ее group_by
:
sum1 <- function(df, g){
g <- enquo(g)
df %>%
group_by(!! g) %>%
summarize(
mu = y %>%
mean
)
}
Вызов этой функции
sum1(df, g2)
дает мне ожидаемый результат. Но если я хочу map
по нескольким переменным группировки (т.е. g1
и g2
)
str_c("g", 1:2) %>%
map(
function(i)
sum1(df, i)
)
Возвращает ошибку
Error in grouped_df_impl(data, unname(vars), drop) :
Column `i` is unknown
Как настроить quosures
в вызове map
?