r语言 - RCaller Java XML文件的提前结束为空



我正在使用RCaller 2.1.1-SNAPSHOT编写程序。问题是当我使用外部库的代码时,它说Routput文件是空的。下面是我的代码:

  Random random = new Random();

  RCaller caller = new RCaller();
  RCode code = new RCode();
  caller.setRscriptExecutable("C:/Program Files/R/R-2.14.2/bin/x64/Rscript.exe");
  double[] data = new double[100];
  for (int i = 0; i < data.length; i++) {
    data[i] = random.nextGaussian();
  }
  code.addDoubleArray("x", data);
  code.addRCode("setwd('C:/Radek/')");
  code.addRCode("wd=list.files()");
  code.addRCode("library(Biobase)");
  //code.addRCode("targets=read.AnnotatedDataFrame('targets.txt',row.names=1,as.is=TRUE)");// WHEN I USE THIS IT CRASH
  code.addRCode("my.mean<-mean(x)");
  code.addRCode("my.var<-var(x)");
  code.addRCode("my.sd<-sd(x)");
  code.addRCode("my.min<-min(x)");
  code.addRCode("my.max<-max(x)");
  code.addRCode("my.standardized<-scale(x)");
  code.addRCode(
          "my.all<-list(mean=my.mean, variance=my.var, sd=my.sd, min=my.min, max=my.max, std=my.standardized)");
  caller.setRCode(code);
  caller.runAndReturnResult("wd");
  String[] results;
  results = caller.getParser().getAsStringArray("wd");
  System.out.println("Mean is " + results[0]);

我检查了这个:1. 安装并加载RUniversal2. 用于使用函数的库已下载并安装。当我把rCaller请求从rCaller生成的文件放入R时,它可以工作。4. 斜杠在RScript路径是好的,因为我检查了结果与注释的问题行,它的工作。

有人能帮我一下吗?

这通常是关于安装程序和包的加载程序用户的差异。最新的实验性RCaller 2.2.0不需要Runiversal。如果你的问题仍然存在,你可以试一下,如果问题仍然存在,写在这里。您可以在RCaller的官方博客页面点击下载链接

在你的代码部分

code.addRCode(
      "my.all<-list(mean=my.mean, variance=my.var, sd=my.sd, min=my.min, max=my.max, std=my.standardized)");
caller.setRCode(code);
String[] results;
results = caller.getParser().getAsStringArray("wd");

更改部分

caller.runAndReturnResult("wd");

caller.runAndReturnResult("my.all");

所以你准备好的列表从R返回到Java。然后使用代码

double[] results;
results = caller.getParser().getAsDoubleArray("mean");

,最后将返回的平均值打印到屏幕

System.out.println("Mean is " + results[0]);

相关内容

  • 没有找到相关文章

最新更新