我正在努力让 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
通话中进行设置?