[R] lapply and boxplots with variable names

Joshua Wiley jwiley.psych at gmail.com
Tue Jun 22 19:25:00 CEST 2010


Hello Shawn,

Does this do what you want?  I'm assuming you want to look at each
plot, so I added a call to par().

#######
my.data <- data.frame(var1=rnorm(1000), var2=rnorm(1000),
TimePeriod=factor(rep((LETTERS[1:4]), 250)))
str(my.data)

lapply(names(my.data[ , 1:2]), function(y) {
  old.par <- par(no.readonly = TRUE)
  on.exit(par(old.par))
  par("ask"=TRUE)
  boxplot(my.data[, y] ~ my.data[, "TimePeriod"],
          main = y)
})
######

HTH,

Josh


On Tue, Jun 22, 2010 at 9:45 AM, Shawn Morrison
<shawn.morrison at dryasresearch.com> wrote:
> Hi all,
>
> I have a dataset with several variables, each of which is a separate column.
> For each variable, I want to produce a boxplot and include the name of the
> variable (ie, column name) on each plot.
>
> I have included a sample dataset below. Can someone tell me where I am going
> wrong?
>
> Thank you for your help,
> Shawn Morrison
>
> # Generate a sample dataset
> var1 = rnorm(1000)
> var2 = rnorm(1000)
> TimePeriod = rep((LETTERS[1:4]), 250)
>
> my.data = as.data.frame(cbind(var1, var2, TimePeriod)); summary(my.data)
> attach(my.data)
>
> # Create box plots for var1 and var2 using TimePeriod on the x-axis
> lapply(my.data[,1:2], function(y) {
>    boxplot(y~TimePeriod,
>                main = y
>                data = my.data)
>    })
>
> ______________________________________________
> R-help at 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.
>



-- 
Joshua Wiley
Ph.D. Student
Health Psychology
University of California, Los Angeles



More information about the R-help mailing list