[R] Creating plots for all variables in a data frame and printing them with the variable name in the main title

Prof Brian Ripley ripley at stats.ox.ac.uk
Mon Mar 17 12:35:36 CET 2008


On Mon, 17 Mar 2008, Uli Kleinwechter wrote:

> Dear all,
>
> I'm just trying to create plots for all variables in a dataframe (named
> "x") using the following:
>
> png()
> apply(x,2,hist)

Please don't use apply() on a data frame: you want lapply(x, hist) here.

> Just as intended, it produces one plot for each variable. Unfortunately,
> the main title of each graph is "Histogram of newX[,i]" instead of
> "Histogram of name of variable". This makes it impossible to assign the
> graphs to the variables. Is there a way to change this and to make R use
> the correct variable names in the title of the plot?

You need to tell hist() what the title is to be.  I'd just use a loop, 
e.g.

for(xn in names(x)) hist(x[[xn]], title = paste("Histogram of", xn))

but you could use lapply by e.g.

lapply(names(x), function(xn) hist(x[[xn]], title = paste("Histogram of", xn)))

-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595



More information about the R-help mailing list