r - 将稳定包与以前版本的 R 匹配?
问题描述
我有一个安全的内部网络,可以从内部文件夹安装预先批准的 R 包。
我工作的实体正在更新到新版本的 R (3.6.2),但有些实体需要在 3.5.2 上保留几个月。我知道许多包是特定于 R 版本的。我希望汇总一个 CRAN 软件包版本的列表,以确保相应地更新这个内部文件夹。
最好的资源是什么?
到目前为止,我能看到的唯一方法是使用每个版本初始化一个虚拟环境并处理每个包,除非同一条船上的其他人找到了更有效的方法?
解决方案
您可以尝试使用miniCRAN::pkgDep
. 来自help("pkgDep")
:
对 Depends、Imports 和 LinkLibrary 执行递归检索。对 Suggests 执行非递归检索。
library(miniCRAN)
packages <- pkgDep("data.table")
packages
[1] "data.table" "bit" "R.oo" "R.methodsS3" "evaluate" "highr" "markdown" "stringr" "yaml" "xfun"
[11] "mime" "glue" "magrittr" "stringi" "zoo" "lattice" "bit64" "RcppCCTZ" "Rcpp" "curl"
[21] "R.utils" "knitr" "xts" "nanotime"
然后您可以使用以下信息base::available.packages
:
avail.pack <- available.packages()
unique(avail.pack[rownames(avail.pack) %in% packages,"Depends"])
[1] "R (>= 2.9.2)" "R (>= 3.0.1), bit (>= 1.1-12), utils, methods, stats"
[3] "R (>= 3.0.0)" "R (>= 3.1.0)"
[5] "R (>= 3.0.2)" "R (>= 3.1)"
[7] "R (>= 3.2.3)" NA
[9] "R (>= 2.11.1)" "R (>= 2.13.0)"
[11] "R (>= 2.13.0), R.methodsS3 (>= 1.7.1)" "R (>= 2.14.0), R.oo (>= 1.23.0)"
[13] "R (>= 2.14)" "zoo (>= 1.7-12)"
[15] "R (>= 3.1.0), stats"
推荐阅读
- node.js - 使用 Google Drive API 和 async/await 获取文件缓冲区
- mongoose - 如何仅过滤与猫鼬中的请求对应的子文档
- apache-kafka - kafka中如何让一个消费者离开并进入一个消费组
- c++ - 在带有 std::greater 附加参数的 std::map 上使用三元运算符
- xml - Dataweave - 循环深度映射 XML
- php - PHPUnit - 断言两个字符串相等失败
- sql - 如何在存储过程之外调用表变量
- reactjs - 在 ReactJS 中用组件替换字符串
- powershell - PowerShell 列表组合器 - 请优化
- c++ - 共享对象中的符号名称不同于 .cpp 文件中的函数