Re: [R] Boxplot using Formula

2006-04-09 Thread Dieter Menne
Matt Goff goff at nawwal.org writes:

 
 
 The problem is that boxplot is displaying groups that are empty in the  
 plot.
 

Call factor() again on the groups, which will drop levels. You can do that in an
extra line, or on-the-fly:

data-data.frame(values=c(1:25), groups=rep(c(A,B,C,D,E),
 each=5))
data = subset(data,groups!=C)

boxplot(values~factor(groups), data=data)

__
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html


Re: [R] Boxplot using Formula

2006-04-09 Thread Sundar Dorai-Raj


Matt Goff wrote:
 I am trying to use the formula interface for the boxplot.
 Currently running R 2.2.1 on Windows XP.
 
 The problem is that boxplot is displaying groups that are empty in the  
 plot.
 
 The following example demonstrates what it is happening (though my actual  
 situation is a little more complicated):
 
 
data-data.frame(values=c(1:25), groups=rep(c(A,B,C,D,E),  
each=5))
boxplot(data$values~data$groups, subset=data$groups!=C)
 
 
 The plot includes a space for level C with no boxplot.  I would like to  
 have only those levels with associated boxplots be shown in the figure.   
 So in this case, there should only be values A, B, D, and E evenly  
 spaced along the horizontal axis.
 
 I am a little confused because I am reusing old code and I don't remember  
 having this issue before, so perhaps there have been some changes in the  
 behavior of the boxplot function since the last time I use the code.
 
 It seems like there's probably a simple solution, but I'm not seeing it.
 
 Thanks,
 
 Matt Goff
 
 __
 R-help@stat.math.ethz.ch mailing list
 https://stat.ethz.ch/mailman/listinfo/r-help
 PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html

Hi, Matt,

I'm afraid you cannot do what you want with boxplot.formula. You have at 
least two options:

1) Supply only data that has no empty levels.
2) Create a new function that does what you need:

## add `drop.unused.levels' argument to boxplot.formula
boxplot2 -
function (formula, data = NULL, ...,
   subset, na.action = NULL,
   drop.unused.levels = TRUE)
{
 if (missing(formula) || (length(formula) != 3))
 stop('formula' missing or incorrect)
 m - match.call(expand.dots = FALSE)
 if (is.matrix(eval(m$data, parent.frame(
 m$data - as.data.frame(data)
 m$... - NULL
 m$na.action - na.action
 m$drop.unused.levels - drop.unused.levels
 m[[1]] - as.name(model.frame)
 mf - eval(m, parent.frame())
 response - attr(attr(mf, terms), response)
 boxplot(split(mf[[response]], mf[-response]), ...)
}

values - 1:25
groups - factor(rep(c(A,B,C,D,E), each=5))
boxplot2(values ~ groups, subset = groups != C)

HTH,

--sundar

__
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html


[R] Boxplot using Formula

2006-04-08 Thread Matt Goff

I am trying to use the formula interface for the boxplot.
Currently running R 2.2.1 on Windows XP.

The problem is that boxplot is displaying groups that are empty in the  
plot.

The following example demonstrates what it is happening (though my actual  
situation is a little more complicated):

 data-data.frame(values=c(1:25), groups=rep(c(A,B,C,D,E),  
 each=5))
 boxplot(data$values~data$groups, subset=data$groups!=C)

The plot includes a space for level C with no boxplot.  I would like to  
have only those levels with associated boxplots be shown in the figure.   
So in this case, there should only be values A, B, D, and E evenly  
spaced along the horizontal axis.

I am a little confused because I am reusing old code and I don't remember  
having this issue before, so perhaps there have been some changes in the  
behavior of the boxplot function since the last time I use the code.

It seems like there's probably a simple solution, but I'm not seeing it.

Thanks,

Matt Goff

__
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html