[R] 1st el of a list of vectors
Bert Gunter
gunter.berton at gene.com
Tue Jul 22 18:17:37 CEST 2014
Yes, but note that such comparisons don't necessarily tell you much.
Using your l1 on my computer:
> system.time(r1 <- sapply(l1, `[`, 1))
user system elapsed
1.2 0.0 1.2
> system.time(r2<- rapply(l1,function(x)x[1]))
user system elapsed
0.81 0.00 0.81
## But
> system.time(r3<- unlist(lapply(l1,`[`,1)))
user system elapsed
0.64 0.00 0.66
## and
> system.time(r4<- vapply(l1,`[`,1,1))
user system elapsed
0.60 0.00 0.61
sapply() takes a bit of extra time to get the return into the right
data structure. You tell vapply the return type and lapply always
returns a list.
-- Bert
Bert Gunter
Genentech Nonclinical Biostatistics
(650) 467-7374
"Data is not information. Information is not knowledge. And knowledge
is certainly not wisdom."
Clifford Stoll
On Tue, Jul 22, 2014 at 1:14 AM, arun <smartpink111 at yahoo.com> wrote:
> Or
> rapply(l,function(x) x[1])
> #[1] 1 3 7
>
>
> set.seed(42)
> l1 <- replicate(1e6, list(sample(1:5,sample(8),replace=T)))
> system.time(r1 <- sapply(l1, `[`, 1))
> # user system elapsed
> # 1.324 0.000 1.326
>
> system.time(r2 <- rapply(l1, function(x) x[1]))
> # user system elapsed
> # 0.736 0.004 0.741
>
> identical(r1,r2)
> #[1] TRUE
>
> system.time({
> eltlens <- elementLengths(l1)
> r3 <- unlist(l1, use.names=FALSE)[cumsum(eltlens) - eltlens + 1L]
> })
> # user system elapsed
> # 0.153 0.000 0.154
>
>
> A.K.
>
>
> On Tuesday, July 22, 2014 12:11 AM, Richard M. Heiberger <rmh at temple.edu> wrote:
> l = list(c(1,2), c(3,5,6), c(7))
>
> sapply(l, `[`, 1)
>
> 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.
>
>
> ______________________________________________
> 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