If you want to count the local maxima in the n x n matrix returned by 
kde2d, AND you know there are no ties, you could do something like the 
following:

 > set.seed(1)
 > x <- matrix(sample(10, 25, rep=TRUE), 5, 5)
 > x
      [,1] [,2] [,3] [,4] [,5]
[1,]    3    9    3    5   10
[2,]    4   10    2    8    3
[3,]    6    7    7   10    7
[4,]   10    7    4    4    2
[5,]    3    1    8    8    3
 > sum(x > cbind(0, x[,-5]) & x > cbind(x[,-1], 0) & x > rbind(x[-1,], 
0) & x > rbind(0, x[-5,]))
[1] 4
 >

Just be careful that your counting formula matches your definition of 
"neighbor" (the above formula does not include diagonal neighbors).

And of course, ties make things more complicated (note that the above 
simple algorithm misses the local maximum consisting of two 8's in the 
last row.)

-- Tony Plate


Patrick Wang wrote:
> Hi,
> 
> Does anyone know how to count the number of modes in 2 dimensions using
> kde2d function?
> 
> Thanks
> Pat
> 
> ______________________________________________
> R-help@stat.math.ethz.ch 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.
>

______________________________________________
R-help@stat.math.ethz.ch 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.

Reply via email to