首页 > 解决方案 > 查找向量中的值连续增加了多少次

问题描述

我试图找到一种方法让我的程序返回向量中的值连续增加或保持不变的次数。有没有一种简单的方法可以做到这一点?

一个例子:

给定向量:

[9 4 5 7 3 2 3 3 4]

预期结果:3

由于在向量的末尾,该值增加或保持不变三倍

另一个例子:[3 2 8 1 3 9 9 10 4 5 7 2 ] 预期结果:4

标签: r

解决方案


可能您的意思是计算最大运行次数。我们可以使用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

推荐阅读