r - 查找向量中的值连续增加了多少次
问题描述
我试图找到一种方法让我的程序返回向量中的值连续增加或保持不变的次数。有没有一种简单的方法可以做到这一点?
一个例子:
给定向量:
[9 4 5 7 3 2 3 3 4]
预期结果:3
由于在向量的末尾,该值增加或保持不变三倍
另一个例子:[3 2 8 1 3 9 9 10 4 5 7 2 ] 预期结果:4
解决方案
可能您的意思是计算最大运行次数。我们可以使用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
推荐阅读
- ruby - Jenkins自动化测试下载文件错误
- python - 我正在尝试从 pip 安装 setupfiles 包
- c# - Bot Builder:更改提示对话框的“识别”选项
- javascript - 什么是 Javascript [[Environment]] 属性?
- regex - 在 Bash 中使用正则表达式拆分大块文本
- react-native - 来自反应本机应用程序的 SOAP API
- python-3.x - ETA 在 GridSearchCV ScikitLearn 中代表什么?
- c++ - 如何在显示器上绘制二进制矩阵
- javascript - 如何将 href 添加到 SharePoint 上的按钮
- python - pytorch 如何设置 .requires_grad False