Re: [R] Ordering boxplot factors

From: Marc Schwartz <MSchwartz_at_mn.rr.com>
Date: Fri 06 Jan 2006 - 13:48:01 EST

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



R-help@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 Received on Fri Jan 06 14:49:35 2006

This archive was generated by hypermail 2.1.8 : Fri 03 Mar 2006 - 03:41:53 EST