首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RCaller Java过早结束文件又名XML文件为空

RCaller Java过早结束文件又名XML文件为空
EN

Stack Overflow用户
提问于 2013-05-30 00:00:55
回答 2查看 352关注 0票数 1

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

代码语言:javascript
复制
  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生成的文件中的RCaller请求放入R中时,它可以工作。4. RScript路径中的斜杠是好的,因为我用注释有问题的行检查了结果,而且它是有效的。

有人能帮我一下吗?

EN

回答 2

Stack Overflow用户

发布于 2014-04-13 22:34:40

这通常是关于包的安装者和加载者用户的区别。最新的实验性RCaller 2.2.0不需要Runiversal。如果你的问题仍然存在,你可以尝试并在这里写下,如果问题仍然存在,exists.You可以在official blog page of RCaller上点击下载链接

票数 0
EN

Stack Overflow用户

发布于 2014-04-22 06:11:08

在代码的一部分中

代码语言:javascript
复制
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");

更改零件

代码语言:javascript
复制
caller.runAndReturnResult("wd");

代码语言:javascript
复制
caller.runAndReturnResult("my.all");

因此,您准备好的列表将从R返回到Java。然后使用下面的代码

代码语言:javascript
复制
double[] results;
results = caller.getParser().getAsDoubleArray("mean");

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

代码语言:javascript
复制
System.out.println("Mean is " + results[0]);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16818735

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档