xfun (version 0.7)

pkg_attach: Attach or load packages, and automatically install missing packages if requested

Description

pkg_attach() is a vectorized version of library() over the package argument to attach multiple packages in a single function call. pkg_load() is a vectorized version of requireNamespace() to load packages (without attaching them). The functions pkg_attach2() and pkg_load2() are wrappers of pkg_attach(install = TRUE) and pkg_load(install = TRUE), respectively. loadable() is an abbreviation of requireNamespace(quietly = TRUE).

Usage

pkg_attach(..., install = FALSE, message = getOption("xfun.pkg_attach.message", TRUE))

pkg_load(..., error = TRUE, install = FALSE)

loadable(pkg, strict = TRUE, new_session = FALSE)

pkg_attach2(...)

pkg_load2(...)

Arguments

...

Package names (character vectors, and must always be quoted).

install

Whether to automatically install packages that are not available using install.packages(). You are recommended to set a CRAN mirror in the global option repos via options() if you want to automatically install packages.

message

Whether to show the package startup messages (if any startup messages are provided in a package).

error

Whether to signal an error when certain packages cannot be loaded.

pkg

A single package name.

strict

If TRUE, use requireNamespace() to test if a package is loadable; otherwise only check if the package is in .packages(TRUE) (this does not really load the package, so it is less rigorous but on the other hand, it can keep the current R session clean).

new_session

Whether to test if a package is loadable in a new R session. Note that new_session = TRUE implies strict = TRUE.

Value

pkg_attach() returns NULL invisibly. pkg_load() returns a logical vector, indicating whether the packages can be loaded.

Details

These are convenience functions that aim to solve these common problems: (1) We often need to attach or load multiple packages, and it is tedious to type several library() calls; (2) We are likely to want to install the packages when attaching/loading them but they have not been installed.

Examples

Run this code
# NOT RUN {
library(xfun)
pkg_attach("stats", "graphics")
# pkg_attach2('servr') # automatically install servr if it is not installed

(pkg_load("stats", "graphics"))
# }

Run the code above in your browser using DataCamp Workspace