Re: [R] extracting components of a list

From: John Wilkinson (pipex) <wilks_at_dial.pipex.com>
Date: Wed 15 Jun 2005 - 02:15:51 EST


Dimitris,

wouldn't this be more precise ---

> sapply(jj,function(x) which(x$b[1]==4))

[[1]]
[1] 1

[[2]]
numeric(0)

[[3]]
[1] 1

 John

Dimitris wrote ---

maybe something like this:

jj <- list(list(a = 1, b = 4:7), list(a = 5, b = 3:6), list(a = 10, b = 4:5))
###############
jj[sapply(jj, function(x) x$b[1] == 4)]

I hope it helps.

Best,
Dimitris



Dimitris Rizopoulos
Ph.D. Student
Biostatistical Centre
School of Public Health
Catholic University of Leuven

Address: Kapucijnenvoer 35, Leuven, Belgium

Tel: +32/16/336899
Fax: +32/16/337015
Web: http://www.med.kuleuven.ac.be/biostat/
     http://www.student.kuleuven.ac.be/~m0390867/dimitris.htm



> 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.
>
>
>
>
> --
> Robin Hankin
> Uncertainty Analyst
> National Oceanography Centre, Southampton
> European Way, Southampton SO14 3ZH, UK
> tel 023-8059-7743
>



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 Wed Jun 15 02:19:51 2005

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