我有数据框df
df <- tibble(x = 1, y = 2) %>% group_by(x, y)
我希望使用df2
的分组变量对数据框df
进行分组。
这不起作用:
df2 <- tibble(x = 3, y = 4) %>% group_by(groups(df))
答案 0 :(得分:1)
您可以将group_by_at
与group_vars
一起使用(返回字符向量):
df2 <- tibble(x = 3, y = 4) %>% group_by_at(group_vars(df))
df2
# A tibble: 1 x 2
# Groups: x, y [1]
# x y
# <dbl> <dbl>
#1 3 4
或者如果使用group_by
和groups
返回符号列表,则需要rlang::UQS
将符号拼接为group_by
的参数:
library(rlang)
df2 <- tibble(x = 3, y = 4) %>% group_by(UQS(groups(df)))
df2
# A tibble: 1 x 2
# Groups: x, y [1]
# x y
# <dbl> <dbl>
#1 3 4