[R] 1st el of a list of vectors

Hervé Pagès hpages at fhcrc.org
Tue Jul 22 07:54:32 CEST 2014


Hi Carol,

On 07/21/2014 09:10 PM, Richard M. Heiberger wrote:
> l = list(c(1,2), c(3,5,6), c(7))
>
> sapply(l, `[`, 1)

Using sapply() works but won't be very efficient if you have a very long
list. If you worry about efficiency, you can do the following (using the
IRanges package from Bioconductor):

   > library(IRanges)
   > eltlens <- elementLengths(l)
   > unlist(l, use.names=FALSE)[cumsum(eltlens) - eltlens + 1L]
   [1] 1 3 7

Only worth if the length of your list is > 100000 though...

Cheers,
H.

PS: See http://bioconductor.org/packages/release/bioc/html/IRanges.html
for how to install the IRanges package.

>
> On Mon, Jul 21, 2014 at 3:55 PM, carol white <wht_crl at yahoo.com> wrote:
>> Hi,
>> If we have a list of vectors of different lengths, how is it possible to retrieve the first element of the vectors of the list?
>>
>>
>> l = list(c(1,2), c(3,5,6), c(7))
>>
>> 1,3,7 should be retrieved
>>
>> Thanks
>>
>> Carol
>>          [[alternative HTML version deleted]]
>>
>> ______________________________________________
>> 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.
>
> ______________________________________________
> 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.
>

-- 
Hervé Pagès

Program in Computational Biology
Division of Public Health Sciences
Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N, M1-B514
P.O. Box 19024
Seattle, WA 98109-1024

E-mail: hpages at fhcrc.org
Phone:  (206) 667-5791
Fax:    (206) 667-1319



More information about the R-help mailing list