Jim and Patrick, Both of you made the same suggestion, which works great!
A follow-up question: Suppose I change the condition 'x>2' in 'lapply' to 'x>4', as follows: set.seed(123) tmpf <- function() { x <- rpois(rpois(1,4),2) } n <- 3 m <- replicate(n,tmpf()) m sub.m <- lapply(m, function(x)x[x>4]) # was x>2 As a result, I'd get: > sub.m [[1]] numeric(0) [[2]] [1] 5 [[3]] numeric(0) However, what would I need to do such that 'sub.m' contains only the non-zero length component; namely, the 'sub.m[[2]]'? In essence, I'd like to drop all the components of zero length such that 'sub.m' results in: [[1]] [1] 5 My best effort was to use 'lapply' again: lapply(sub.m, function(x)x[length(x)>0]) which still gives me: [[1]] numeric(0) [[2]] [1] 5 [[3]] numeric(0) Again, any help would be greately appreciated. p.s. Sorry to bug you again. I should have thought through a little more prior to composing an example that would represent all possible scenarios. On 8/25/06, jim holtman <[EMAIL PROTECTED]> wrote: > try this: > > > 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 > > > lapply(m, function(x)x[x>2]) > [[1]] > [1] 3 4 > > [[2]] > [1] 4 5 > > [[3]] > [1] 4 > > > > > On 8/25/06, xpRt.wannabe <[EMAIL PROTECTED]> wrote: > > 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@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. > > > > > -- > Jim Holtman > Cincinnati, OH > +1 513 646 9390 > > What is the problem you are trying to solve? > ______________________________________________ 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 and provide commented, minimal, self-contained, reproducible code.