如何应用/设置group_by
+ summarize
的结果作为该组所有观察结果的新变量?
我们假设我有一个tibble
如下:
foo <- tribble(
~x, ~y,
1, 1,
1, 5,
1, 2,
2, 1,
2, 7,
2, 3)
x
表示群组,y
表示变量
我知道我可以通过max
获得每个小组的foo %>% group_by(x) %>% summarize(max(y))
- 。
如何将此结果设置为整个组的新列? 即导致
~x, ~y, ~max-y
1, 1, 5
1, 5, 5
1, 2, 5
2, 1, 7
2, 7, 7
2, 3, 7
答案 0 :(得分:2)
可以在分组后简单地使用mutate并指定函数:
foo %>%
group_by(x) %>%
mutate(max_y = max(y))
#output:
# A tibble: 6 x 3
# Groups: x [2]
x y max_y
<dbl> <dbl> <dbl>
1 1 1 5
2 1 5 5
3 1 2 5
4 2 1 7
5 2 7 7
6 2 3 7