2013-06-13 235 views
89

我正在嘗試使用Rpy2和ggplot2,但出現錯誤。在線搜索了一些錯誤之後,我發現發生錯誤是因爲ggplot2軟件包中尚未反映到Rpy2中的更改(例如,請參閱this post(編輯:鏈接現已停用))。安裝舊版R包

所以我現在需要安裝一箇舊版本的ggplot2。這裏是我想要的僞代碼:

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

但是install.packages does not have a version argument。我該怎麼做?

+0

試試'checkBuilt'? http://stackoverflow.com/questions/16503554/r-3-0-0-update-has-left-loads-of-2-x-packages-incompatible – isomorphismes

回答

107

從源代碼(在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安裝預編譯的二進制文件,但它們僅存檔包源文件,而不是二進制文件。 [1]這意味着您需要安裝Rtools,以便您可以在本地編譯所有內容。 (注意:Rtools is not an R package。)

@ 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年9月17日(當MRAN啓動)。

要安裝通過命令行的舊版本(R之外):

您還可以通過使用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

+4

謝謝,我想這是正確的方法。太糟糕,我現在得到: 'Warning message: package'http://cran.r-project.org/src/contrib/Archive/ggplot2/ggplot2_0.9.1.tar.gz'is not available(for R版本2.15.2)' – hirolau

+3

與Rcpp有類似的問題。這可能是由於軟件包的R版本依賴性(請見:),或者可能是運行的R會話不會讓您執行更新。我發現爲我工作的是以Mark Butler(下)建議的方式進行更新(R CMD INSTALL your_version.tar.gz)。這在我的案例中是R 2.15.3。 –

+0

@Antoine你在Windows嗎?如果是這樣,你是否安裝了Rtools? – Thomas

4

使用install.packages在另一個答案中描述不適用於我。

我發現的最佳選擇是使用devtools軟件包中的功能install_url

,我還沒有進一步探討另一種可能性:

  1. 從包文件下載舊名爲.tar.gz源文件。
  2. 按照http://rtm.wustl.edu/writings/htrtargz.pdf上記錄的步驟在本地進行安裝。
+0

這對我不起作用,請按照我的問題http://stackoverflow.com/q/22673474/684229瞭解詳情。 – TMS

+0

+1,'R CMD INSTALL'命令也適用於Ubuntu。謝謝!! – Phani

52

devtools包提供了一個可以直接執行此操作的install_version函數。

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

您可以從下面的鏈接下載適當的版本作爲zip文件。

http://cran.r-project.org/src/contrib/Archive/ggplot2/

在該R演播室: 工具>>安裝軟件包>>從安裝:(選擇下拉)

包檔案文件格式(.zip,.tar.gz)方式。

選擇你的新下載包,壓縮文件,然後安裝包

3

找到了一個很好的解決方案,它爲我工作(細節在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)