問題タブ [jri]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - JRIを使用してJavaでRのsqldfパッケージを呼び出す
Java で R コードを実行するために、JRI を使用して Java コードを開発しました。今、私は R の sqldf パッケージを使用しなければならず、Java コードでその関数を使用しようとしている問題 (データ フレームの列で個別の値を取得する) に遭遇しました。サンプル コードは次のとおりです (オレンジ色は、既定で R に既に存在するデータセットです)。
上記のコードの出力は次のとおりです。
これは、「dframe」に何も含まれていないことを意味します。しかし、R で同じ sqldf func: sqldf("select * from Orange") を実行しようとすると、35 行になります。Java で sqldf 関数を使用して目的の結果を得るにはどうすればよいですか?
私の環境変数は次のように設定されています:
java - Java から R 言語/スクリプトを呼び出す
JavaからR言語/Rスクリプトを呼び出すにはどうすればよいですか? 基本的に、Rスクリプトの周りにJavaのようなラッパーが必要です。
データは Java レイヤーに渡され、setData(double[]) メソッドと呼ばれ、R スクリプトに送信されます。setDataR(double []) メソッドとしましょう。
Rスクリプトは、メソッドdouble [] computeR()を呼び出すなど、いくつかの計算を実行します。
Java プログラムは double[] getData() を呼び出して計算結果を取得し、次に R スクリプトに委譲して計算データを取得します。
これは、JRI、Rserv、Rcaller でどのように実行できますか? Rscript メソッドを呼び出す方法がわかりません。サンプルを送ってください。JNI (Java、C++) の呼び出しに似ている必要があります。
- jvm内では、複数のスレッドがRスクリプト呼び出しを正しく呼び出すことができないと思いますか? 回避策はありますか?
ありがとう
linux - JRI REngine eval()メソッドは常にnullを返します
Amazon linuxサーバーにインストールされたRと通信するためにJRI(rJava)を使用するTomcat6で実行されているJavaサーブレットがあります。ソースからRをインストールし、cranを介してrJavaをインストールし、R_HOMEとTomcatのクラスパスを設定しました。java.library.pathにディレクトリを含めるように構成できなかったため、必要なネイティブライブラリ(libjri.so、libR.so、およびlibRblas.so)へのjava.library.pathディレクトリの1つにいくつかのシンボリックリンクを設定する必要がありました。彼らがインストールしたことですが、それは問題ではないと思います。私が走るとき
$ R_HOME / library / rJava / jri /のコマンドラインから期待どおりの出力が得られ、REngineクラスはeval()を介してRステートメントを正常に作成しているようです。しかし、クラスからeval()を呼び出すと、ほとんどの場合、REXPオブジェクトの代わりにnullが返されます。DEBUGがオンの有無にかかわらずログに記録されるエラーはありません。REXPが返されるのは、配列を設定したときだけです。
この場合、toString()値がであるREXPを取得します
しかし、次にeval()呼び出しを行うと
予期されたREXPの代わりにnullが返されます。私のMacで動作するコードは次のとおりです。
繰り返しになりますが、これは私のMacで機能するので、問題はコードではなく環境にあると確信しています。私は数時間の検索を行いましたが、まだ解決策を見つけていません。どんな助けでも素晴らしいでしょう。
r - Ubuntu での JRI 致命的エラー
Windows 7にJRIとrJavaを正常にインストールしました。現在、64ビットOSのUbuntuで動作させようとしています。R 内から rJava 呼び出しを行うことはできますが、JRI を機能させるのはより困難です。私は NetBeans 7.1.2 を実行しており、さまざまなトリックに従って設定R_HOME
しjava.library.path
、すべてのクラスをロードできるようにしました。つまり、"jri library not found"
やなどのエラー メッセージは表示されません"R_HOME not set"
。
私のJavaコードから、それを見ることができますR_HOME = /usr/lib64/R
。
私が今得るエラーメッセージは
致命的なエラー: '--save'、'--no-save'、または '--vanilla' を指定する必要があります
これは、Rengine
が最初に呼び出されたときに発生します。
Rengine r = new Rengine(args,false,null);
これは R からのエラー メッセージのようです。コマンドライン引数を期待しているようです。このエラー メッセージを含む投稿は見たことがありません。何か案は?ありがとう、ピーター
java - 新しい Rengine(...); エラーなしで失敗する
Windows 7 x64 システムで Eclipse を使用して JRI をセットアップしようとしています。ラップトップで一度試してみましたが、うまくいきました。R、rJava、JRIのインストールはすべてまったく同じですが、デスクトップでは失敗します。
JRI と R パスを次のように正しく設定しました。
C:\Program Files\R\R-2.15.1\library\rJava\jri;C:\Program Files\R\R-2.15.1\bin\x64
またR_DOC_DIR
、Eclipseでなどを設定します。
実行しようとするたびにnew Rengine(...);
、エラーや例外なしで失敗します。デバッグにより、次のことが明らかになりました。<terminated, exit value: 10>C:\Program Files\Java\jre6\bin\javaw.exe (01.10.2012 18:00:31)
何か試すことはできますか?どこでも同じ設定にもかかわらず、ラップトップでは機能するが、ワークステーションでは機能しないことは本当に気になります。
編集: Rengine オブジェクトを取得するために使用されるコード。
編集:最後に試したとき、エラーメッセージが表示されました(REngineの作成は機能しましたが、これはこれまでにありませんでした)、Rにはレジストリエントリがありませんでした。R 2.15.1 を再度インストールすると、突然動作しました。再起動後、以前と同じようになりました。REngine の作成時にプログラムがクラッシュします。
r - JRIを介したgWidgetsWWWLocalServerStart()
を使用して、インタラクティブなRグラフィックをWeb上に表示しようとしていgWidgetsWWW
ます。私の標準のRコマンドラインを使用する場合、これはすべて完全に機能します。私が使用するコードは次のとおりです。
ただし、このコードをJavaから呼び出したいと思います。これを行うために、JRIを設定しましたが、これは正常に機能しているようです。これを除いて、これまでに試したRコードならどれでも実行できます。
私が使用するコードは次のとおりです。
このコードは、期待どおりにデフォルトのブラウザで新しいタブを開きます。ただし、このタブは接続を維持し、目的のWebページを表示しません。Javaスクリプトを終了すると、ブラウザページが更新され、接続を確立できませんでした。
私のJavaコンソールで提供される出力は次のとおりです。
java - R がインストールされていないシステムで、JAR ファイル内の JRI (Java/R Interface) プログラムを実行できますか?
JRI(Java/R Interface)プログラムがRを使用してグラフを表示する場合、それをjarにバンドルして、Rのないシステムで実行できますか?
java - JRIとRを利用したJavaアプリケーションの配布
そのため、JRI ライブラリを使用して R と通信する Java アプリケーションに取り組んでいます (Windows 7 の Eclipse で開発)。JRI を機能させるには、JRI が R と通信し、インストールされているすべてのユーザー ライブラリを使用できるようにするために、一連の環境変数 (PATH、R_HOME、R_LIBS_USER) を変更する必要がありました。これらはすべて私のシステムに固有のものであるため、配布可能にすると、ユーザーの R インストールの場所を検出できるようにするにはどうすればよいですか? セットアップの一環として、ユーザーにこれらすべての環境変数を設定させる必要がありますか? 助けてくれてありがとう。
linux - RedHat Linux (RHEL6) の Tomcat で使用する R の環境変数を設定する方法
RHEL6 (6.4) で R と Tomcat をセットアップしようとしています。
R をインストールして実行できます。Tomcat 7 をインストールしており、ファイル ファイルをホストできます。アプリケーションを WAR ファイルとしてパッケージ化し、tomcat を使用してデプロイしました。アプリケーションは、R コンポーネントを使用するまで、すべての面で正常に動作します。
これは、catalina.out に見られるように、次のエラーでクラッシュする場所です。
R の下に rJava がインストールされています: install.packages("rJava") 正常にインストールされ、R のライブラリ フォルダー内に rJava があります。
/etc/profile で次のように定義しました。
私の理解では、サーバー上のすべてのユーザーに対してグローバルに JAVA_HOME、R_HOME、PATH、および LD_LIBRARY_PATH を設定する必要があります。Tomcat がルートの下で実行されていることはわかっており、ルートが「 」、「 」、「 」、「 」を介して上記の設定どおりに上記のすべてのパスを確認できたことecho $JAVA_HOME
をecho $R_HOME
確認echo $LD_LIBRARY_PATH
できecho $PATH
ます
したがって、これらの .so ファイルを開くことができないと不平を言っている理由がわかりません。
また、クラッシュすると Tomcat がシャットダウンします。
ありがとう!
java - JRI REXP ブール値
kruskalmc というメソッドから結果を取得したいと考えています。
R コンソールの結果は次のようになります。
今、差分列から値を取得したいと思います。
Javaで取得しようとすると:
次のようなものが返されます: [BOOLi* ]
JavaでBOOLiオブジェクトを反復処理するにはどうすればよいですか?
私が欲しいのは値FALSE TRUE FALSEです。