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?
Simply check the checkbox next to the package name to load the package and gain access to the datasets. You can also click on the package name and RStudio will open a help file describing the datasets in this package.
extdata: Extra data used to calculate ID numbers in Yassai et al.'s nomenclature.
"extdata" is presumably short for "external data". However, this doesn't mean that you need to use "extdata" when you are structuring your own code; you only need it when finding the files that are included by the package.
lazyData: A LazyData Facility A single function is is included, requireData, which is a drop-in replacement for base::require, but carrying the additional functionality. By default, it suppresses package startup messages as well.
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")
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With