[R] Accessing selected elements of a list

Rui Barradas ruipbarradas at sapo.pt
Thu Nov 8 15:49:07 CET 2012


Hello,

Just try

jlist[ sapply(jlist,length) > 0 ]

Hope this helps,

Rui Barradas
Em 08-11-2012 14:42, Gonçalo Ferraz escreveu:
> 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