[R] How to iteratively extract elements out of a list

Petr Pikal petr.pikal at precheza.cz
Mon Aug 28 09:58:42 CEST 2006


Hi

try to do it without loop

lapply(m,function(x) x[x>2])

HTH
Petr


On 25 Aug 2006 at 13:52, xpRt.wannabe wrote:

Date sent:      	Fri, 25 Aug 2006 13:52:51 -0500
From:           	"xpRt.wannabe" <xprt.wannabe at gmail.com>
To:             	r-help at stat.math.ethz.ch
Subject:        	[R] How to iteratively extract elements out of a list

> Dear List,
> 
> The following code produces a list, which is what I what:
> 
> set.seed(123)
> tmpf <- function() {
> x <- rpois(rpois(1,4),2)
> }
> n <- 3
> m <- replicate(n,tmpf())
> m
> 
> [[1]]
> [1] 3 2 4
> 
> [[2]]
> [1] 0 2 4 2 2 5 2
> 
> [[3]]
> [1] 2 0 4 1 0
> 
> 
> Now I need something that would to extract iteratively (or as many
> times as the size of 'n') the values that are greater than 2 in each
> component of 'm' into another list such that the sub-list would be:
> 
> [[1]]
> [1] 3 4
> 
> [[2]]
> [1] 4 5
> 
> [[3]]
> [1] 4
> 
> Below is what I tried:
> 
> for(i in 1:3)
> sub.list <- lapply(m,subset,m[[i]]>2)
> 
> > sub.list
> 
> which gives me something different from what I want:
> 
> [[1]]
> [1] 4
> 
> [[2]]
> [1] 4
> 
> [[3]]
> [1] 4
> 
> Any help would be appreciated.
> 
> > version
>          _
> platform i386-pc-mingw32
> arch     i386
> os       mingw32
> system   i386, mingw32
> status
> major    2
> minor    2.1
> year     2005
> month    12
> day      20
> svn rev  36812
> language R
> 
> ______________________________________________
> R-help at 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 and provide commented,
> minimal, self-contained, reproducible code.

Petr Pikal
petr.pikal at precheza.cz



More information about the R-help mailing list