[R] Boxplot across levels of a factor

Ivar Herfindal Ivar.Herfindal at bio.ntnu.no
Tue Aug 24 08:41:14 CEST 2004


I think Paul wanted one plot for each box, not all boxes in one plot (sorry 
if I misunderstand).

One way to solve this can be like this:

par(mfrow=c(1,3))
with(data, by(1:nrow(data), Type, function(x) boxplot(Locus[x]~data[x]))

Hope this works for you.

Ivar

On Tue, 24 Aug 2004 07:27:57 +0100 (BST), Prof Brian Ripley 
<ripley at stats.ox.ac.uk> wrote:

> On Tue, 24 Aug 2004, Paul Boutros wrote:
>
>> Hello,
>>
>> I have a data-frame in which one-column is a factor:
>>
>> > str(data);
>> `data.frame':   194 obs. of  8 variables:
>> $ Type         : Factor w/ 3 levels "Nuclear-Rec..",..: 1 2 2 2 2 2 2 2 
>> 2 2
>> ...
>> $ Locus        : num  0.000571 0.004000 0.001429 0.004857 0.007429 ...
>>
>> And I'd like to make a boxplot of the data$Locus values, where each 
>> level of
>> the factor gets its own box-and-whiskers plot.  I'm weak in R, but I 
>> thought
>> there might be some shortcut to automating this instead of just creating 
>> a
>> new data-structure with all the separate values?
>
> There are two.  The simpler is
>
> 	boxplot(Locus ~ Type, data=data)
>
> and you can also use
>
> 	with(data, boxplot(split(Locus, Type)))
>
> (split() does automate the construction of a suitable data structure.)
>




More information about the R-help mailing list