R обратный счетчик сброса ко времени сброса - PullRequest
0 голосов
/ 30 октября 2018

Привет, у меня есть фрейм данных

Ввод: данные $циклыFromLastError

Это отдыхает каждый раз, когда произошла ошибка.

Введите:

0 1 2 3 4 0 1 2 3 0 1 2 3 4 5 

И я хочу создать новый столбец Выходные данные: Data $ cycleToNextError

4 3 2 1 0 3 2 1 0 5 4 3 2 1 0

Мне нужен сценарий для этого, пожалуйста

1 Ответ

0 голосов
/ 30 октября 2018

Мы можем использовать 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)
...