古いバージョンのRパッケージのインストール


134

Rpy2とggplot2を使用しようとしていますが、エラーが発生します。オンラインでエラーを検索したところ、gpylot2パッケージにまだRpy2に反映されていない変更があるためにエラーが発生していることがわかりました(たとえば、この投稿を参照してください(編集:リンクが無効になっています))。

そこで、古いバージョンのggplot2をインストールする必要があります。ここに私が欲しいものの疑似コードがあります:

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

しかしinstall.packagesversion議論はありません。どうすればいいのですか?


回答:


150

(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からプリコンパイルされたバイナリをインストールしますが、アーカイブはパッケージソースのみで、バイナリはアーカイブしません。[1]これは、すべてをローカルでコンパイルできるようにRtoolsをインストールする必要があることを意味します。(注:Rtools はRパッケージではありません。)

以下の @shadowの回答も、を使用できる場合がありますdevtools::install_version()。これも良いアイデアですが、WindowsでRtoolsが必要になる場合もあります。

2015年9月18日の時点で、新しいパッケージバージョンが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の外部):

またR CMD INSTALL、パッケージソース( "tarball")をマシンにローカルにインストールしたら、コマンドライン(ターミナル、コマンドプロンプトなど)を使用してパッケージをインストールすることもできます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")

または、Webブラウザーを介してCRANアーカイブからソースをダウンロードすることもできます。

ローカルファイルからインストールするには、次のようにします。

R CMD INSTALL ggplot2_0.9.1.tar.gz

これは、任意のプラットフォームで動作するはずです(パッケージをビルドするためのツールチェーンの必要性について、上記と同じ警告があります)。


[1] これはもはや完全に真実ではありません。2016年3月から、CRANは非常に古いバージョンのR(> 5年前)のWindowsおよびMacバイナリを含む「CRAN Archive」サーバーのホスティングを開始しまし。これで、を使用してこのサーバーから直接インストールできます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 version 2.15.2)
hirolau

3
Rcppでも同様の問題がありました。これは、パッケージのRバージョンの依存関係(DEPENDS:<version>)が原因であるか、実行中のRセッションで更新を実行できない可能性があります。私がうまくいったと思ったのは、Mark Butler(以下)が提案した方法(R CMD INSTALL your_version.tar.gz)で更新を実行することでした。私の場合、これはR 2.15.3でした。
Robert Casey

@Antoine Windowsを使用していますか?そして、もしそうなら、あなたはRtoolsをインストールしていますか?
トーマス

@Thomas回答いただきありがとうございます。はい、Rtoolsが「疑似インストール」されているWindowsを使用しています。このスレッドを参照してください。
アントワーヌ

@Thomas私のマシンで明らかなローカルの問題(ライブラリパス、Rのバージョンとパッケージのバージョン、コンパイルの問題など)を回避するために、Amazon EC2でスクリプトを実行しようとしています
Antoine

87

remotesパッケージが提供していますinstall_version直接これを行うことができます機能を。

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

以前は、この回答はdevtoolsパッケージを指していましたが、これもinstall_version関数を再エクスポートします。remotesパッケージが望ましいことを指摘してくれた@MichaelChiricoに感謝します。


install_version特定のバージョンをロードする必要がないたびに、同じパッケージの複数のバージョンを保持できますか?言いますlibrary(ggplot2-0.9.1)
PatrickT

1
@PatrickTローカルライブラリを使用してこれを行うことができます。たとえばinstall_version('ggplot2', version = 0.9.1, lib = 'path_to_library_with_ggplot_0.9.1')library(ggplot2, lib.loc = 'path_to_library_with_ggplot_0.9.1')
シャドウ

1
install_versionを実行する前に.libPaths( "/ dir_for_custom_library_versions")を使用することもできます
tjjjohnson

1
は(単なる再エクスポートである)よりもはるかに軽量なパッケージであるremotes::install_versionため、今日では好ましいと思いますremotesdevtoolsdevtools::install_versionremotes::install_version
MichaelChirico

5

install.packages別の回答で説明されているように使用してもうまくいきません。

私が見つけた最良の代替案はinstall_url、パッケージの関数を使用することdevtoolsです。

私がこれ以上探求していない別の可能性:

  1. パッケージアーカイブから古い.tar.gzソースファイルをダウンロードします。
  2. http://rtm.wustl.edu/writings/htrtargz.pdfに記載されている手順に従ってくださいにローカルにインストールします。

これは私にとっては機能しません。詳細については、私の質問stackoverflow.com/q/22673474/684229に従ってください。
TMS

+1、R CMD INSTALLコマンドはUbuntuでも機能します。ありがとう!!
Phani 2014年

5

以下のリンクから適切なバージョンをzipファイルとしてダウンロードできます。

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

R Studio:ツール>>パッケージのインストール>>インストール元:(ドロップダウンを選択)

パッケージアーカイブファイル(.zip、.tar.gz)。

新しくダウンロードしたパッケージのzipファイルを選択して、パッケージをインストールします


4

私のために働いた良い解決策を見つけました(詳細はリンクにあります)。

「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)

1

純粋なinstall.packages方法

r-develメーリングリストでこのスレッドを参照してください。カート・ウィーラーへの返信として、カート・ホーニックは、パッケージの特定のバージョンを指定するためのCRAN Webサイトの文書化されていない機能を明らかにしました。

この方法は、必要な依存関係がすべてインストールされている限り機能します。

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 パッケージをインストールする必要があります


0

2014-09-17以降にリリースされたパッケージバージョンの場合、このタスクを大幅に簡略化するversionsパッケージがあります。Revolution AnalyticsのMRANサーバーのスナップショットを使用して、次のことを行います。

  • CRANパッケージのリリース日とMRANの可用性を表示(available.versions)、

  • 1つ以上のパッケージの指定されたバージョンをインストールする(install.versions)、または

  • 指定された日付の時点で利用可能なパッケージバージョンをインストールします(install.dates)。MRANサーバーから標準install.packages機能を介してインストールを行うため、ソースからコンパイルする代わりに、使用可能なバイナリバージョンをインストールでき、指定した日付のパッケージの依存関係を含めることができます。

もちろん、パッケージバージョンとRバージョンの組み合わせには互換性の問題があるかもしれません。異なるRバージョンの実行については、たとえばこのページを参照してください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.