# Re: [R] peak finding

From: <Bill.Venables_at_csiro.au>
Date: Tue, 25 Mar 2008 13:36:09 +1000

Then the answer is pretty simple: 'no'.

The idea probably needs a lot more refining to make it workable, too. Why do you discard he peak at 2, with the shape starting at 1 and finishing at 4, for example?

In thinking about this it might be useful for you to look at signs of successive differences:

> sign(diff(c(-Inf, x)))
[1] 1 1 -1 -1 1 1 1 1 1 -1 -1 -1 -1 -1 1 -1

That's perhaps a starting point. You seem to want to know (roughly) "where do the runs of '1's start and the following run of '-1's end?" The function rle(), for run length encoding, might be useful in this regard, too.

Bill Venables.

-----Original Message-----
From: Research Scholar [mailto:thesis1977_at_gmail.com] Sent: Tuesday, 25 March 2008 1:24 PM
To: Venables, Bill (CMIS, Cleveland)
Cc: r-help_at_r-project.org
Subject: Re: [R] peak finding

Hi
Thanks for replying. I meant x[4] is the start of a peak shape and x[14] is the end of that peak and x[9] is the maxima of the peak. Thanks,
John

On Mon, Mar 24, 2008 at 11:09 PM, <Bill.Venables_at_csiro.au> wrote:

It's hard to see how positions 4 and 14 correspond to 'peaks', they look

like troughs to me. So perhaps this is what you mean:

> x <- c(14,15,12,11,12,13,14,15,16,15,14,13,12,11,14,12)

> y <- which(x == min(x))
> y
[1] 4 14

as a function:

somefunction <- function(x) which(x == min(x))

```	Bill Venables
CSIRO Laboratories
PO Box 120, Cleveland, 4163
AUSTRALIA
Office Phone (email preferred): +61 7 3826 7251
Fax (if absolutely necessary):  +61 7 3826 7304
Mobile:                         +61 4 8819 4402
Home Phone:                     +61 7 3286 7700
mailto:Bill.Venables_at_csiro.au
http://www.cmis.csiro.au/bill.venables/

-----Original Message-----
From: r-help-bounces_at_r-project.org
[mailto:r-help-bounces_at_r-project.org]
On Behalf Of Research Scholar
Sent: Tuesday, 25 March 2008 12:54 PM
To: r-help_at_r-project.org
Subject: [R] peak finding

Hi all
Is there a function that can find the start and end position of
peaks
in a
set of numbers.
eg.
x <- c(14,15,12,11,12,13,14,15,16,15,14,13,12,11,14,12)
y <- somefunction(x)

y
4 14

Thanks
John

[[alternative HTML version deleted]]

______________________________________________
R-help_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help