[R] Summary for mode of a data set

Ravi Varadhan rvaradha at jhsph.edu
Mon Jun 23 21:20:32 CEST 2003


Dear Spencer:

In the following example, your code doesn't pick up the local mode at 5.

> x2 <- c(1,1,2,3,3,3,3,5,5,5)
> modes(x2)
[1] 1 3

In this example, it gives a mode at 7, which is incorrect.

> x2 <- c(1,1,2,3,3,3,3,5,5,5,6,7)
> modes(x2)
[1] 1 3 7

Ravi.

----- Original Message -----
From: Spencer Graves <spencer.graves at pdf.com>
Date: Monday, June 23, 2003 2:53 pm
Subject: Re: [R] Summary for mode of a data set

> Your "mode1" function will identify multiple modes only if they 
> have the 
> same number of observations.  Consider the following:
> 
> > x2 <- c(2, 1,1, 3,3,3)
> > mode1(x2)
> [1] 3
> 
> Here, "mode1" did not identify the local mode at 1, because it had 
> fewer 
> observations than 3.  If you want the modes at both 1 and 3, then 
> consider the following:
> 
> modes <- function(x){
> 	xt <- table(x)
> 	nt <- length(xt)
> 	sel <- c(xt[-nt]>=xt[-1], T)&c(T, xt[-1]>=xt[-nt])
> 	as.numeric(names(xt[sel]))
> }
> > modes(x2)
> [1] 1 3
> 
> hth.  spencer graves
> 
> Erin Hodgess wrote:
> > Dear R People:
> > 
> > thank you for the many helpful sets of code that I received!!!
> > 
> > I combined several of the concepts for the following function:
> > 
> > 
> >>mode1
> > 
> > 
> > function(x) {
> > 
> >         y <- rle(sort(x))
> > 
> >         z <- y$values[y$lengths==max(y$lengths)]
> > 
> >         return(z)
> > 
> > }
> > 
> > 
> >>xm
> > 
> > 
> >  [1] 22 15 10 30 25 26  2 17 28  2 24  6 26 24  5 22 20 14
> > 
> > 
> >>mode1(xm)
> > 
> > 
> > [1]  2 22 24 26
> > 
> > 
> > 
> > This will pick up multiple modes.
> > 
> > Again thanks to all who helped!
> > 
> > Sincerely,
> > Erin 
> > mailto: hodgess at uhddx.01.dt.uh.edu
> > 
> > ______________________________________________
> > R-help at stat.math.ethz.ch mailing list
> > https://www.stat.math.ethz.ch/mailman/listinfo/r-help
> 
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://www.stat.math.ethz.ch/mailman/listinfo/r-help
>




More information about the R-help mailing list