[R] Range plots (lattice or base?)
Mike Bock
mbock at Environcorp.com
Thu Oct 20 15:44:49 CEST 2005
I have gotten what I want by following Deepayan's advice. I have written
the following replacement for boxplot.stats. When I run bwplot, I get
exactly what I want. This function is lacking sufficient error checking
but here it is. The bootstrapping makes it a bit slow. What I would like
to do is write a new function (ciplot) that stores the original
boxplot.stats fucntion, replaces it with my new stats function, calls
bwplot, and then return boxplot.stats to its original.
boxplot.stats <-function (x,coef = 1.5, do.conf=TRUE, do.out=TRUE) {
Mean <- mean(x,na.rm = TRUE)
Sd <- sd(x,na.rm = TRUE)
lp <- (quantile(x,0.10, na.rm = TRUE)[[1]])
up <- (quantile(x,0.90, na.rm = TRUE) [[1]])
sizen <- sum(!is.na(x))
lci <- 0
uci <- 0
if (sizen > 5)
{CI <- try((boot.ci(boot(x, function(x,i) mean(x[i]), R = 5000)
,conf = c(0.95),
type = c("norm")))$normal[-1])
lci <- CI[1]
uci <- CI[2]}
lconf <- 0
uconf <- 0
stats <- c(lp,lci,Mean,uci,up)
n<-sizen
conf <-c(lconf,uconf)
result <- list(stats = stats,n=n,conf=conf,out = NA)
return(result)
}
> -----Original Message-----
> From: Deepayan Sarkar [mailto:deepayan.sarkar at gmail.com]
> Sent: Wednesday, October 19, 2005 3:34 PM
> To: Mike Bock
> Cc: r-help at stat.math.ethz.ch
> Subject: Re: Range plots (lattice or base?)
>
>
>
>
> On 10/19/05, Mike Bock <mbock at environcorp.com> wrote:
> > I am looking to create what I would call a "simple
> variation" on the
> > boxplot. What I would like to do is to be able to plot the
> upper and
> > lower confidence limits as the "box" and the 10th and 90th
> percentile
> > as the whiskers. What I have done is write the code to create a
> > dataframe, the columns of which are the mean, sd, 10th percentile,
> > 90th percentile, lower confidence limit of the mean, and upper
> > confidence limit of the mean, the rows are the groups. I
> have exported
> > this to excel and get the graph I want by using the stock graphs in
> > excel that plot open, close, high and low but I would much
> prefer to
> > do this in R for reason too numerous to enumerate.
> >
> > I have looked high and low and even took a brief look at the bwplot
> > code in the lattice package. Given my experience level it
> would take
> > quite a while for me to modify the bwplot code to get what
> I want and
> > create a new graph type, assuming I could get it to work at
> all. Does
> > anyone know of an easier way to get what I want, with and example?
> > Lattice, grid, base, whatever, I don't especially care what tools I
> > need to use. My only constrante is that I feed it the
> values required
> > as a dataframe rather than calculate it on the fly so if we
> change our
> > minds about UCL method or percentiles there is no problem.
>
> Is your UCL method guaranteed to work separately on groups
> (e.g. if the s.d. is estimated per group) or does it share
> information across groups (e.g. some sort of pooled estimate
> of s.d.)? In the former case, you could try writing a
> replacement for boxplot.stats and use that in panel.bwplot.
>
> Deepayan
>
More information about the R-help
mailing list