Re: [R] Automating plot labelling in custom function in lapply() ?

From: Sundar Dorai-Raj <sundar.dorai-raj_at_pdf.com>
Date: Fri 29 Apr 2005 - 23:17:33 EST

Gavin Simpson wrote on 4/29/2005 5:00 AM:
> Dear List,
>
> Consider the following example:
>
> dat <- data.frame(var1 = rnorm(100), var2 = rnorm(100),
> var3 = rnorm(100), var4 = rnorm(100))
> oldpar <- par(mfrow = c(2,2), no.readonly = TRUE)
> invisible(lapply(dat,
> function(x) {
> plot(density(x),
> main = deparse(substitute(x))) }
> )
> )
> par(oldpar)
>
> I want to the main title in each of the density plots to be var1, var2,
> etc. The above code produces x[[1]], x[[2]] etc.
>
> What do I need to modify to be able to use the name of x as the plot
> label within in the above situation?
>
> Thanks in advance,
>
> Gav

Gav,

I think a `for' loop would be more useful here (not to mention, more readable):

dat <- data.frame(var1 = rnorm(100), var2 = rnorm(100),

                   var3 = rnorm(100), var4 = rnorm(100))
oldpar <- par(mfrow = c(2,2), no.readonly = TRUE) for(v in names(dat))

   plot(density(dat[[v]]), main = v)
par(oldpar)

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 Received on Fri Apr 29 23:21:52 2005

This archive was generated by hypermail 2.1.8 : Fri 03 Mar 2006 - 03:31:30 EST