3

JRI を使用し、Java から R スクリプトを呼び出しています。R スクリプトは整数を返します。以下は、Rスクリプトを呼び出す方法です-

REXP result = rengine.eval("source(\"" + [script name with path] + "\")");

REXP retVal = rengine.eval(getReturnVariable());

以下は、R スクリプトの関連コードです。

retVal<-sum(num1, num2)

return(as.integer(retVal))

呼び出し元の Java コードは、任意の R スクリプトを呼び出すことができる必要があります。スクリプトはさまざまなデータ型を返す可能性があるため、結果を抽出するには戻り値の型を確認する必要があります。

呼び出し元の Java プログラムで「retVal」を確認すると、次の 2 つの属性があることがわかります。

  1. rtype - 13 に設定 (INTSXP)
  2. Xt - gettype() によって返されます - 32 に設定されます (XT_ARRAY_INT)

私の質問は - 呼び出しプログラムが見るべき上記のタイプのどれですか?

また、R と Java のデータ型の間のマッピングへのポインタも役立ちます。

次の投稿も見ましたが、上記のクエリに対する実際の解決策を理解できませんでした - call-r-from-java-using-jri-how-to-cast-return-value

よろしく、~Milind

4

0 に答える 0