[R] peak finding

Bill.Venables at csiro.au Bill.Venables at csiro.au
Tue Mar 25 04:36:09 CET 2008


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
	PLEASE do read the posting guide
	http://www.R-project.org/posting-guide.html
	and provide commented, minimal, self-contained, reproducible
code.
	
	
	



More information about the R-help mailing list