Can anyone point me to a way to group pairs of numbers into sets. For e.g.
g a set
1 a 1 1
2 a 2 1
3 b 1 1
4 b 2 1
5 c 1 1
6 c 2 1
7 c 3 2
8 c 4 2
9 d 1 1
10 d 2 1
11 e 1 1
12 e 2 1
13 e 3 2
14 e 4 2
15 e 5 3
16 e 6 3
Here each group, g
, has a counter, a
. In a, 1 and 2 are set 1, 3 and 4 are set 2, 5 and 6 are set 3 and so. Is there a way top formalise the calculation of set as a increases to any number? If so what tools in R would facilitate this?
I have tried using cumsum with dply:group_by()
but this is clearly incorrect
df <- df %>% group_by(g) %>% mutate(set = cumsum(a))
g a set
<chr> <dbl> <dbl>
1 a 1 1
2 a 2 3
3 b 1 1
4 b 2 3
5 c 1 1
6 c 2 3
7 c 3 6
8 c 4 10
9 d 1 1
10 d 2 3
11 e 1 1
12 e 2 3
13 e 3 6
14 e 4 10
15 e 5 15
16 e 6 21