[R] use of names() within lapply()

Duncan Murdoch murdoch.duncan at gmail.com
Wed Apr 17 17:12:54 CEST 2013


On 17/04/2013 11:04 AM, Ivan Alves wrote:
> Dear all,
>
> List g has 2 elements
>
> > names(g)
> [1] "2009-10-07" "2012-02-29"
>
> and the list plot
>
> lapply(g, plot, main=names(g))
>
> results in equal plot titles with both list names, whereas distinct titles names(g[1]) and names(g[2]) are sought. Clearly, lapply is passing 'g' in stead of consecutively passing g[1] and then g[2] to process the additional 'main'  argument to plot.  help(lapply) is mute as to what to element-wise pass parameters.  Any suggestion would be appreciated.

I think you want mapply rather than lapply, or you could do lapply on a 
vector of indices.  For example,

mapply(plot, g, main=names)

or

lapply(1:2, function(i) plot(g[[i]], main=names(g)[i]))

Duncan Murdoch



More information about the R-help mailing list