RCaller得到未知大小的矩阵

时间:2014-03-24 12:17:22

标签: java rcaller

我在Java中使用RCaller来执行外部R程序。

问题是,我不知道矩阵的确切大小,但.getAsDoubleMatrix()方法想要大小。

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

有没有办法保持尺寸动态?

1 个答案:

答案 0 :(得分:0)

通过revision 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的官方博客页面,了解最新版本here