I have a data frame with a binary vector that I want to do a cumulative count of. However I would like to count the 'groups of 1's' rather than each individual 1 and create a new vector of this count while retaining the 0 separating values. i.e.
df1 <- data.frame(c(0,1,1,1,1,0,0,0,1,1,1,1,1,0,0,0,1,1,1)
n bin
1 0
2 1
3 1
4 1
5 1
6 0
7 0
8 0
9 1
10 1
11 1
12 1
13 1
14 0
15 0
16 0
17 1
18 1
19 1
becomes
n bin cumul
1 0 0
2 1 1
3 1 1
4 1 1
5 1 1
6 0 0
7 0 0
8 0 0
9 1 2
10 1 2
11 1 2
12 1 2
13 1 2
14 0 0
15 0 0
16 0 0
17 1 3
18 1 3
19 1 3
how do I go about this?
Yet another
You can use the
rleid
function from package data.table:Although somehow manual: