[R] Ordering box plots

Stuart Luppescu slu at ccsr.uchicago.edu
Mon Jan 24 00:37:05 CET 2011


Hello all, I want box plots by group to display in order of increasing
mean (or median) of each group but can't seem to figure it out and
couldn't find anything on R-seek, either. 

My data looks like this:

   meas unit      sid grade    rsprti
1  2.24 1002 99999902    NA 0.8600000
2  3.04 1007 43589520     3 0.9400000
3  4.95 2002 39910470     5 1.5300000
4  2.24 2002 39986280     5 1.2755861
5  3.04 2002 40534857     5 1.0551474
6  4.95 2002 40650784     5 1.5300000
7  4.95 1001 40963456     5 1.5300000
8  2.24 2002 41730862     5 0.8642893
9  0.84 2002 41813806     5 1.2282878
10 3.04 2002 41822848     5 1.0551474

I'm plotting meas grouped by unit.

Here are my (unsuccessful) ideas:
1) save the plot data (call it bxp.info) to an object, reorder all the
data according to bxp.info$data[3,], and then plot it with bxp().
Couldn't figure out how to reorder all the elements of bxp.info (because
they are all different types and lengths?)
2) calculate the means by group, get ordered factors of the group means,
merge the ordered factors back into the original data frame, and plot
the values by the order of the means. Here is the code I used:

by.schl.order <- as.data.frame(cbind(units,as.ordered(order(aggregate(meas.tab[,meas], by=list(meas.tab$unit), mean, na.rm=T)$x))))
                                       
names(by.schl.order) <- c("unit", "by.schl.plot.order")

meas.tab <- merge(meas.tab, by.schl.order, by="unit")

boxplot(meas.tab[,meas] ~ meas.tab$by.schl.plot.order)

For some reason, the plot order (by.schl.plot.order) ends up as a
numeric instead of an ordered factor when put in the data frame,

class(meas.tab$by.schl.plot.order)
[1] "numeric"

and the boxes plot in the original order. I even tried this:

 boxplot(meas.tab[,meas] ~ as.ordered(meas.tab$by.schl.plot.order)

but that didn't do any better. I would think people would want to do
this all the time. There must be an easy way to do it but I can't figure
it out. Can anyone help me?
-- 
Stuart Luppescu -=- slu .at. ccsr.uchicago.edu        
University of Chicago -=- CCSR 
才文と智奈美の父 -=-    Kernel 2.6.36-gentoo-r5                
It seems that you are facing a very serious
 fortune(122) problem.    -- Jean R. Lobry (in
 reply to a user that quickly needed help for his
 PhD       thesis, without properly checking the
 documentation)       R-help (May 2006)  
 
 
 
 


More information about the R-help mailing list