文件又名XML文件的RCaller Java的过早结束为空(RCaller Java Prematu

2019-10-18 04:28发布

我写使用RCaller 2.1.1-SNAPSHOT项目。 问题是,当我使用外部库的代码,它说r输出文件是空的。 这里是我的代码:

  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.安装RUniversal并加载2.库使用功能的下载和安装。 3当我把由RCaller产生成R它工作文件rCaller请求。 4.斜杠在RSCRIPT路径是好的,因为我检查与评价问题的行结果和它的作品。

有人可以帮我弄这个吗?

Answer 1:

这通常为约安装程序的差异和封装的装载机用户。 最新的和实验RCaller 2.2.0不需要Runiversal。 如果是你的问题仍然是当前你可以尝试一下,写在这里,如果问题仍然exists.You可以按照在下载的链接RCaller的官方博客页面



Answer 2:

在你的代码的一部分

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]);


文章来源: RCaller Java Premature end of file aka XML file is empty
标签: java r rcaller