首页 > 解决方案 > 将稳定包与以前版本的 R 匹配?

问题描述

我有一个安全的内部网络,可以从内部文件夹安装预先批准的 R 包。

我工作的实体正在更新到新版本的 R (3.6.2),但有些实体需要在 3.5.2 上保留几个月。我知道许多包是特定于 R 版本的。我希望汇总一个 CRAN 软件包版本的列表,以确保相应地更新这个内部文件夹。

最好的资源是什么?

到目前为止,我能看到的唯一方法是使用每个版本初始化一个虚拟环境并处理每个包,除非同一条船上的其他人找到了更有效的方法?

标签: rpackageversioncran

解决方案


您可以尝试使用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"              

推荐阅读