我有8个小组:
df <- structure(list(group1 = c(1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 5, 6,
6, 7, 8, 8)), class = c("tbl_df", "tbl", "data.frame"), row.names = c(NA,
-16L))
group1
<dbl>
1 1
2 1
3 2
4 2
5 3
6 3
7 4
8 4
9 5
10 5
11 5
12 6
13 6
14 7
15 8
16 8
如何创建一个新的group2,将每个连续的N(假设N=2)个组合并为一个新组,如下所示:
group1 group2
<dbl> <dbl>
1 1 1
2 1 1
3 2 1
4 2 1
5 3 2
6 3 2
7 4 2
8 4 2
9 5 3
10 5 3
11 5 3
12 6 3
13 6 3
14 7 4
15 8 4
16 8 4
背景:如果我想对行执行此操作,我将使用
df %>%
mutate(Col2 = rep(row_number(), each=2, length.out = n()))
但我想说group
而不是row_number()
。
2条答案
按热度按时间f8rj6qna1#
您可以使用
(group1 + N - 1) %/% N
dwbf0jvd2#
另一个将
group_by
与cur_group_id
结合使用的选项如下所示:创建于2023年3月14日,使用reprex v2.0.2