安装旧版本的R包

qxgroojn  于 2023-03-27  发布在  其他
关注(0)|答案(8)|浏览(193)

我试图使用Rpy2和ggplot2,但我得到一个错误。在网上搜索了一些错误后,我发现错误发生的原因是ggplot2包中的更改尚未反映在Rpy2中(例如,参见this post(编辑:现在已经死了)。
所以我现在需要安装一个旧版本的ggplot2。下面是我想要的伪代码:

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

但是install.packages does not have a version argument我该怎么做?

bfhwhh0e

bfhwhh0e1#

要从源代码(在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系统,这对你不起作用,原因可能是the lack of an appropriate tool chain for building/compiling packages。通常你会从CRAN安装一个预编译的二进制文件,但他们只存档软件包 sources,而不是二进制文件。[1]这意味着你需要安装Rtools,这样你就可以在本地编译所有文件。(注意:Rtools不是R包。)
@shadow的答案below也说明了你可以使用devtools::install_version()。这也是一个好主意,但也需要在Windows上使用Rtools。
自2015年9月18日起,a new package versions has appeared on CRAN。这依赖于Revolution Analytics MRAN服务器来安装特定版本或日期的软件包:

# 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”),您也可以在命令行(终端、命令提示符等)使用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

这应该在任何平台上都可以工作(与上面相同的警告-关于需要构建包的工具链)。
[1]这不再完全正确。从2016年3月开始,CRAN开始托管a "CRAN Archive" server,其中包含非常旧版本的R(〉5年)的Windows和Mac二进制文件。现在您可以使用install.packages()直接从此服务器安装。有关详细信息,请参阅新的R FAQ 7.44。

jogvjijk

jogvjijk2#

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

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

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

gudnpqoy

gudnpqoy3#

install.packages方法

参见this thread on the r-devel mailing list。在回复Kurt惠勒时,Kurt Hornik揭示了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_versionfunction。但是,您需要安装remotespackage

kcugc4gi

kcugc4gi4#

您可以从下面的链接下载相应的zip文件版本。
http://cran.r-project.org/src/contrib/Archive/ggplot2/
在R Studio中:工具〉〉安装软件包〉〉从以下位置安装:(选择下拉菜单)

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

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

z31licg0

z31licg05#

使用另一个答案中描述的install.packages对我不起作用。
我找到的最好的替代方法是使用devtools包中的函数install_url
另一个我没有进一步探讨的可能性:
1.从包存档中下载旧的.tar.gz源文件。
1.按照http://rtm.wustl.edu/writings/htrtargz.pdf上记录的步骤进行本地安装。

kxe2p93d

kxe2p93d6#

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

  • 显示任何CRAN软件包(available.versions)发布日期和MRAN可用性,
  • 安装一个或多个软件包的指定版本(install.versions),或
  • 安装任何指定日期(install.dates)可用的软件包版本。它通过标准的install.packages函数从MRAN服务器进行安装,因此可以安装可用的二进制版本,而不必从源代码编译,并且可以包括指定日期的软件包依赖项。

当然,包版本和R版本的组合可能会有兼容性问题。关于运行不同的R版本,请参见例如this page

jhdbpxl9

jhdbpxl97#

找到了一个很好的解决方案,对我很有效(详细信息在link)。
“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)
xfyts7mz

xfyts7mz8#

另一个选项是{groundhog}软件包。它通过指定日期来帮助安装CRAN中的旧软件包Version。当您不记得具体的软件包版本,而是脚本仍然工作的时间时,这特别有用。在{ggplot 2}的情况下,版本0.9.1在2012年5月加载到CRAN中,因此我们可以从6月开始。

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

相关问题