David,

my.boxplot.stats is modified from boxplot.stats (package grDevices) as
follows. x is the original argument, I guess it's the data object for
processing. I only added "type". Thanks.

Jun

=============================================================
> boxplot.stats

function (x, coef = 1.5, do.conf = TRUE, do.out = TRUE)
{
    if (coef < 0)
        stop("'coef' must not be negative")
    nna <- !is.na(x)
    n <- sum(nna)
    stats <- stats::*fivenum*(x, na.rm = TRUE)
    iqr <- diff(stats[c(2, 4)])
    if (coef == 0)
        do.out <- FALSE
    else {
        out <- if (!is.na(iqr)) {
            x < (stats[2L] - coef * iqr) | x > (stats[4L] + coef *
                iqr)
        }
        else !is.finite(x)
        if (any(out[nna], na.rm = TRUE))
            stats[c(1, 5)] <- range(x[!out], na.rm = TRUE)
    }
    conf <- if (do.conf)
        stats[3L] + c(-1.58, 1.58) * iqr/sqrt(n)
    list(stats = stats, n = n, conf = conf, out = if (do.out) x[out &
        nna] else numeric(0L))
}
<environment: namespace:grDevices>


On Fri, May 7, 2010 at 3:09 PM, David Winsemius <dwinsemius@comcast.net>wrote:

>
> On May 7, 2010, at 3:30 PM, Jun Shen wrote:
>
>  Dear all,
>>
>> I constructed this function called my.boxplot.stats by replacing fivnum()
>> with quantile() in function boxplot.stats(). So I can try different
>> quantile
>> methods in bwplot(). The problem is I couldn't pass different values to
>> the
>> "type" argument to my.boxplot.stats, which in turn is an argument in
>> bwplot(). Now I just have to manually change the "type" value in
>> my.boxplot.stats. What I would like to do is call bwplot() like
>>
>> bwplot(CL~DOSE,data=patab,stats=my.boxplot.stats(type=7)),
>>
>>
> You have defined a function with an argument of x that does not have a
> default value, so it throws an error when you call it with no value for x.
> (It's not complaining about the type argument.)
>
> --
> David.
>
>
>  But I got an error:
>> Error in my.boxplot.stats(type = 7) : element 1 is empty;
>>  the part of the args list of 'is.na' being evaluated was:
>>  (x)
>>
>> Thanks a lot.
>>
>> Jun Shen from Millipore Corporation
>>
>> ========================================================
>> my.boxplot.stats<-function (x, coef = 1.5, *type=6*, do.conf = TRUE,
>> do.out
>> = TRUE)
>> {
>>   if (coef < 0)
>>       stop("'coef' must not be negative")
>>   nna <- !is.na(x)
>>   n <- sum(nna)
>>   stats <- stats::quantile(x, type=type,na.rm = TRUE)
>>   iqr <- diff(stats[c(2, 4)])
>>   if (coef == 0)
>>       do.out <- FALSE
>>   else {
>>       out <- if (!is.na(iqr)) {
>>           x < (stats[2L] - coef * iqr) | x > (stats[4L] + coef *
>>               iqr)
>>       }
>>       else !is.finite(x)
>>       if (any(out[nna], na.rm = TRUE))
>>           stats[c(1, 5)] <- range(x[!out], na.rm = TRUE)
>>   }
>>   conf <- if (do.conf)
>>       stats[3L] + c(-1.58, 1.58) * iqr/sqrt(n)
>>   list(stats = stats, n = n, conf = conf, out = if (do.out) x[out &
>>       nna] else numeric(0L))
>> }
>>
>>        [[alternative HTML version deleted]]
>>
>> ______________________________________________
>> R-help@r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide
>> http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
>>
>
> David Winsemius, MD
> West Hartford, CT
>
>

	[[alternative HTML version deleted]]

