[R] Automating plot labelling in custom function in lapply() ?
Marc Schwartz
MSchwartz at MedAnalytics.com
Fri Apr 29 15:16:30 CEST 2005
On Fri, 2005-04-29 at 13:00 +0100, Gavin Simpson wrote:
> 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
Gavin,
To paraphrase John Fox from a recent thread, "this is one of those times
where trying to avoid using a for() loop is counterproductive":
oldpar <- par(mfrow = c(2,2), no.readonly = TRUE)
for (i in 1:4)
{
plot(density(dat[, i]), main = colnames(dat)[i])
}
par(oldpar)
HTH,
Marc Schwartz
More information about the R-help
mailing list