假设有人在5年前写了一个非常有效的脚本,但在今天安装包时却不起作用(并假设对某些包的更改非常显著(。
是否有任何方法可以在日期之前安装CRAN软件包。例如
install_CRAN_by_date("2016-05-01", c("rgdal", "sp", "dplyr", "trip"))
有什么简单的函数可以做到这一点吗?
使用checkpoint
软件包和Microsoft的"CRAN时间机器";有CRAN 2014年的每日快照。
有关示例,请参见此checkpoint
小插曲。基本上你会做
library(checkpoint)
checkpoint("2015-01-01")
library(your_favorite_cran_package)
假设UI给出了正确的发布日期('put_date'(,例如'dplyr'。从available.versions
中获取基于"input_date"one_answers"version"列之间的match
的"version",并使用它与install.versions
一起安装
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
的循环