group_by数据帧由另一个数据帧的分组变量组成

时间:2017-12-08 01:50:02

标签: r dplyr

我有数据框df

df <- tibble(x = 1, y = 2) %>% group_by(x, y)

我希望使用df2的分组变量对数据框df进行分组。

这不起作用:

df2 <- tibble(x = 3, y = 4) %>% group_by(groups(df))

1 个答案:

答案 0 :(得分:1)

您可以将group_by_atgroup_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_bygroups返回符号列表,则需要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