package {svMisc} | R Documentation |
A (possibly) very silent and multi-package library()/require() function
Description
This function loads one or several R packages as silently as
possible (with warn/message = FALSE
) and it returns TRUE
only if all
packages are loaded successfully. If at least one loading fails, a short
message is printed, by default. For all packages that were not found, an
entry is recorded in .packages_to_install
in SciViews:TempEnv
, and that
list can be automatically used by Install()
.
Usage
package(
...,
stop = TRUE,
message = stop,
warn.conflicts = message,
pos = 2L,
lib.loc = NULL,
verbose = getOption("verbose")
)
Arguments
... |
The name of one or several R packages to load (character strings). |
stop |
If |
message |
Do we display introductory message of the package? If a package displays such a message, there is often a good reason. So, it is not a good idea to disable it in interactive sessions. However, in other contexts, like in non-interactive use, inside an R Markdown document, etc., it is more convenient not to display it. |
warn.conflicts |
As for |
pos |
As for |
lib.loc |
As for |
verbose |
A logical indicating if additional diagnostic messages are printed. |
Value
TRUE
if all packages are loaded correctly, FALSE
otherwise, with
a details
attribute indicating which package was loaded or not.
Note
This function is designed to concisely and possibly quietly (with
warn = FALSE
) load packages and attach them to the search path. Also, on
the contrary to library()
, or require()
, it is not possible to use
unquoted names of the packages. This is cleaner, and avoids the contrived
work-around to pass name(s) of packages as a variable with an arguments
character.only = TRUE
!
If several packages are provided, they are loaded and attached in reverse order, so that the order in the search path is the same one as the order in the provided vector.
The library(help = ...)
version is not implemented here.
See Also
require()
, library()
, Install()
Examples
# This should work...
if (package('tools', 'methods', stop = FALSE)) message("Fine!")
# ... but this not (note that there are no details here!)
if (!package('tools', 'badname', stop = FALSE)) message("Not fine!")
## Not run:
# Get an error
package('badname')
## End(Not run)