Java调用R(二)_JRI
推荐使用。相比RServe更灵活,效率更高。
基本步骤
1. R中需要安装rJava包。
2. 系统变量Path加上
C:\Program Files\R\R-3.0.1\bin\i386;C:\Program Files\R\R-3.0.1\library\rJava\jri
系统变量Classpath加上:
C:\Program Files\R\R-3.0.1\library\rJava\jri\JRI.jar
3. 项目中加入JRI.jar, JRIEngine.jar, REngine.jar
4. 将rJava自带的测试实例,加入项目测试,执行成功。配置完成。
5. Java本地测试(项目test/rtest.java以及 test/TestDLL.java)
C:\Program Files\R\R-3.0.1\library\rJava\jri\examples\有rJava自带的实例
R脚本分条执行,基本语法同Rserve. for循环时需要java变量和R变量的转换。
6. Java web的lib目录下加入JRI.jar, JRIEngine.jar, REngine.jar
C:\Program Files\R\R-3.0.1\library\rJava\jri\i386\jri.dll放入Java Path中或者Tomcat bin目录中(就是将jri.dll放入java web项目的classpath 中)
7. 利用自带实例rtest中的TextConsole方式实例化Rengine对象
class TextConsole implements RMainLoopCallbacks{}
Rengine re=new Rengine(args, false, new TextConsole());
8. 经个人测试,在项目中多次调用Rengine re=new Rengine(args, false, new TextConsole()); 会在第二次报错。
最后将Rengine对象实例化改成 单例 模式(重要),项目初始化时一并进行实例化。
对于R中需要加载的外部包,可以一并在实例化re时,执行。
public void callR(){
System.out.println(System.getProperty("java.library.path"));
System.loadLibrary("jri");
try {
//Rengine re = new Rengine(null, false, new TextConsole());
Rengine re = rengine.getInstance();
re.eval("setwd('f:/R_Stat/')");
re.eval("selected_dat <- read.csv('dat.csv',head=TRUE,sep=',' , as.is = T)");
{
...
re.eval("rect(1, 5, 3, 7, col='white')");
re.eval("dev.off()");
}
} catch (Exception e) {
e.printStackTrace();
}
}
测试通过。
Java调用R(二)_JRI的更多相关文章
- JAVA 调用 R 语言之升华篇
由于项目的需要,最近做了一个javaWeb调用R的组件,在这里,我把自己走的一些弯路给大家总结一下: 一.选取什么插件作为java和R之间的通信? 1. 在传统的方式中,大致可以分为两类:一类是JRI ...
- JAVA 调用 R 语言
1 简介 R是统计计算的强大工具,而JAVA是做应用系统的主流语言,两者天然具有整合的需要.关于整合,一方面,R中可以创建JAVA对象调用JAVA方法,另一方面,JAVA中可以转换R的数据类型调用R的 ...
- Java调用R语言
R是统计计算的强大工具,JAVA是做应用系统的主流语言.JAVA负责系统的构建,R用来做运算引擎,从而实现应用型和分析性相结合的系统. 一.Rserve(远程通信模式) Rserve是一个基于TCP/ ...
- Java 调用R 方法
JAVA 调用 R 语言 1 简介 R是统计计算的强大工具,而JAVA是做应用系统的主流语言,两者天然具有整合的需要.关于整合,一方面,R中可以创建JAVA对象调用JAVA方法,另一方面, ...
- JAVA调用R脚本
0 前言R是一种非常方便易用的绘图.统计分析.ML算法设计方面的脚本语言.实际中有这样一种场景:算法工程师用R搭建了机器学习算法模型,想用于javaweb之中但是又不想重新用java写一遍算法模型,那 ...
- Rsession让Java调用R更简单
Rsession让Java调用R更简单 R的极客理想系列文章,涵盖了R的思想,使用,工具,创新等的一系列要点,以我个人的学习和体验去诠释R的强大. R语言作为统计学一门语言,一直在小众领域闪耀着光芒. ...
- JAVA调用R
JAVA很适合开发应用系统,但是数学建模和计算能力非其所长,如果该系统需要进行大量的统计或者优化的计算,调用R是一种很好的方式.JAVA负责系统的构建,R用来做运算引擎,从而实现应用型和分析性相结合的 ...
- Rserve, java调用R源文件
Rserve安装和加载: install.packages("Rserve") library("Rserve") Rserve() java调用: REn ...
- Java调用R(一)_Rserve
最近做项目涉及到R总结一些Java本地调用R和Java web项目中调用R的基本步骤 1. R中安装Rserve包 2. 系统变量Path加上 C:\Program Files\R\R-3.0.1 ...
- Java调用R(三)_系统命令调用
java通过配置的系统命令Rscript直接调用R脚本. 优点:R脚本和Java代码完全分离 缺点:R中变量不能控制 1. Java本地能够成功调用. public void CallR() { Ru ...
随机推荐
- webservice发送数据,取数据的方式
1.通过调用对方的webservice接口方式,取得对方的数据,并解析(我们取数据) 2.对方调用我们的接口,得到数据.(对方来取) 3.对用对方接口,将我们的数据封装好以后,直接调用对方接口,对方可 ...
- 使用Xcode插件,让iOS开发更加便捷
在iOS开发过程中,写注释是一项必不可少的工作.这不仅有助于自己对代码整理回顾,而且提高了代码的可读性,让代码维护变得容易.但是,写注释又是一项枯燥的工作.我们浪费了大量的时间在输入/*,*,*/这样 ...
- xctool工具
xctool [1]xctool的特性: 原文:http://www.infoq.com/cn/news/2013/05/Facebook-buck-xctool-build xctool是Faceb ...
- ios进行打包
原文转载:http://blog.csdn.net/azhou_hui/article/details/9058677 公司刚搞了个299美刀的仅提供真机测试的企业账号,这个不需要添加设备ID,而 ...
- asp.net尽量不在js里写<%%>
asp.net尽量不在js里写<%%> eg: <script type="text/javascript"> var rootsid="&quo ...
- 字体圆润属性的使用-webkit-font-smoothing: antialiased
字体渲染和抗锯齿技术 据称该属性在window下不起作用,不知win10如何,但是在OS和ios中会有不同的展示效果,主要也是展示在webkit内核中,以及android和ios中 大概是说字体渲染的 ...
- Inter系列处理器名称浅析
东拼西凑之作,仅仅整理而已,望周知 ------------------------------------------------------------------ 举例 CPU酷睿i5-3230 ...
- 那些年被我坑过的Python——道阻且长(第五章实用模块讲解)
random模块 我的随机验证吗程序: 首先保证了字母和数字出现的概率是50% VS 50%,其次是可以订制输出多少位 def Captcha(size): Captcha_list = [] for ...
- Python新手学习基础之初识python——与众不同2
看完了Python的缩进,现在来看看Python的标识符.引号和注释. 标识符 关于Python的标识符,其实不是与众不同,只是有一定的规则. 标识符是编程时使用的名字.在Python中,标识符有几点 ...
- oracle 的一点累积
1. oracle用户相关 sqlplus sys/oracle as sysdba -- sys登录 create user xxx identified by password; -- ...