find.package {base} | R Documentation |
Find Packages
Description
Find the paths to one or more packages.
Usage
find.package(package, lib.loc = NULL, quiet = FALSE,
verbose = getOption("verbose"))
path.package(package, quiet = FALSE)
packageNotFoundError(package, lib.loc, call = NULL)
Arguments
package |
character vector: the names of packages. |
lib.loc |
a character vector describing the location of R
library trees to search through, or |
quiet |
logical. Should this not give warnings or an error if the package is not found? |
verbose |
a logical. If |
call |
call expression. |
Details
find.package
returns path to the locations where the
given packages are found. If lib.loc
is NULL
, then
loaded namespaces are searched before the libraries. If a package is
found more than once, the first match is used. Unless quiet =
TRUE
a warning will be given about the named packages which are not
found, and an error if none are. If verbose
is true, warnings
about packages found more than once are given. For a package to be
returned it must contain a either a ‘Meta’ subdirectory or a
‘DESCRIPTION’ file containing a valid version
field, but
it need not be installed (it could be a source package if
lib.loc
was set suitably).
find.package
is not usually the right tool to find out if a
package is available for use: the only way to do that is to use
require
to try to load it. It need not be installed for
the correct platform, it might have a version requirement not met by
the running version of R, there might be dependencies which are not
available, ....
path.package
returns the paths from which the named packages
were loaded, or if none were named, for all currently attached packages.
Unless quiet = TRUE
it will warn if some of the packages named
are not attached, and given an error if none are.
packageNotFoundError
creates an error condition object of class
packageNotFoundError
for signaling errors. The condition object
contains the fields package
and lib.loc
.
Value
A character vector of paths of package directories.
See Also
path.expand
and normalizePath
for path
standardization.
Examples
try(find.package("knitr"))
## will not give an error, maybe a warning about *all* locations it is found:
find.package("kitty", quiet=TRUE, verbose=TRUE)
## Find all .libPaths() entries a package is found:
findPkgAll <- function(pkg)
unlist(lapply(.libPaths(), function(lib)
find.package(pkg, lib, quiet=TRUE, verbose=FALSE)))
findPkgAll("MASS")
findPkgAll("knitr")