Speed Trick: unlist(..., use.names=FALSE) is Heaps Faster!
Sometimes a minor change to your R code can make a big difference in processing time. Here is an example showing that if you’re don’t care about the names attribute when unlist()
:ing a list, specifying argument use.names = FALSE
can speed up the processing lots!
> x <- split(sample(1000, size = 1e6, rep = TRUE), rep(1:1e5, times = 10))
> t1 <- system.time(y1 <- unlist(x))
> t2 <- system.time(y2 <- unlist(x, use.names = FALSE))
> stopifnot(identical(y2, unname(y1)))
> t1/t2
user system elapsed
103 NaN 104
That’s more than a 100 times speedup.
So, check your code to see to which unlist()
statements you can add an use.names = FALSE
.