Skip to content
Back to formatted view

Raw Message

Message-ID: <3A822319EB35174CA3714066D590DCD50994E2DE@usrymx25.merck.com>
Date: 2004-11-12T16:51:27Z
From: Liaw, Andy
Subject: Mode in case of discrete or categorial data

> 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
> 
>