R: Find Installed Packages

installed.packages {utils} | R Documentation

## Find Installed Packages

### Description

Find (or retrieve) details of all packages installed in the specified libraries.

### Usage

    installed.packages(lib.loc = NULL, priority = NULL,
                       noCache = FALSE, fields = NULL,
                       subarch = .Platform$r_arch)

### Arguments

`lib.loc` | character vector describing the location of R library trees to search through, or `NULL` for all known trees (see `.libPaths`).
`priority` | character vector or `NULL` (default). If non-null, used to select packages; `"high"` is equivalent to `c("base", "recommended")`. To select all packages without an assigned priority use `priority = "NA"`.
`noCache` | Do not use cached information, nor cache it.
`fields` | a character vector giving the fields to extract from each package's `DESCRIPTION` file in addition to the default ones, or `NULL` (default). Unavailable fields result in `NA` values.
`subarch` | character string or `NULL`. If non-null and non-empty, used to select packages which are installed for that sub-architecture.

### Details

`installed.packages` scans the ‘DESCRIPTION’ files of each package found along `lib.loc` and returns a matrix of package names, library paths and version numbers.

The information found is cached (by library) for the R session and specified `fields` argument, and updated only if the top-level library directory has been altered, for example by installing or removing a package. If the cached information becomes confused, it can be refreshed by running `installed.packages(noCache = TRUE)`.

### Value

A matrix with one row per package, row names the package names and column names (currently) `"Package"`, `"LibPath"`, `"Version"`, `"Priority"`, `"Depends"`, `"Imports"`, `"LinkingTo"`, `"Suggests"`, `"Enhances"`, `"OS_type"`, `"License"` and `"Built"` (the R version the package was built under). Additional columns can be specified using the `fields` argument.

### Note

This can be slow when thousands of packages are installed, so do not use this to find out if a named package is installed (use `system.file` or `find.package`) nor to find out if a package is usable (call `require` and check the return value) nor to find details of a small number of packages (use `packageDescription`). It needs to read several files per installed package, which will be slow on Windows and on some network-mounted file systems.

### See Also

`update.packages`, `install.packages`, `INSTALL`, `REMOVE`.

### Examples

    ## confine search to .Library for speed
    str(ip <- installed.packages(.Library, priority = "high"))
    ip[, c(1,3:5)]
    plic <- installed.packages(.Library, priority = "high", fields = "License")
    ## what licenses are there:
    table( plic[, "License"] )

[Package utils version 3.1.2 Index]