[R] lapply and boxplots with variable names

Phil Spector spector at stat.berkeley.edu
Tue Jun 22 19:13:34 CEST 2010


Shawn -
    Does this example help?  (Please don't use cbind when creating
a data frame, since it first creates a matrix, which means everything
must be of the same mode.)

> var1 = rnorm(1000)
> var2 = rnorm(1000)
> TimePeriod = rep((LETTERS[1:4]), 250)
> my.data = data.frame(var1,var2,TimePeriod)
> lapply(names(my.data)[1:2],
+        function(y)boxplot(formula(paste(y,'TimePeriod',sep='~')),
+        main=y,data=my.data))


 					- Phil Spector
 					 Statistical Computing Facility
 					 Department of Statistics
 					 UC Berkeley
 					 spector at stat.berkeley.edu


On Tue, 22 Jun 2010, Shawn Morrison 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.
>



More information about the R-help mailing list