Разделить последовательность чисел на группы, которые сбрасываются при достижении кумулятивного порога

Рассмотрим эту последовательность, которую мы можем рассматривать как «время между событиями»

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.

Ответы на вопрос(1)

Ваш ответ на вопрос