Consider this sequence, which we can think of as \"time between events\"
x <- c(5, 40, 3, 6, 0, 9, 0, 4, 5, 18, 2, 4, 3, 2)
I would like to group
One option is to use Reduce() to calculate the cumulative sum where you can set the sum to be zero, when it exceeds some threshold:
Reduce()
sum
cumsum(Reduce(function(x, y) if(x < 30) x + y else y, x, acc = T) >= 30) # [1] 0 1 1 1 1 1 1 1 1 2 2 2 2 2