[R] Efficient access to elements of a list of lists
Benilton Carvalho
beniltoncarvalho at gmail.com
Sun Mar 11 17:18:53 CET 2012
Hi,
I have a long list of lists from which I want to efficiently extract
and rbind elements. So I'm using the approach below:
f <- function(i){
out <- replicate(5, list(matrix(rnorm(80), nc=20)))
names(out) <- letters[1:5]
out
}
set.seed(1)
lst <- lapply(1:1.5e6, f)
(t0 <- system.time(tmp <- do.call(rbind, lapply(lst, '[[', 'b'))))
Is there anything better/faster than the do.call+rbind+lapply combo
above? On this example, the combo takes roughly 20s on my machine...
but on the data I'm working with, it takes more than 1 minute... And
given that I need to repeat the task several times, the cumul. amount
of time is significant for me.
Thank you for any suggestion/comment,
benilton
More information about the R-help
mailing list