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


R available.packages 列出类似 CRAN 的存储库中的可用软件包


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

说明

available.packages 返回与一个或多个存储库中当前可用的包相对应的详细信息矩阵。当前的软件包列表是通过互联网下载的(或从本地镜像复制)。

用法

available.packages(contriburl = contrib.url(repos, type), method,
                   fields = NULL, type = getOption("pkgType"),
                   filters = NULL, repos = getOption("repos"),
                   ignore_repo_cache = FALSE, max_repo_cache_age,
                   quiet = TRUE, verbose = FALSE, ...)

参数

contriburl

‘的 URL贡献” 存储库的部分。仅当您的存储库镜像不完整时才指定此参数,例如,因为您仅镜像了“贡献' 部分。

method

下载方法参见download.file

type

字符串,表示包的类型:参见install.packages

如果type = "both"这将使用源存储库。

fields

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

filters

字符向量或列表或NULL(默认)。查看具体信息'。

repos

字符向量,要使用的存储库的基本 URL。

ignore_repo_cache

合乎逻辑的。如果为 true,则永远不会使用存储库缓存(请参阅“详细信息”)。

max_repo_cache_age

任何早于此时间(以秒为单位)的缓存值都将被忽略。查看具体信息'。

quiet

逻辑,传递给download.file();只有当你知道自己在做什么时才能改变。

verbose

逻辑指示是否应打印 “progress report” 行以了解每个存储库中找到的包的数量。

...

允许从调用者传递附加参数(可能是该函数未来版本的参数)。目前这些都传递给download.file()

细节

软件包列表是从本地镜像复制的(由‘⁠文件://⁠’ URI)或下载。如果下载并ignore_repo_cache为 false(默认值),该列表将被缓存Rper-repository 文件中的会话tempdir()名字像

repos_http%3a%2f%2fcran.r-project.org%2fsrc%2fcontrib.rds

发现缓存值太旧时会更新,并控制年龄限制通过参数max_repo_cache_age。这默认为环境变量的当前值R_AVAILABLE_PACKAGES_CACHE_CONTROL_MAX_AGE,或者如果未设置,则为3600(一小时)。

默认情况下,返回值仅包含其运行版本满足版本和操作系统要求的包R,并且仅提供有关最新版本的软件包的信息。

参数 filters 可用于选择报告存储库中的哪些包。它由 install.packages 等函数使用其默认值 ( NULL ) 进行调用:该值对应于 getOption("available_packages_filters")c("R_version", "OS_type", "subarch", "duplicates")(如果未设置或设置为 NULL )。

内置过滤器是

"R_version"

排除以下软件包R不满足版本要求。

"OS_type"

排除操作系统要求与此版本不兼容的软件包R:即排除类 Unix 平台上的 Windows-only 包,并且反之亦然.

"subarch"

对于二进制包,排除那些包含当前 sub-architecture 不可用的已编译代码的包,例如在 64 位 Windows 上排除仅为 32 位 Windows 编译的包R.

"duplicates"

仅报告有多个可用版本的最新版本,并且仅报告具有最新版本的 first-named 存储库(在 contriburl 中)(如果该存储库位于多个存储库中)。

"license/FOSS"

仅包含可仅基于可使用可用许可规范验证为自由或开源软件(FOSS,例如 https://en.wikipedia.org/wiki/FOSS )的软件包进行安装的软件包。因此,需要知道该软件包及其加载所依赖的任何软件包都是 FOSS。

请注意,这确实取决于提供许可证信息的存储库。

"license/restricts_use"

仅包括可以仅根据已知不限制使用的软件包进行安装的软件包。

"CRAN"

优先使用 CRAN 版本而不是其他存储库的版本(即使这些版本具有更高的版本号)。这需要在默认的 "duplicates" 过滤器之前应用,因此不能与 add = TRUE 一起使用。

如果所有过滤器都来自该集合,则可以将它们指定为字符向量;否则filters应该是一个列表,其元素是字符串、用户定义的函数或add = TRUE(见下文)。

用户定义的过滤器是采用单个参数、available.packages 返回形式的矩阵的函数,并返回由参数行的子集组成的矩阵。

特殊的 ‘filter’ add = TRUE 将过滤器列表的其他元素附加到默认过滤器。

每个包一行的矩阵,行名称为包名称,列名称包括 "Package" , "Version" , "Priority" , "Depends" , "Imports" , "LinkingTo" , "Suggests" , "Enhances" , "File""Repository" 。可以使用 fields 参数指定其他列。

在存储库提供的情况下,字段 "OS_type""License""License_is_FOSS""License_restricts_use""Archs""MD5sum""NeedsCompilation" 报告供过滤器和包管理工具使用,包括 install.packages

例子

## Not run: 
## Count package licenses
db <- available.packages(filters = "duplicates")
table(db[,"License"])

## Use custom filter function to only keep recommended packages
## which do not require compilation
available.packages(filters = list(
  add = TRUE,
  function (db) db[db[,"Priority"] %in% "recommended" &
                   db[,"NeedsCompilation"] == "no", ]
))

## Restrict install.packages() (etc) to known-to-be-FOSS packages
options(available_packages_filters =
  c("R_version", "OS_type", "subarch", "duplicates", "license/FOSS"))
## or
options(available_packages_filters = list(add = TRUE, "license/FOSS"))

## Give priority to released versions on CRAN, rather than development
## versions on R-Forge etc.
options(available_packages_filters =
     c("R_version", "OS_type", "subarch", "CRAN", "duplicates"))

## End(Not run)

也可以看看

packageStatusupdate.packagesinstall.packagesdownload.packagescontrib.url

有关如何设置存储库的“R 安装和管理”手册。

相关用法


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