[R] Mode in case of discrete or categorial data

Liaw, Andy andy_liaw at merck.com
Fri Nov 12 17:51:27 CET 2004


> From: Thomas Lumley
> 
> On Fri, 12 Nov 2004, Vito Ricci wrote:
> > Mode<-function(x){t<-table(x)
> > if (is.numeric(x)) as.numeric(names(t)[t == max(t)])
> > else (names(t)[t == max(t)])
> > }
> >
> > Any other improvement and suggestion will welcome.
> >
> 
> which.max is design for finding the maximum, so
>     names(t)[which.max(t)]

If you only care about one, which.max() is great.  However, if you want to
know about all possible ones, which.max() is not the tool:

> x <- rep(1:5, c(5, 2, 1, 5, 1))
> table(x)
x
1 2 3 4 5 
5 2 1 5 1 
> tab <- table(x)
> tab[tab == max(tab)]
x
1 4 
5 5 
> tab[which.max(tab)]
1 
5 

Andy 
 
>  	-thomas
> 
> ______________________________________________
> R-help at 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
> 
>




More information about the R-help mailing list