Is there a way to speed up the library loading in R?
performance, r, statistics
Solution
As an addition to @MikeDunlavey's answer:
Actually, both `library` and `require` check whether the package is already loaded. Here are some timings with `microbenchmark` I get:
> microbenchmark (`!` (exists ("qplot")),
`!` (existsFunction ('qplot')),
require ('ggplot2'),
library ('ggplot2'),
"package:ggplot2" %in% search ())
## results reordered with descending median:
Unit: microseconds
expr min lq median uq max
3 library("ggplot2") 259.720 262.8700 266.3405 271.7285 448.749
1 !existsFunction("qplot") 79.501 81.8770 83.7870 89.2965 114.182
5 require("ggplot2") 12.556 14.3755 15.5125 16.1325 33.526
4 "package:ggplot2" %in% search() 4.315 5.3225 6.0010 6.5475 9.201
2 !exists("qplot") 3.370 4.4250 5.0300 6.2375 12.165
For comparison, loading for the first time:
> system.time (library (ggplot2))
User System verstrichen
0.284 0.016 0.300
(these are seconds!)
In the end, as long as the factor 3 = 10 μs between `require` and `"package:ggplot2" %in% search()` isn't needed, I'd go with `require`, otherwise witht the `%in% search ()`.
Problem
I have a Rscript that will load `ggplot2` in its first line. Though loading a library doesn't take much time, as this script may be executed in command line for millions of times so the speed is really important for me. Is there a way to speed up this loading process?