假设有人五年前编写了一个完美工作的脚本,但是当今安装软件包后该脚本无法运行(并且假设某些软件包的更改非常重要)。
有没有一种按日期安装CRAN软件包的方法。例如:
install_CRAN_by_date("2016-05-01", c("rgdal", "sp", "dplyr", "trip"))
有没有简单的函数可以做到这一点?
checkpoint
软件包和Microsoft的"CRAN Time Machine",它包含自2014年以来每日CRAN的快照。checkpoint
示例。基本上你需要这样做:library(checkpoint)
checkpoint("2015-01-01")
library(your_favorite_cran_package)
library(versions)
input_date <- "2019-06-29"
dplyr_versions <- available.versions('dplyr')$dplyr
vers <- dplyr_versions[match(input_date, dplyr_versions$version)]$version
install.versions('dplyr', vers)
lapply
循环的方式。
versions
的选项,即install.versions
,您可以在其中指定软件包版本。如果您不知道版本号,可以使用available.versions('rgdal')
进行查询。 - akrunavailable.versions('dplyr')
,它还会返回 'date' 和version
。 - akruninstall_CRAN_by_date("2016-05-01", c("rgdal", "sp", "dplyr", "trip"))
,或者仍然需要一点手动工作访问快照,下载它们,并从本地源文件安装?(我知道这不是非常困难的工作,但如果没有人编写已经为我们完成了这项工作,我会感到惊讶) - stevec