亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

求局部最大值和極小值

求局部最大值和極小值

青春有我 2019-08-03 13:03:16
求局部最大值和極小值我正在尋找一種計算效率高的方法來為R中的大量數字尋找局部極大值/極小值,希望沒有for循環.。例如,如果我有一個數據文件,如1 2 3 2 1 1 2 1,我希望函數返回3和7,這是局部最大值的位置。
查看完整描述

3 回答

?
楊__羊羊

TA貢獻1943條經驗 獲得超7個贊

使用動物園庫函數ROLLApply:

x <- c(1, 2, 3, 2, 1, 1, 2, 1)library(zoo)
 xz <- as.zoo(x)
 rollapply(xz, 3, function(x) which.min(x)==2)#    2     3     4     5     6     7 #FALSE FALSE FALSE  TRUE FALSE FALSE 
 rollapply(xz, 3, function(x) which.max(x)==2)#    2     3     4     5     6     7 #FALSE  TRUE FALSE FALSE FALSE  TRUE

然后,使用‘CoreData’對‘wh.max’是一個“中心值”表示局部最大值的值提取索引。顯然,對于局部極小值,您也可以使用which.min而不是which.max.

 rxz <- rollapply(xz, 3, function(x) which.max(x)==2)
 index(rxz)[coredata(rxz)]#[1] 3 7

我假設你不想要開始值或結束值,但是如果你想要,你可以在處理之前先把矢量的末端墊好,就像端粒在染色體上一樣。

(我注意到了ppc軟件包(用于進行質譜分析的“峰值概率對比”),僅僅是因為在閱讀@BenBolker上面的評論之前,我還不知道它的可用性,我認為添加這幾個詞將增加具有大眾興趣的人在搜索中看到這一點的可能性。)




查看完整回答
反對 回復 2019-08-04
  • 3 回答
  • 0 關注
  • 601 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號