當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。