2011-09-17 9 views
49

私は部分最小二乗回帰を実行する必要があるJavaアプリケーションを持っています。 PLSRのJava実装は存在しないようです。 Wekaはある時点でそのようなものを持っていたかもしれませんが、もはやAPIにはありません。一方、私は良いR実装を見つけました。これには追加のボーナスがあります。これは、結果を私が複製したい人々によって使用されました。つまり、PLSRの実装方法の違いによって事態がうまくいかない可能性が少なくなります。Java-Rの統合ですか?

質問は、JavaがRを呼び出し、関数にいくつかのパラメータを渡して結果を読み取るのに十分な(使いやすい)パッケージですか?私の他の選択肢は、JavaがProcess内でRを生成し、それを監視することです。データはディスクに読み書きされます。どちらをお勧めしますか?明らかな第3の選択肢がないのですか?

+0

はチュートリアルに統合するのに十分な良いR&Javaのです。 http://codophile.com/2015/04/15/how-to-integrate-r-with-java-using-rjava/ –

答えて

47

私は過去に2つの選択肢を正常に使用しています。

JRI

  • 賛否:おそらくより良いパフォーマンスを。
  • 短所:いくつかの環境変数とライブラリを設定する必要がありますが、Win/UNIXでは異なります。

    RServe

  • 賛否:セットアップが簡単、あなたは別のマシンで実行することができ、 に対して任意のRライブラリをRまたはリンクを初期化する必要はありません。
  • 短所:TCP/IP(サーバが実行されている)に基づいて、R.
からのコールバック

他の代替は私が使用したことがない:RCaller

+0

の開発者がJavaからRを呼び出す方法として説明してきました。https://github.com/subes/invesdwin-context-r これは簡単なJava APIを提供します複数の実行時の実装が利用できます。したがって、あなたはあなたのスクリプトを一度書くだけで、実行時にどの統合を使用するかを選択するだけです。 Guidoが述べたように、それぞれの利点/欠点があります。 – subes

1

私は同じような必要性を持っていましたし、Rへのインターフェイスのいくつかをテストしました。私のニーズ(ウィンドウ、C#)に最適なものがJavaで書かれたRserveでした。私の唯一の悩みは、それが64ビットではなかったことです。私はC#で書かれたシンプルなクライアントを使いました。私は、Javaクライアントがずっと良いと確信しています。

10

ダンカン・テンプル・ラングの作品は、http://rss.acs.unt.edu/Rdoc/library/SJava/Docs/RFromJava.pdfです。

最も堅牢なソリューションは、JGRです。 JGRの開発者は、メーリングリストを持っているStats-Rosudamailing list Archiveは、ここでの例でリストは、2013年

There is also code that has been put up at Googlecodeのようにアクティブのままを示しています。 http://stdioe.blogspot.com/2011/07/rcaller-20-calling-r-from-java.html

+1

JGRは、私が間違っていない場合、JRIをカバーの下で使用するGUIです。 –

+0

JGR –

3

JRIは、低レベルの両方を持っており、 JavaからCall Rへの高水準インターフェース。 R Java環境の設定に役立つEclipseプラグインがhttp://www.studytrails.com/RJava-Eclipse-Plugin/にあります。

+0

すべての手順を実行しましたが、最後の手順を実行できませんでした:JRI_DIRを追加してください。あなたは実際にJRI_DIRを見る必要はないと言って、[rjava]/jri /の* .jar-sを追加するだけで、動作しますが、できません。これは何を意味するのでしょうか? –

8

これは古い質問です。ここではまだ興味を持っている人のために:私はJRI/rjava(JNIベースのブリッジ)を使って、このようなことを行う方法の詳細な例を提供するブログ記事を書いています(how-toはLinux dev環境)。私はまた、Rや類似のフレームワークを呼び出すことによって、「mathy」の処理を行うための代替アプローチを比較して対比しています。

URL>http://buildlackey.com/integrating-r-and-java-with-jrirjava-a-jni-based-bridge/

2

これは、古い質問のようです。しかし、RserverJavaは、RをJavaに統合するための2つの優れたパッケージです。次のブログでは、これらのライブラリの使用方法について説明します。 rJavaについては

:Rserveについてはhttp://www.codophile.com/how-to-integrate-r-with-java-using-rjava/

http://www.codophile.com/how-to-integrate-r-with-java-using-rserve/

私はこれが役立つことを願っています。

5

Renjinができるだけでなくまた、Rの多くのパッケージの統合オブジェクトを通じてJavaとRの間で簡単に行く通信の代替である:ここでは

http://www.renjin.org/