1

JRI を使用して Java からいくつかの R コマンドを実行しています。R の結果を Java でさらに計算に使用したいのですが、返されたオブジェクトをキャストする方法がわかりません。

Java でコードを呼び出します。

REXP x;
System.out.println(x = rengine.eval("source(\"/..../TS.R\")"));
System.out.println( x.asVector().elementAt(0));

R コードの最後の行:

eq_all[length(eq_all)-1]

--

Java コンソールでの出力:

[VECTOR ([REAL* (3.050462038715372)], [BOOLi* ])]
[REAL* (3.050462038715372)]

「3.050462038715372」は正しい値ですが、Java でどのようにアクセスできますか?

よろしく、イマヌエル

PS。答えのない関連する質問: REXP オブジェクトを double 配列に変換する (Java/R)

4

2 に答える 2

0

私は信じており、あなたが必要asDouble()としasDoubleArray()ているものです。

更新:コード例では、次のようになります。

REXP x;
System.out.println(x = rengine.eval("source(\"/..../TS.R\")"));
System.out.println(x.asVector().elementAt(0).asDouble());

PS。参照された質問には、実際に必要な答えがありtoString()ました.Java配列の実装に問題があります。

于 2011-11-06T19:14:14.500 に答える
0

elementAt() が機能していません。at() を使用できます。

REXP x;
System.out.println(x = rengine.eval("source(\"/..../TS.R\")"));
System.out.println(x.asVector().at(0).asDouble());
于 2014-07-29T07:19:59.530 に答える