[R] Extracting multiple elements from a list

Julian Taylor julian.taylor at adelaide.edu.au
Fri Jan 16 06:20:45 CET 2004

"Waichler, Scott R" wrote:
> Brian described well the operation I would like to do.
> I'm not familiar with do.call() but I'll work on that.
> Yes, ideally I would like to access values throughout a list object
> with fully implict indexing, such as the invalid "alist[[1:2]]$vec[c(2, 4)]".
> Notice I was hoping to subset anywhere in the data structure.
> Since I can't do this subsetting with indexing directly, I was looking for
> handy (and hopefully fast) functions that could be defined
> generically and then called with arguments.  The use of sapply()
> and lapply() with function(i) seem promising, but do not quite
> cover the functionality I was looking for.

The functions sapply() and lapply() have more generality that has been
overlooked in this thread.

This will answer your first question.

> unlist(lapply(alist, function(x, ind = c(2,4)) x$vec[ind]))
[1] 2 4 6 8

Julian Taylor			phone: +61 8 8303 6751
ARC Research Associate            fax: +61 8 8303 6760
BiometricsSA,                  mobile: +61 4 1638 8180  
University of Adelaide/SARDI    email: julian.taylor at adelaide.edu.au
Private Mail Bag 1                www:
Glen Osmond SA 5064

"There is no spoon."   -- Orphan boy  

More information about the R-help mailing list