[R] Accessing selected elements of a list
arun
smartpink111 at yahoo.com
Thu Nov 8 15:57:09 CET 2012
Hi,
If i understand it correctly,
lapply(jlist,function(x) x[x>0])
#[[1]]
#NULL
#[[2]]
#[1] 1
#[[3]]
#NULL
#[[4]]
#[1] 1 2 3
#[[5]]
#NULL
A.K.
----- Original Message -----
From: Gonçalo Ferraz <gferraz29 at gmail.com>
To: r-help at r-project.org
Cc:
Sent: Thursday, November 8, 2012 9:42 AM
Subject: [R] Accessing selected elements of a list
Hi,
If I have a vector:
junk <- c(2,0,0,3,0)
and want to access, say, all the elements that are greater than zero. I just do:
junk[which(junk>0)]
Now, If I have a list:
jlist <- list(NULL,c(1,0),NULL,c(1,2,3), NULL)
and want to access all the elements that have length greater than zero, I know how to find the elements with:
which(sapply(jlist,length)>0)
But how do I get a new list, only with the non-zero-length elements, without having to write a for loop?
I tried:
notnull <- which(sapply(jlist,length)>0)
jlist[[notnull]]
and got the error:
Error in jlist[[notnull]] : recursive indexing failed at level 2
Thank you for any help!
______________________________________________
R-help at r-project.org 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.
More information about the R-help
mailing list