当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R installed.packages 查找已安装的软件包


R语言 installed.packages 位于 utils 包(package)。

说明

查找(或检索)指定库中安装的所有软件包的详细信息。

用法

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

参数

lib.loc

说明位置的特征向量R要搜索的库树,或者NULL对于所有已知的树(参见.libPaths)。

priority

字符向量或NULL(默认)。如果非空,则用于选择包; "high" 相当于 c("base", "recommended") 。要选择没有指定优先级的所有包,请使用 priority = NA_character_

noCache

不要使用缓存的信息,也不要缓存它。

fields

一个字符向量,给出从每个包的‘中提取的字段DESCRIPTION' 文件除了默认文件之外,或者NULL(默认)。不可用的字段会导致NA值。

subarch

字符串或 NULL 。如果非空且非空,则用于选择为该 sub-architecture 安装的软件包。

...

允许从其他函数传递未使用的参数。

细节

installed.packages扫描‘DESCRIPTION' 沿途找到的每个包的文件lib.loc并返回包名称、库路径和版本号的矩阵。

找到的信息被缓存(按库)以供R会话和指定fields参数,并且仅在顶级库目录已更改(例如通过安装或删除包)时更新。如果缓存的信息变得混乱,可以通过指定来避免noCache = TRUE.

每个包一行的矩阵,行名称为包名称,列名称为(当前)"Package","LibPath","Version","Priority","Depends","Imports","LinkingTo","Suggests","Enhances","OS_type","License""Built"(这R构建包的版本)。可以使用以下命令指定附加列fields争论。

注意

这需要读取每个已安装包的多个文件,这在 Windows 和某些 network-mounted 文件系统上会很慢。

当安装数千个包时,它会很慢,因此不要使用它来查找是否安装了指定的包(使用 find.packagesystem.file ),也不要使用它来查找包是否可用(调用 requireNamespacerequire 并检查返回值)也找不到少量包的详细信息(使用 packageDescription )。

例子

## 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"] )

## Recommended setup (by many pros):
## Keep packages that come with R (priority="high") and all others separate!
## Consequently, .Library, R's "system" library, shouldn't have any
## non-"high"-priority packages :
pSys <- installed.packages(.Library, priority = NA_character_)
length(pSys) == 0 # TRUE under such a setup

也可以看看

update.packagesinstall.packagesINSTALLREMOVE

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Find Installed Packages。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。