This function efficiently checks for the presence of a package
without loading it (unlike library()
or require()
.
This is useful to force yourself to use the package::function
syntax for addressing functions; you can make sure required packages
are installed, but their namespace won't attach to the search path.
checkPkgs( ..., install = FALSE, load = FALSE, repos = "https://cran.rstudio.com" )
... | A series of packages. If the packages are named, the names are the package names, and the values are the minimum required package versions (see the second example). |
---|---|
install | Whether to install missing packages from |
load | Whether to load packages (which is exactly not the point of this package, but hey, YMMV). |
repos | The repository to use if installing packages; default is the RStudio repository. |
Invisibly, a vector of the available packages.
# \donttest{ ufs::checkPkgs('base'); ### Require a specific version ufs::checkPkgs(ufs = "0.3.1"); ### This will show the error message tryCatch( ufs::checkPkgs( base = "99", stats = "42.5", ufs = 20 ), error = print ); #> <simpleError in ufs::checkPkgs(base = "99", stats = "42.5", ufs = 20): Of package(s) 'base', 'stats' & 'ufs', you need at least versions 99, 42.5 & 20, respectively. Install those with: #> #> install.packages(c('base', 'stats', 'ufs')); #> > # }