[R] Boxplot BUT with Mean, SD, Max & Min ?

Philip Rhoades phil at pricom.com.au
Mon Sep 26 21:24:36 CEST 2011


Gabor,


On 2011-09-27 04:31, Gabor Grothendieck wrote:
> On Mon, Sep 26, 2011 at 1:45 PM, Philip Rhoades <phil at pricom.com.au> 
> wrote:
>> Gabor, Bill,
>>
>>
>> On 2011-09-27 02:51, Gabor Grothendieck wrote:
>>>
>>> On Mon, Sep 26, 2011 at 12:11 PM, Philip Rhoades 
>>> <phil at pricom.com.au>
>>> wrote:
>>>>
>>>> Gabor,
>>>>
>>>>
>>>> On 2011-09-27 00:35, Gabor Grothendieck wrote:
>>>>>
>>>>> On Mon, Sep 26, 2011 at 9:56 AM, Philip Rhoades 
>>>>> <phil at pricom.com.au>
>>>>> wrote:
>>>>>>
>>>>>> People,
>>>>>>
>>>>>> It appears that there is no way of getting Boxplots to plot 
>>>>>> using Mean,
>>>>>> SD,
>>>>>> Max & Min - is there something else that would do what I want? 
>>>>>>  I
>>>>>> couldn't
>>>>>> find it . .
>>>>>>
>>>>>
>>>>> Try replacing the stats component of boxplot's output with your
>>>>> desired statistics and then feeding that into the lower level bxp
>>>>> function to do the graphics:
>>>>>
>>>>> bp <- boxplot(Nile, plot = FALSE)
>>>>> bp$stats <- matrix(c(min(Nile), mean(Nile) + c(-1, 0, 1) * 
>>>>> sd(Nile),
>>>>> max(Nile)))
>>>>> bxp(bp)
>>>>
>>>>
>>>> Thanks for that!  What is the syntax when there is more than one 
>>>> set of
>>>> data
>>>> (ie a two dimensional vector)?  I tried messing around with stuff 
>>>> like:
>>>>
>>>>  mean(Nile[,2] etc
>>>>
>>>> but I get subscript out of range errors  . .
>>>>
>>>
>>> Bill's example shows  how to do it with a list of numeric vectors.
>>> Here is another example using the built in anscombe and making use 
>>> of
>>> my prior code, Bill's and Vining's:
>>>
>>> bp <- boxplot(anscombe, plot = FALSE)
>>> bp$stats <- sapply(anscombe, function(x) c(min(x), mean(x) + c(-1, 
>>> 0,
>>> 1) * sd(x), max(x)))
>>> bxp(bp, outline = FALSE)
>>
>>
>> Interesting! - I've learnt something about anscombe and sapply and 
>> other
>> stuff (thanks again!) but I think I mis-spoke before.  I think what 
>> I want
>> is a list of numeric vectors but when I created tarr:
>>
>>  tarr <- array( dim = c( 5,3 ), c( 1,2,3,4,5,2,3,4,5,6,3,4,5,6,7 ) )
>>
>> I couldn't get it to work with the original code . . now I have had 
>> a closer
>> look at Bill's code . .
>>
>> On the original question though, why isn't there something "off the 
>> shelf"
>> that will do what I want?  Surely, a "boxplot" using mean, SD, max 
>> and min
>> would be a common enough need to justify it?
>>
>
> tarr is not a list or a data frame. Use.data.frame(tarr) so that  it
> uses the same assumptions as the examples in this thread.


Thanks!


> I believe there is no such facility due to a philosophical 
> opposition.


A software design thing or a stats thing?


>  Unless someone were careful they would naturally assume that 
> boxplots
> were shown even though that is not the case here.


I don't understand what you mean here . .

Regards,

Phil.
-- 
Philip Rhoades

GPO Box 3411
Sydney NSW	2001
Australia
E-mail:  phil at pricom.com.au



More information about the R-help mailing list