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

xpRt.wannabe xprt.wannabe at gmail.com
Fri Aug 25 20:52:51 CEST 2006


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



More information about the R-help mailing list