安装 R 软件包的旧版本

我尝试使用 Rpy2和 ggplot2,但是得到了一个错误。在线搜索错误之后,我发现发生错误是因为 ggplot2包中的更改尚未反映在 Rpy2中(例如,请参阅 这篇文章(编辑: Link 现在已经死亡))。

所以我现在需要安装一个老版本的 ggplot2:

install.packages("ggplot2", version='0.9.1')

但是 ABC0没有 version参数我该怎么做呢?

142469 次浏览

从源代码(在 R 中)安装软件包的旧版本:

packageurl <- "http://cran.r-project.org/src/contrib/Archive/ggplot2/ggplot2_0.9.1.tar.gz"
install.packages(packageurl, repos=NULL, type="source")

如果这不适合你,你在 Windows 上,原因可能是 缺乏用于构建/编译包的适当工具链。通常您会从 CRAN 安装预编译的二进制文件,但是它们只存档包 消息来源,而不是 binaries.[1]。这意味着您需要安装 工具,以便您可以在本地编译所有内容。(注: Rtools 不是 R 包.)

@ shadow 的答案 下面也说明了你可以使用 devtools::install_version()。这也是一个好主意,但同时也需要在 Windows 上使用 Rtools。

截至2015年9月18日,CRAN 上出现了一个新的软件包 < strong > version 。这依赖于 革命分析学服务器为特定版本或日期安装软件包:

# install yesterday's version of checkpoint, by date
install.dates('checkpoint', Sys.Date() - 1)


# install earlier versions of checkpoint and devtools
install.versions(c('checkpoint', 'devtools'), c('0.3.3', '1.6.1'))

这样做的好处是不需要 Rtools 在 Windows 上安装二进制包,只需要从2014-09-17(MRAN 启动时)开始就可以使用。

从命令行(R 以外)安装旧版本:

一旦包源(“ tarball”)本地在您的机器上,您还可以通过在命令行(Terminal、 Command Prompt 等)上使用 R CMD INSTALL来安装一个包,例如使用 wget(如果有的话) :

wget http://cran.r-project.org/src/contrib/Archive/ggplot2/ggplot2_0.9.1.tar.gz

或者,如果你使用的是 Windows 系统,使用 PowerShell 的等效应用程序是:

(new-object System.Net.WebClient).DownloadFile("http://cran.r-project.org/src/contrib/Archive/ggplot2/ggplot2_0.9.1.tar.gz", "./ggplot2_0.9.1.tar.gz")

或者你可以通过你的浏览器从 CRAN 存档下载源代码。

要从本地文件安装,只需执行以下操作:

R CMD INSTALL ggplot2_0.9.1.tar.gz

这应该可以在任何平台上工作(同样的警告——如上所述——需要一个用于构建包的工具链)。


这不再完全正确。从2016年3月开始,CRAN 开始托管 一个“ CRAN 档案”服务器,其中包含针对非常老版本的 R (> 5年)的 Windows 和 Mac 二进制文件。您现在可以使用 install.packages()直接从这台服务器安装。有关一些细节,请参见新的 常见问题7.44

使用另一个答案中描述的 install.packages对我来说不起作用。

我发现的最佳替代方案是使用来自 devtools包的函数 install_url

我还没有进一步探讨的另一种可能性是:

  1. 从包存档中下载旧的. tar.gz 源文件。
  2. 按照 http://rtm.wustl.edu/writings/htrtargz.pdf中记录的步骤在本地安装它。

remotes包提供了一个可以直接执行此操作的 install_version函数。

require(remotes)
install_version("ggplot2", version = "0.9.1", repos = "http://cran.us.r-project.org")

以前,这个答案指向 devtools包,它也重新导出 install_version函数。谢谢@MichaelChirico 指出 remotes套装更可取。

您可以从下面的链接中以 zip 文件的形式下载适当的版本。

Http://cran.r-project.org/src/contrib/archive/ggplot2/

在 R 工作室: 工具 > > 安装软件包 > > 安装从: (选择下拉菜单)

包存档文件(. zip,. tar.gz)。

选择您新下载的-package-zip-file 并安装该软件包

找到了一个很好的解决方案,这对我来说很有效(详细信息在 链接)。

“ repmis”库中的命令:

# Install old versions of the e1071 and gtools packages.


# Create vectors of the package names and versions to install
# Note the names and version numbers must be in the same order
Names <- c("e1071", "gtools")
Vers <- c("1.6", "2.6.1")


# Install old package versions into the default library
InstallOldPackages(pkgs = Names, versions = Vers)

install.packages

参见 在 r-devel 邮件列表上的这个线程。作为对库尔特 · 惠勒的回应,库尔特 · 霍尼克透露了 CRAN 网站的一个未记录的特性,用于指定软件包的特定版本。

只要已经安装了所有必需的依赖项,此方法就可以工作:

package = "https://cran.r-project.org/package=svglite&version=1.2.1"
utils::install.packages(pkgs = package, repos = NULL)

请注意上面的 URL 结构。这解决了 CRAN 最新版本的 URL 结构与存档版本不同的问题:

# Latest version (not available at Archive/svglite)
https://cran.r-project.org/src/contrib/svglite_1.2.1.tar.gz
# Archived version
https://cran.r-project.org/src/contrib/Archive/svglite/svglite_1.2.0.tar.gz

remotes::install_version

另一种选择是使用 remotes::install_version 功能。但是,您需要安装 remotes 包裹

对于自2014-09-17以来发布的软件包版本,有一个 versions包裹大大简化了这项任务。它使用 Revolution Analytics 的 MRAN 服务器快照:

  • 显示任何 CRAN 软件包(available.versions)的发布日期和 MRAN 可用性,

  • 安装一个或多个软件包(install.versions)的指定版本,或

  • 安装在任何指定日期都可用的软件包版本(install.dates)。它通过标准的 install.packages函数从 MRAN 服务器进行安装,因此可以安装可用的二进制版本,而不必从源代码进行编译,并且可以包含指定日期的包依赖项。

当然,软件包版本和 R 版本的组合可能存在兼容性问题。有关运行不同的 R 版本,请参见例如 这一页

另一个选项是{ ground hog }包。它通过指定日期来帮助从 CRAN 安装较旧的软件包 Version。如果您不记得特定的包版本,而是记得脚本仍在工作的时间,那么这一点尤其有帮助。如果{ ggplot2}0.9.1版本是在2012年5月加载到 CRAN 上的,所以我们可以从6月开始计算日期。

library("groundhog")
groundhog.library("ggplot2", "2012-06-01")