我有一个安全的内部网络,该网络可以从内部文件夹安装预先批准的R软件包。
我为之工作的实体正在更新到R的新版本(3.6.2),但有些实体将需要在3.5.2上保留几个月。我知道许多软件包都是R版本特定的。我希望整理一下每个版本的CRAN软件包的清单,以确保相应地更新此内部文件夹。
执行此操作的最佳资源是什么?
到目前为止,我唯一能看到的方法是用每个版本初始化一个虚拟环境并遍历每个软件包,除非找到同一船上的其他人更有效的方法?
答案 0 :(得分:0)
您可以尝试使用miniCRAN::pkgDep
。来自help("pkgDep")
:
对Depends,Imports和LinkLibrary执行递归检索。对建议执行非递归检索。
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"