0

私は R に RMySQL をインストールすることに成功し、正常に動作します (必要な依存関係である DBI もインストールしましたが、これも正常に動作します)。JRIパッケージを介してRと対話するJavaアプリケーションを構築しています(これも正常に動作します)。現在、私のアプリケーションは MySQL データベースにクエリを実行し、クエリ結果をファイルに書き込み、これらのファイルを R にロードします (R の load.csv() 関数を使用)。ただし、R が MySQL (したがって RMySQL パッケージ) と直接対話する場合、プログラムはより効率的に実行されます。私が抱えている問題は、Rengine.eval() JRI 関数を使用してロードしようとすると、RMySQL パッケージが R にロードされないことです。ただし、Rengine.eval() 関数は、ロードしようとした他のライブラリをロードします。コードのスニペットを次に示します。

Rengine re;

re.eval("library(\"DBI\")"); // this works, DBI will load
re.eval("library(\"RMySQL\")"); // this will not work, RMySQL fails to load

RMySQL がロードに失敗していることを確認するために、次のようにしました。

REXP x;
System.out.println(x=re.eval("library(\"DBI\")"));
System.out.println(x=re.eval("library(\"RMySQL\")"));

次の出力が得られます。

[STRING* ("DBI", "stats", "graphics", "grDevices", "utils", "datasets", "methods", "base")]

ヌル

明らかにわかるように、2 番目の println コマンドは null を返しています。これは、RMySQL のロードに失敗していることを意味します (もちろん、RMySQL 関数はどれも動作しません)。なぜそうなのか、私にはわかりません。

何が間違っているのかわかりませんが、誰かが問題を教えてくれたり、JRI を介してライブラリをロードするためのより良い方法があれば、とても感謝しています。

sparc-sun-solaris2.10 で R バージョン 2.13.0、および RMySQL_0.8-0 ビルドを使用していることに注意してください。

4

2 に答える 2

1

JRI を実行する前に、環境変数 R_HOME、R_INCLUDE_DIR、R_SHARE_DIR、および R_DOC_DIR を設定することで、この問題を解決しました。素晴らしい作品になりました。

于 2011-09-08T12:56:03.967 に答える
0

私は以前にこの種の問題を抱えていました。

RMySQL パッケージを正しい方法でインストールしていない可能性があります。

install.packages('RMySQL')

正しい方法は次のとおりです。

install.packages('RMySQL',type='source')

「ソース」タイプのパッケージをインストールした後、JRI を介してパッケージをロードすることに成功しました。

于 2012-01-18T11:59:23.750 に答える