Вычислить длину повторов вдоль вектора в r - PullRequest
0 голосов
/ 07 декабря 2018

Есть ли эффективный способ расчета длины частей вектора, которые повторяют указанное значение?Например, я хочу вычислить продолжительность периодов без дождей по вектору значений суточных осадков:

daily_rainfall=c(15, 2, 0, 0, 0, 3, 3, 0, 0, 10)

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

rainless_period_length=c(3, 2)

с учетом вектора выше?

1 Ответ

0 голосов
/ 07 декабря 2018

R имеет встроенную функцию «кодирование длин серий»:

daily_rainfall <- c(15, 2, 0, 0, 0, 3, 3, 0, 0, 10)

runs <- rle(daily_rainfall)
rainless_period_length <- runs$lengths[runs$values == 0]

rainless_period_length

вывод:

[1] 3 2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...