3

rpackageローカル (企業) リポジトリで呼び出されたパッケージがあります。実行install.packages("rpackage")すると、次のように表示されます。

Installing package(s) into ‘C:/Program Files/R/R-2.15.2/library’
(as ‘lib’ is unspecified)
Warning in install.packages :
  package ‘rpackage’ is not available (for R version 2.15.2)

を使用してこのパッケージをビルドしR CMD INSTALL --build .、ローカル リポジトリにリリースし、実行してファイルtools::write_PACKAGES()を更新しました。PACKAGES実行すると、次のようR --versionになります。

R version 2.15.2 (2012-10-26) -- "Trick or Treat"
Copyright (C) 2012 The R Foundation for Statistical Computing
ISBN 3-900051-07-0
Platform: i386-w64-mingw32/i386 (32-bit)

そして、実行すると次のようR CMD INSTALL --build --versionになります。

R add-on package installer: 2.15.2 (r61015)

ローカル リポジトリのディレクトリ構造は公式ドキュメントに従っており、R 2.15.2 に更新するまで機能していました。構造は次のとおりです。

\\server\folder\R\bin\windows\contrib\
    2.11\
    2.12\
    2.13\
    2.14\
    2.15\
\\server\folder\R\src\contrib\

install.packages("rpackage")R 2.15.1 で実行しても問題ありません。新しいバージョンの R で動作させるために何か特別なことをする必要がありますか?

CRAN サーバーは、わずかに異なるディレクトリ構造を使用していることに気付きました。たとえば、CSIRO CRAN ミラーは以下を使用します。

http://cran.csiro.au/bin/windows/contrib/r-release/

これを修正する方法について何か考えはありますか?

どうもありがとう。

4

3 に答える 3

7

残念ながら、ヘルプ ファイルもエラー メッセージも、このエラーが発生した理由を説明していませんでした。結局のところ、ソース パッケージが利用できない場合でも失敗しますが、バイナリは利用できますinstall.packages()これは文書化された動作ではありません (または、より寛大に言えば、明確に文書化されていません)。

バイナリ インストールの場合、関数は同じリポジトリでソース パッケージが利用可能かどうかもチェックし、ソース パッケージに新しいバージョンがあるかどうか、または利用可能であるがバイナリ バージョンがないかどうかを報告します。このチェックは、options(install.packages.check.source = "no")

修正するには、options(install.packages.check.source = FALSE). これも.First関数に含めることができます。

于 2012-11-04T22:43:02.087 に答える
2

私にとってはうまくいかなかったので、imanuelcの解決策が誰にとってもうまくいくかどうかはわかりません:

> options(install.packages.check.source = FALSE)
> install.packages("rstudio", lib="C:/Program Files/R/R-2.15.2/library", dep=TRUE)
Warning in install.packages :
package ‘rstudio’ is not available (for R version 2.15.2)

私の場合、tm、rjson などの特定のパッケージでこのエラーが発生したり消えたりするのを見てきました。このパッケージのすべてに R 2.15 用のバージョンがあることを知っています。それらのほとんどは実際に私の IDE に付属しているためです。それらを特定のディレクトリにインストールしようとしているだけです(そして、異なるIDEを使用する将来のコーダーのためにそこに install.packages ステートメントが必要です)。

根本的な原因を知っているとは言えませんが、私にとっての回避策は、バイナリをミラーから直接ダウンロードし、コードに「手動で」インストールすることです。

于 2013-02-21T16:36:01.353 に答える