R语言 - 实践 - 发现 - 发现时间序列数据的持续高峰

时间:2017-10-21 14:19:14

标签: r

如何使用findpeaks在3个连续的时间间隔内寻找持续的峰值?

我正在使用它来寻找至少3分钟的持续CPU使用率。

findpeaks(MyData $ X.busy,threshold = 80)??

    Timestamp, X.busy
    2017-10-08 00:00:00, 10
    2017-10-08 00:01:00, 10
    2017-10-08 00:02:00, 10
    2017-10-08 00:03:00, 10
    2017-10-08 00:04:00, 10
    2017-10-08 00:05:00, 90 <---
    2017-10-08 00:06:00, 90 <---
    2017-10-08 00:07:00, 90 <---
    2017-10-08 00:08:00, 10
    2017-10-08 00:09:00, 10

感谢任何建议。

1 个答案:

答案 0 :(得分:0)

刚刚遇到同样的问题。文档不是很清楚,但阅读findpeaks的源代码有帮助。 您案例的略微修改版本,在第2位有一个非持续峰值:

 y  <- c(10, 11, 10, 10, 10, 90, 90, 90, 10, 10)
 pp <- "[+]{1,}[0]+[-]{1,}"
 findpeaks(y, peakpat=pp)

关键是[0]+,意味着静止至少1。 如果您还希望包含第一个未经修整的峰值,则可以使用[0]*代替。