2013-03-20 61 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