R: How to lazyload variables from inst/extdata in R package
devtools, lazy-loading, r
Solution
Before being able to lazy-load your data you have to save your variables in a database that supports lazy load.
You can do this using the function `tools:::makeLazyLoadDB` and later the function `lazyLoad`.
To create the lazy load database. Say you have the variables X and Y, the you have to create an environment that contains them:
e=new.env(parent=emptyenv())
e$X = X
e$Y = Y
next you create the database:
tools:::makeLazyLoadDB(e,"DBNAME")
of course you can change `DBNAME`.
You can the import it in R using `lazyLoad("DBNAME")`.
Problem
I have a file helper.RData file in my inst/extdata that contains variables and datasets to be used by the functions in my package, but not meant to be accessed by the user. I load it at the beginning of the package using: ``` load(system.file("extdata","helper.RData", package = "mypackage")) ``` As the file is big this takes quite a bit of time and it is especially annoying during development (I use quite a loot the function `load_all()` from the `devtools` package). I would rather prefer to have it lazy loaded so that the file is loaded only when actually needed. How can I do that?