Определение того, во сколько раз значения в векторе увеличивались подряд - PullRequest
0 голосов
/ 08 мая 2020

Я пытаюсь найти способ, чтобы моя программа возвращала, сколько раз значения в векторе увеличивались или оставались неизменными в строке. Есть ли простой способ сделать это?

Пример:

Данный вектор:

[9 4 5 7 3 2 3 3 4]

Ожидаемый результат: 3

Так как в конце вектора значение увеличилось или осталось прежним в три раза

Другой пример: [3 2 8 1 3 9 9 10 4 5 7 2] Ожидаемый результат: 4

1 Ответ

0 голосов
/ 08 мая 2020

Вероятно, вы хотите посчитать максимальное количество пробежек. Мы можем написать функцию, используя rle.

get_max_runs <- function(x) {
  with(rle(diff(x) >= 0), max(lengths[values]))
}

get_max_runs(c(9, 4, 5, 7, 3, 2, 3, 3, 4))
#[1] 3
get_max_runs(c(3, 2, 8, 1, 3, 9, 9, 10, 4, 5, 7, 2))
#[1] 4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...