2

JRI を使用して ptw パッケージを利用する Java アプリケーションを開発しました。

Linux (Ubuntu 10.04、R 2.10.1、JRI 0.5.0) では正常に動作します。

ただし、Vista (R 2.12.0、JRI 0.5.0) では、アプリケーションが "library(ptw)" を評価すると、次のエラーが発生します。

ライブラリ (ptw) のエラー: オブジェクト 'ptw' が見つかりません

Vista のコマンドラインから R を実行し、"library(ptw)" コマンドを発行しても問題はありません。

%USERPROFILE%\Documents\R\win-library から %R_HOME%\library に ptw パッケージをコピーすると、問題は解決します。ただし、ユーザーがこれを行う必要はありません。実際、一部のユーザーはそうする権限を持っていない可能性があります。

したがって、ユーザーが %USERPROFILE%\Documents\R\win-library にインストールしたパッケージにアクセスできる R エンジンを JRI に呼び出させるにはどうすればよいでしょうか?

r-help メーリング リストでも質問しましたが、満足していません。

library() 関数のliblocパラメーターは知っていますが、構成を必要とするよりも、もう少し壊れにくいもの、つまり自動のものを好みます...

4

3 に答える 3

2

%USERPROFILE%\Documents\R\win-library は、ユーザーが非管理者の場合に .libPaths() に自動的に追加されるという事実にもかかわらず、「非標準」のライブラリの場所です。

JRIEngine が開始されたら、ライブラリの場所を手動で追加できます。

jriengine.parseAndEval(".libPaths(<the directory>)");

于 2010-12-06T18:02:54.450 に答える
2

場所がデフォルトと異なる場合は、Rprofile.site ファイルに記載する必要があります。ここでは、.libPaths()が使用されるか、.Library.site変数が設定されます。R バージョンの Rprofile.site ファイルでそれが見つかるかどうかを確認し、アプリケーションで関数の出力を出力させます.libPaths()

私の知る限り (間違っている可能性もあります)、JRI は Rserve を使用しており、R を従来の方法で起動することはありません。Windowsでは、これがRprofile.siteを何らかの形で忘れているのではないかと思います(実際にはバグです)。それが機能しない別の理由はわかりませんが、私は専門家ではありません。

1つの解決策は次のとおりです。

  • 最初に Rprofile.site を入手します。
  • または可能な場所を に追加します.libPaths()( を参照?.libPaths) 。
  • または.Library.site、スクリプトで自分で変数を設定します

Windows 7 で同じバージョンが正常に動作するのに、Vista を使用しているときに R に接続しようとする一部のプログラムの問題のある動作に気付いたので、Windows 7 でも問題が解決しないかどうかを確認することをお勧めします。

于 2010-12-06T10:57:17.280 に答える
2

JorisIanのコメントのおかげで、アプリケーションを実行する前にR_LIBS_USER環境変数を明示的に設定すると問題が解決することがわかりました。

なんらかの理由で、これは Vista (vs. Linux) でのみ必要です。どちらのシステムでも、Rprofile.site ファイルは空のテンプレートです。

于 2010-12-07T04:28:19.247 に答える