在java中使用R编程

我们正在开发一个关于Java的复杂统计项目。 我们用R编程语言编写了原始代码。 有没有办法将此代码转换为Java代码(转换器)或者我们如何在Java项目中使用R

虽然我不知道’转换器’,但有一个名为rJava的接口,它允许您直接从Java运行R代码。

http://www.rforge.net/rJava/

rJava是一个简单的R-to-Java接口。 它与.C / .Call C接口相当。 rJava提供了R和Java之间的低级桥梁(通过JNI)。 它允许从R创建对象,调用方法和访问Java对象的字段。

从某种意义上说,rJava的反转是JRI(Java / R接口),它提供了相反的方向 – 从Java调用R. JRI现在作为rJava包的一部分提供,尽管它仍然可以用作单独的实体(特别是用于开发)。 目前,rJava被用作JGR,iPlots和JavaGD软件/包的一部分。

您可以尝试人人网( http://www.renjin.org ):

“Renjin是一个基于JVM的R语言解释器,用于统计计算。该项目是BeDataDriven的一项计划,该公司提供分析和决策支持系统方面的咨询服务。”

正如@Seidr所说,使用rJava,我们可以直接从Java方法运行R代码。

  1. 打开R控制台并安装rJava包

     install.packages("rJava") 

    现在你会在“ R home \ library ”中找到rJava

  2. 现在在eclipse中,将JRI.jarJRIEngine.jarREngine.jar添加到项目构建路径中。 这些jar子可在“ R home \ library \ rJava \ jri ”中找到

  3. 创建Rengine对象。
  4. 现在创建两个向量,添加它们并存储在另一个变量中。 现在在控制台中打印结果变量。

     Rengine engine = new Rengine(new String[]{"--no-save"},false,null); String aVector = "c(1,2,3)"; String bVector = "c(4,5,6)"; engine.eval("a<-"+aVector); engine.eval("b<-"+bVector); engine.eval("c<-a+b"); System.out.println("Sum of two vectors : c = "+engine.eval("c")); 

希望下面的链接有帮助(在Java中集成R的分步过程)。

http://www.codophile.com/how-to-integrate-r-with-java-using-rjava/

在JVM上运行R的另一个选项是FastR 。 根据FastR的文档:

FastR是Truffle上Java语言的一种实现,Truffle是一个用于构建自我优化AST解释器的框架。

FastR目前有两种forms:

  • 作为预构建的二进制文件,其中包含用于Linux和Mac OS X的Ruby和JavaScript的Truffle实现。不幸的是,还没有Windows版本可用。
  • 作为GitHub上的源代码发布。 此选项不附带Ruby或JavaScript。