3
我有一個時間序列,我想檢測(和識別它們),有些山峯,但只有特定範圍R.如何檢測峯值在特定範圍R中
here is an example
## generate test data with 3 peaks
set.seed(123)
x <- seq(0, 360, length = 20)
y <- abs(rnorm(20, mean = 1, sd = 0.1))
y[5:10] <- c(2, 4, 7, 3, 4, 2)
y <- c(y, 0.8 * y, 1.2 * y)
x <- seq(0, 360, along = y)
y[6] <- y[7] # test case with 2 neighbouring equal points
plot(x, y, type="b")
# 在例如,我要說的是,我只希望在6和9之間(2個峯)選擇峯(y),或者僅在2和4之間(也有2個峯)選擇峯。我知道R檢測峯(如Peaks,pastecs,quantmod,pracma,splus2R)中的幾個軟件包,但沒有一個似乎具有此功能,通常只有最小閾值。
任何意見,將不勝感激。
謝謝
馬丁
編輯:由Eric提供的代碼完美的作品。但對於我自己的數據集,我有一個小問題。如果在某個窗口(x)中兩次相同的值,您將如何檢測一個峯值?基本上我想創建一個條件語句,可以說,峯值之間需要一定數量的點(x)才能被視爲兩個獨特的峯值。
你的意思是要繪製只有那些峯?或者你只是想要價值? – 2014-10-02 22:22:20
我覺得這是一個重複,但我現在懶得找到匹配... – Dason 2014-10-02 22:52:42