require_namespace() is ultimately a check which will produce an error on
the first package that is not available or meets version requirements.
Although this returns TRUE, it is not intended to be used in a conditional
statement. Future version may return invisible(). For conditional checks
use available_namespace(), which will return a named logical instead.
is_namespace_available() is an alias for available_namespace().
Usage
require_namespace(package, ...)
available_namespace(package, ...)
is_namespace_available(package, ...)Value
require_namespace()TRUE(invisibly) if found; otherwise errors
available_namespace()A namedlogicalvector of same length as input. Vector names are packages and values areTRUEif the package is available and meets the version requirement, otherwiseFALSE.
Examples
isTRUE(require_namespace("base")) # returns invisibly
#> [1] TRUE
try(require_namespace("1package")) # (using a purposefully bad name)
#> Error : <namespace_error> No package found called '1package'
require_namespace("base", "utils")
try(require_namespace("base >= 3.5", "utils > 4.0", "fuj == 0.0"))
#> Error : <fuj::namespace_version_error> Package version require not met: fuj is 0.2.2.9015 but ==0.0 is required.
# no error check
fuj0 <- if (!available_namespace("fuj == 0.0")) {
"fuj 0.0 does not exist"
}
fuj0
#> [1] "fuj 0.0 does not exist"
