2013-03-20 59 views
0

使用此問題的解決方案:Finding local maxima and minima我已經能夠從我的數據表中檢索出似乎是本地最大值列號的列表。我還需要從表中檢索該峯值。最好我會返回一個矩陣或等價物,其中每行包含局部峯值而不是位置,因爲我已經有了位置在R數據表中檢索局部最大值的值 - 已經有列號

所以說使用矢量ex_data < -c(1,3,2,2,1 ,3,5,4,2,1)我想得到一個向量說(3,5)。 我已經有下面的代碼:

local_max <- function(x) { 
which(diff(sign(diff(x)))==-2)+1} 
local_max(ex_data) 

產生矢量(2,7)

+1

你好!請讓你的文章重現。閱讀這篇文章[**如何做一個偉大的重現示例**](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)關於如何做到這一點。謝謝。 – Arun 2013-03-20 13:40:35

回答

0

這很容易。只需使用索引向量進行子集化即可。

ex_data[local_max(ex_data)] 
+0

太簡單了,謝謝!我已經用python做過這種類型的一百次了,但是R對我來說目前還是個謎! – bioinformagician 2013-03-20 14:00:25