[R] Ordering boxplot factors
    Marc Schwartz 
    MSchwartz at mn.rr.com
       
    Fri Jan  6 03:48:01 CET 2006
    
    
  
On Thu, 2006-01-05 at 20:27 -0600, Joseph LeBouton wrote:
> Hi all,
> 
> what a great help list!  I hope someone can help me with this puzzle...
> 
> I'm trying to find a simple way to do:
> 
> boxplot(obs~factor)
> 
> so that the factors are ordered left-to-right along the x-axis by
> median, not alphabetically by factor name.
> 
> Complicated ways abound, but I'm hoping for a magical one-liner that'll
> do the trick.
> 
> Any suggestions would be treasured.
> 
> Thanks,
> 
> -jlb
Using the first example in ?boxplot, which is:
boxplot(count ~ spray, data = InsectSprays, col = "lightgray")
Get the medians for 'count by spray' using tapply() and then sort the
results in increasing order, by median:
  med <- sort(with(InsectSprays, tapply(count, spray, median)))
> med
   C    E    D    A    F    B 
 1.5  3.0  5.0 14.0 15.0 16.5 
Now do the boxplot, setting the factor levels in order by median:
  boxplot(count ~ factor(spray, levels = names(med)), 
          data = InsectSprays, col = "lightgray")
So...technically two lines of code.
HTH,
Marc Schwartz
    
    
More information about the R-help
mailing list