Re: [R] extracting components of a list

From: Martyn Plummer <plummer_at_iarc.fr>
Date: Tue 14 Jun 2005 - 00:39:23 EST

On Mon, 2005-06-13 at 15:23 +0100, Robin Hankin wrote:
> Hi
>
> how do I extract those components of a list that satisfy a certain
> requirement? If
>
> jj <- list(list(a=1,b=4:7),list(a=5,b=3:6),list(a=10,b=4:5))
>
>
> I want just the components of jj that have b[1] ==4 which in this case
> would be the first and
> third of jj, viz list (jj[[1]],jj[[3]]).
>
> How to do this efficiently?
>
> My only idea was to loop through jj, and set unwanted components to
> NULL, but
> FAQ 7.1 warns against this.
>

#Select the vectors named "b" from the elements of jj bvectors <- lapply(jj, FUN="[[", "b")
#Take the first element of each b
bfirst <- sapply(bvectors, head, 1)
#Select elements of jj such that bfirst is 4 jj[bfirst == 4]



R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html Received on Tue Jun 14 00:46:33 2005

This archive was generated by hypermail 2.1.8 : Fri 03 Mar 2006 - 03:32:33 EST