package_dependencies
Computations on the Dependency Hierarchy of Packages
Description
Find (recursively) dependencies or reverse dependencies of packages.
Usage
package_dependencies(packages = NULL, db = NULL, which = "strong", recursive = FALSE, reverse = FALSE, verbose = getOption("verbose"))
Arguments
packages | a character vector of package names. |
db | character matrix as from |
which | a character vector listing the types of dependencies, a subset of |
recursive | a logical indicating whether (reverse) dependencies of (reverse) dependencies (and so on) should be included, or a character vector like |
reverse | logical: if |
verbose | logical indicating if output should monitor the package search cycles. |
Value
Named list with one element for each package in argument packages
, each consists of a character vector naming the (recursive) (reverse) dependencies of that package.
For given packages which are not found in the db, NULL
entries are returned, as opposed to character(0)
entries which indicate no dependencies.
See Also
Examples
myPkgs <- c("MASS", "Matrix", "KernSmooth", "class", "cluster", "codetools") pdb <- available.packages() system.time( dep1 <- package_dependencies(myPkgs, db = pdb) # all arguments at default ) # very fast utils::str(dep1, vec.len=10) system.time( ## reverse dependencies, recursively --- takes much longer: deps <- package_dependencies(myPkgs, db = pdb, which = "most", recursive = TRUE, reverse = TRUE) ) # seen ~ 10 seconds lengths(deps) # 2020-05-03: all are 16053, but codetools with 16057 ## install.packages(dependencies = TRUE) installs 'most' dependencies ## and the strong recursive dependencies of these: these dependencies ## can be obtained using 'which = "most"' and 'recursive = "strong"'. ## To illustrate on the the first packages with non-missing Suggests: packages <- pdb[head(which(!is.na(pdb[, "Suggests"]))), "Package"] package_dependencies(packages, db = pdb, which = "most", recursive = "strong")
Copyright (©) 1999–2012 R Foundation for Statistical Computing.
Licensed under the GNU General Public License.