[R] Sorting problem

Gabor Grothendieck ggrothendieck at myway.com
Fri Dec 24 14:36:43 CET 2004


From:   Gabor Grothendieck <ggrothendieck at myway.com>
> 
> [sorry. I had some email problems on my last one. here it
> is again.]
> 
> From: Gabor Grothendieck <ggrothendieck at myway.com>
> > 
> > > From: <Ted.Harding at nessie.mcc.ac.uk>
> > > 
> > > On 24-Dec-04 Gabor Grothendieck wrote:
> > > > 
> > > > From: Paul JH Drake <p.drake at beatson.gla.ac.uk>
> > > >> 
> > > >> When I plot data as a boxplot, the boxes appear on the plot in
> > > >> alphabetical order (of group) rather than the order in which they
> > > >> appear
> > > >> in the data. So far, the only thing I can do to fix this is to prefix
> > > >> the group labels with a,b,c...etc to trick R into plotting them in the
> > > >> right order.
> > > >> 
> > > >> Can sorting be turned off?
> > > >> How should I address this sensibly?
> > > > 
> > > > Actually they are shown in order of the levels of the factor.
> > > > e.g. to show them in reverse order:
> > > > 
> > > > attach(InsectSprays)
> > > > spray <- factor( as.character(spray), level = rev(levels(spray)) )
> > > > boxplot(count ~ spray)
> > > 
> > > Applying boxplot to data constructed as follows:
> > > 
> > > X<-list(C=rnorm(10),B=rnorm(20),A=rnorm(30))
> > > boxplot(X)
> > > 
> > > gives the plots in the order "C", "B", "A", so here they indeed
> > > come out in the order of the data.
> > > 
> > > But suppose I had wanted them in the order "B", "A", "C", say.
> > > How would Gabor's suggestion (or similar) be applied to this case?
> > 
> > boxplot(X[c("B","C","A")])
> > 
> 
> It occurred to me that maybe your question was not how to reorder
> them if they are in list form but how to convert the list form
> to the formula form. If that was it then:
> 
> Xu <- unlist(X)
> g <- factor(rep(names(X), sapply(X, length))) # add levels= arg to reorder
> boxplot(Xu ~ g)

or even shorter:

boxplot(values ~ ind, stack(X))




More information about the R-help mailing list