首页 > 解决方案 > 获取特定日期的 CRAN R 包版本

问题描述

有没有一种简单的方法来获取特定日期的 CRAN 包及其版本的列表?

例如这样的代码:

package_versions(packages = c("data.table", "lubridate"), date = "2018-01-01")

# Output
tribble(~package,     ~version,
        "data.table", "1.10.4-3",
        "lubridate",  "1.7.1")

一个想法是将检查点设置为特定日期,然后使用类似packageVersion. 但我想知道是否有一些更简单的方法不需要安装所有这些包。也许刮https://mran.microsoft.com/timemachine

标签: r

解决方案


尝试一下:

pack_version <- function(pack_list,date){
  require(rvest)
  myfunc <- function(x=pack_list,){
     url<-paste0("https://cran.microsoft.com/snapshot/", date,"/web/packages/", x, "/index.html")
     webpage <- read_html(url)
     table <- html_nodes(webpage, xpath='//td')
     html_text(table)[2]
}
  sapply(pack_list, myfunc, date=date) 
}

pack_list <- c("ggplot2", "abind")
date <- "2016-08-01"
pack_version(pack_list, date)

  ggplot2   abind 
  "2.1.0" "1.4-5"

推荐阅读