1

外部の R プログラムを実行するために Java で RCaller を使用しています。

問題は、マトリックスの正確なサイズがわからないが、.getAsDoubleMatrix()メソッドがサイズを取得したいということです。

double[][] matrix = caller.getParser().getAsDoubleMatrix("result", DONT_KNOW, DONT_KNOW);

サイズを動的に保つ方法はありますか?

4

1 に答える 1

0

リビジョン e263b5393d43により、RoutputParser クラスには、行列の未知の次元を取得するための getDimensions() メソッドが追加されました。合格したテストファイルは次のとおりです。

int n = 21;
int m = 23;
double[][] data = new double[n][m];
for (int i=0;i<data.lengthi++){    
    for (int j=0;j<data[0].length;j++){
        data[i][j] = Math.random();
    }
}
RCaller caller = new RCaller();
Globals.detect_current_rscript();   
caller.setRscriptExecutable(Globals.Rscript_current);

RCode code = new RCode();
code.addDoubleMatrix("x", data);
caller.setRCode(code);

caller.runAndReturnResult("x");

int[] mydim = caller.getParser().getDimensions("x");

Assert.assertEquals(n, mydim[0]);
Assert.assertEquals(m, mydim[1]);

最新のコンパイル済み jar にはこの更新が含まれていませんが、来週バージョン 2.3 を準備する予定です。ソースをダウンロードしてすぐにコンパイルすることもできます。

最新のリリースについては、RCaller の公式ブログ ページをご覧ください

于 2014-04-13T10:00:16.627 に答える