1 语言简介
R语言作为统计学一门语言,一直在小众领域闪耀着光芒。直到大数据的爆发,R语言变成了一门炙手可热的数据分析的利器。随着越来越多的工程背景的人的加入,R语言的社区在迅速扩大成长。现在已不仅仅是统计领域,教育,银行,电商,互联网….都在使用R语言。
Java语言在工业界长期处于霸主地位,Java语法、JVM、JDK、Java开源库,在近得到了爆发式的发展,几乎覆盖了应用开发的所有领域。伴随着Java的全领域发展,问题也随之而来了。语法越来越复杂,近似的项目越来越多,学好Java变得很难。对于没有IT背景的统计人员,学用Java更是难于上青天。
R一直是统计圈内处于佼佼者的语言,语法简单,学习曲线不太长也不太陡。如果能结合Java的通用性和R的专业性,碰撞出的火花,将会缤纷绚烂。
本文将介绍R与Java连接的高速通道,rJava通信方案。
2 rJava安装:
2.1系统环境:
win7 64bit 专业版 R 3.1.1 Java 1.8.0_202.2 安装rJava包
从R自带的IDE运行install.packages("rJava"),安装rJava:
安装完成后调用library("rJava")来检查一切是否OK:
如图出错了,是因为缺少path的配置,解决本问题的关键是JAVA_HOME系统变量应该指向jre环境,添加环境变量:
Path:C:\Program Files\Java\jdk1.8.0_20\jre\bin\server,修改完成后再次运行library("rJava")
rJava 安装完成后,进行后面的环境变量配置。
2.3 环境变量
PATH: C:\Program Files\R\R-3.1.1\bin\x64;CLASSPATH: C:\Program Files\R\R-3.1.1\library\rJava\jri
2.3.1 R中调用Java 测试:
在R的IDE中依次输入如下命令:[plain]view plaincopy >library(rJava)>.jinit()>s<-.jnew("java/lang/String","HelloWorld!")>s 一切配置成功则出现如下令人兴奋的画面:2.3.2 Java 中调用R 测试:
启动Eclipse编写程序,结构和引用架包如下:相应的java code 如下:[java]view plaincopy packagetest.howard;importjava.io.*;importjava.awt.Frame;importjava.awt.FileDialog;importjava.util.Enumeration;importorg.rosuda.JRI.Rengine;importorg.rosuda.JRI.REXP;importorg.rosuda.JRI.RList;importorg.rosuda.JRI.RVector;importorg.rosuda.JRI.RMainLoopCallbacks;importorg.rosuda.REngine.*;publicclassMyRJava{publicstaticvoidmain(String[]args){MyRJavademo=newMyRJava();demo.callRJava();}publicvoidcallRJava(){Renginere=newRengine(newString[]{"--vanilla"},false,null);if(!re.waitForR()){System.out.println("CannotloadR");return;}//打印变量Stringversion=re.eval("R.version.string").asString();System.out.println(version);//循环答应数组double[]arr=re.eval("rnorm(10)").asDoubleArray();for(doublea:arr){System.out.print(a+",");}re.end();}} 在Eclipse启动设置VM参数:
[plain]view plaincopy -Djava.library.path="C:\ProgramFiles\R\R-3.1.1\library\rJava\jri\x64"
运行结果:
到此一切都正常了,希望对大家有帮助;