Thank you both. Both solutions worked fine, but I'll probably end up going
with

fixInNamespace(boxplot.default, "graphics")

as it allows me to use previously written script without making any further
changes.

Thanks again,
Regards,
Paul

2011/4/18 Uwe Ligges <ligges@statistik.tu-dortmund.de>

>
>
> On 17.04.2011 13:08, Paul Raftery wrote:
>
>> Hi all,
>>
>> I'm just getting started with R and I would appreciate some help. I'm
>> having
>> trouble creating a boxplot with whiskers at the 95th and 5th percentiles
>> instead of at 1.5 * IQR. I have read the relevant documentation, and
>> checked
>> existing mails on this topic. I found a small modification that should
>> work
>> : https://stat.ethz.ch/pipermail/r-help/2001-November/016817.html and
>> tried
>> to implement it.
>>
>> Basically, it says to replace boxplot.stats with:
>>
>> myboxplot.stats<-  function (x, coef = NULL, do.conf = TRUE, do.out =
>> TRUE)
>> {
>>   nna<- !is.na(x)
>>   n<- sum(nna)
>>   stats<- quantile(x, c(.05,.25,.5,.75,.95), na.rm = TRUE)
>>   iqr<- diff(stats[c(2, 4)])
>>   out<- x<  stats[1] | x>  stats[5]
>>   conf<- if (do.conf)
>>     stats[3] + c(-1.58, 1.58) * diff(stats[c(2, 4)])/sqrt(n)
>>   list(stats = stats, n = n, conf = conf, out = x[out&  nna])
>> }
>>
>> I entered the new function, and used fix(boxplot.default) to modify
>> boxplot.default so that it references myboxplot.stats instead of the
>> original boxplot.stats function.
>>
>> If I now type boxplot.default, I can see that the code has been modified
>> as
>> expected. However, I get the exact same result as before when I create a
>> boxplot - it shows the whiskers at 1.5 * IQR. You can test this out by
>> creating a boxplot from the iris dataset supplied with R using
>> boxplot(iris$Sepal.Length ~ iris$Species). You see that the boxplot is the
>> same before and after the fix.  Does anybody know why this occurs, and how
>> I
>> can get around this issue?
>>
>
> Frank answered how to solve it using his functions. In order to do it your
> way, you need to change the boxplot.default function within its NAMESPACE,
> e.g. using fixInNamespace.
>
> Otherwise you could also just call
>  z <- boxplot(....)
> then modify the relevant parts of the object z
> and plot it using
>  bxp(z)
> afterwards.
>
> Best,
> Uwe
>
>
>
>
>
>
>> Thanks,
>>
>


-- 
Regards,
Paul


=====================
Contact Details
=====================
Paul Raftery, BEng(Hons) (Mech), Fulbright Fellow, PhD
http://www.paulraftery.com/
 <http://www.paulraftery.com/>
Postdoctoral Research Engineer
Informatics Research Unit for Sustainable Engineering (IRUSE)
http://www.iruse.ie/

Department of Civil Engineering,
National University of Ireland, Galway,
University Road,
Galway,
Ireland.

Landline: +353 91 49 3086
Mobile: +353 85 124 7947
Skype: praftery

	[[alternative HTML version deleted]]

