R обратный счетчик сброса ко времени сброса
Привет у меня есть фрейм данных
Входные данные: Data$cyclesFromLastError
Это отдыхает каждый раз, когда произошла ошибка.
Входные данные:
0 1 2 3 4 0 1 2 3 0 1 2 3 4 5
И я хочу создать новый столбец Output: Data$cyclesToNextError
4 3 2 1 0 3 2 1 0 5 4 3 2 1 0
Мне нужен сценарий для этого, пожалуйста
1 ответ
Решение
Мы можем использовать ave
создавать группы при каждом появлении 0 в x
а также rev
в противном случае последовательность для каждой группы.
ave(x, cumsum(x == 0), FUN = rev)
#[1] 4 3 2 1 0 3 2 1 0 5 4 3 2 1 0
данные
x <- c(0, 1, 2, 3, 4, 0, 1, 2, 3, 0, 1, 2, 3, 4, 5)