[R] access list component names with lapply
Prof Brian Ripley
ripley at stats.ox.ac.uk
Thu Mar 30 10:23:46 CEST 2006
On Wed, 29 Mar 2006, Thomas Girke wrote:
> I have a question regarding accessing the names of list
> components when applying a function with lapply.
>
> Here is an example that demonstrates what I'd like to do.
>
> I have a list like this one:
>
> mylist <- list(a=letters[1:10], b=letters[10:1], c=letters[1:3])
>
> Now I would like to append the names of the list components to their
> corresponding vectors with the c() function. I thought this could
> be done like in the following command, but it doesn't:
>
> lapply(mylist, function(x) { c(names(x), x) } )
>
> I know how to do this in a for loop, but lapply runs so much faster over
> large lists.
Try
lapply(names(mylist), function(x) c(x, mylist[[x]]))
(that prepends, but your code attempts to prepend rather than append so I
am guessing that it what you wanted).
--
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