Разделить последовательность чисел на группы, которые сбрасываются при достижении кумулятивного порога
Рассмотрим эту последовательность, которую мы можем рассматривать как «время между событиями»
x <- c(5, 40, 3, 6, 0, 9, 0, 4, 5, 18, 2, 4, 3, 2)
Я хотел бы сгруппировать их в группы по 30, но группы, которые сбрасываются. Желаемый результат:
output <- c(0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2)
Это потому, что, когда мы достигаем кумулятивного 30, мы «сбрасываем» и снова начинаем считать. Так,5 + 40 > 30
мы опускаемся до нуля и начинаем кумулятивное добавление, пока не достигнем 30 ... (3 + 6 + 0 ...
), что происходит, когда мы достигаемx[10] == 18
.