我们如何从java调用R语言/R脚本?基本上,我需要用java来包装R脚本。
如何由JRI、Rserv、Rcaller来执行?我没有看到调用Rscript方法的任何方法?请寄样品。它应该模拟JNI (java,C++)调用。
谢谢
发布于 2013-03-22 18:31:04
使用Java中的R最简单的方法是使用Runtime.exec(""),获取响应并解析它。关于如何运行本机指令的一个典型示例是:
Process p = Runtime.getRuntime().exec("ls");
BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getInputStream()));
BufferedReader stdError = new BufferedReader(new InputStreamReader(p.getErrorStream()));从这里,您可以读取并处理输出到缓冲到stdInput中的标准输出的结果。
发布于 2014-04-13 15:08:29
RCaller完全可以做你想做的事。假设您有一个双数组'a‘,定义为
double[] a = new double[] {1.0, 2.0, 3.0};你想要计算平均值,中位数和标准差值。创建RCaller的新实例
RCaller caller = new RCaller();
Globals.detect_current_rscript();
caller.setRscriptExecutable(Globals.Rscript_current);
RCode code = new RCode();
code.addDoubleMatrix("a", a);
code.addRCode("s <- list(mean=mean(a), median=median(a), sd=sd(a))");
caller.setRCode(code);
caller.runAndReturnResult("s");
double mean = caller.getParser().getAsDoubleArray("mean")[0];
double median = caller.getParser().getAsDoubleArray("median")[0];
double sd = caller.getParser().getAsDoubleArray("sd")[0];变量中位数保存从R脚本返回的值2.0。有关详细信息,请访问页面这里
https://stackoverflow.com/questions/10801207
复制相似问题