如何返回到CRAN包的早期版本?

如何返回到CRAN包的早期版本?,r,cran,R,Cran,我正在查看install.packages,我看不到任何指定特定版本的选项。有办法吗?我希望找到类似于install.packages(c('xts'),version='0.9.3') 我找到了这个答案: 但是,在安装devtools之后,我做到了: library(devtools) install_version('xts','0.9.3') 它给出了以下错误消息: Error in url(sprintf("%s/src/contrib/Archive.rds", repos), "r

我正在查看
install.packages
,我看不到任何指定特定版本的选项。有办法吗?我希望找到类似于
install.packages(c('xts'),version='0.9.3')

我找到了这个答案: 但是,在安装devtools之后,我做到了:

library(devtools)
install_version('xts','0.9.3')
它给出了以下错误消息:

Error in url(sprintf("%s/src/contrib/Archive.rds", repos), "rb") : 
  cannot open the connection
In addition: Warning message:
In url(sprintf("%s/src/contrib/Archive.rds", repos), "rb") :
  cannot open: HTTP status was '404 Not Found'
3: url(sprintf("%s/src/contrib/Archive.rds", repos), "rb")
2: gzcon(url(sprintf("%s/src/contrib/Archive.rds", repos), "rb"))
1: install_version("xts", "0.9.3")
(使用“0.9-3”,连字符而不是点,会产生相同的错误。)


Background:自从从0.9.3升级到0.9.4以来,我在xts rollapply函数调用中有一个回归。然而,当我查看在线svn存储库时,自我知道它上次起作用以来,似乎没有任何变化。因此,我想安装0.9.3(然后是0.9.2等)以确认问题的确切时间。

如果所有其他操作都失败,您可以直接从CRAN获取源代码:

现在,函数
安装版本
似乎与当前的CRAN存档有几个问题,并且您已经确定了前两个问题:

  • 0.9-3
    中的连字符替换为点
  • 找不到文件
    src/contrib/Archive.rds
    (它已移动到CRAN上的
    src/contrib/Meta/Archive.rds
  • archive.rds的格式发生了明显的变化
  • 我发送了一个pull请求,并修复了这些问题,因此应该很快在devtools中修复它。如果同时要使用
    install\u version
    ,请加载库
    devtools
    ,但使用此稍加编辑的功能:

    install_version <- function(package, version = NULL, repos = getOption("repos"), type = getOption("pkgType"), ...) {
    
      contriburl <- contrib.url(repos, type)
      available <- available.packages(contriburl)
    
      if (package %in% row.names(available)) {
        current.version <- available[package, 'Version']
        if (is.null(version) || version == current.version) {
          return(install.packages(package, repos = repos, contriburl = contriburl,
            type = type, ...))
        }
      }
    
      con <- gzcon(url(sprintf("%s/src/contrib/Meta/archive.rds", repos), "rb"))
      on.exit(close(con))
      archive <- readRDS(con)
    
      info <- archive[[package]]
      if (is.null(info)) {
        stop(sprintf("couldn't find package '%s'", package))
      }
    
      if (is.null(version)) {
        # Grab the latest one: only happens if pulled from CRAN
        package.path <- info[length(info)]
      } else {
        package.path <- paste(package, "/", package, "_", version, ".tar.gz",
          sep = "")
        if (!(package.path %in% row.names(info))) {
          stop(sprintf("version '%s' is invalid for package '%s'", version,
            package))
        }
      }
    
      url <- paste(repos, "/src/contrib/Archive/", package.path, sep = "")
      install_url(url, ...)
    }
    

    install\u版本谢谢<代码>wgethttp://cran.r-project.org/src/contrib/Archive/xts/xts_0.9-3.tar.gz
    后接
    R CMD INSTALL xts_0.9-3.tar.gz
    工作正常。该问题是由
    na.fill.zoo
    引起的,因此您无法通过查看以前的xts软件包找到它。尝试使用R-Forge上最新的zoo,看看这是否解决了问题。