java r_Java+R语言--(二)Java调用R函数

本文介绍了如何在Java中使用JRI.jar库调用R语言的函数,包括启动R引擎、执行R命令、获取结果及封装R操作为工具类的建议。通过一个计算数组最大值的简单示例展示了具体步骤,并提到了Java启动参数的设置。
摘要由CSDN通过智能技术生成

Java+R语言--(二)Java调用R函数

(2013-07-03 16:38:09)

标签:

it

Java调用R,就是使用JRI.jar中的Api,执行一条R语言命令,当然首先你要了解R语言的语法。

1.JRI中主要的API

Rengine R引擎,通过它进行R语言的启动、运算、画图、关闭等功能。

一个线程只能实例化一次,推荐使用单例模式。

实例化代码:

Rengine engine = new Rengine(null,false,null);

Rengine.versionCheck() //R版本校验,返回true:版本校验通过 返回false:版本校验未通过

engine.waitForR() //R加载校验,返回true:加载成功 返回false:加载失败

engine.end() //结束R,在后续没有调用R的情况下使用,否则R将退出,不能继续使用R。

2.REXP

R计算结果表达式

REXP rexp = engine.eval_r(String str) //执行R命令,返回结果REXP

rexp.asInt() rexp.asDouble() rexp.as.. //将REXP转成java类型

engine.assign(String name,double d) //定义R变量,name为R中变量的名字

以上大概了解了JRI的基本API,下面写个简单的例子。

//求n个数的最大值

Rengine engine = new Rengine(null,false,null);

int[] arr = new int[]{-1,2,1,-3,5,4,-2};

engine.assign("x",arr);

REXP rexp = engine.eval_r("max(x)");

int max = rexp.asInt();

System.out.println(max);

engine.end();

太好了,一个简单的例子完成了,我们来试一下吧!

不好意思,这样程序还不能运行,Java调用R需要一个启动参数:

-Djava.library.path="%R_HOME%\library\rJava\jri"

加上这个启动参数后,终于OK了。

做到这里Java调用R的第一步也是最重要的一步终于完成了。Congratulations!

这只是个简单的例子,在实际使用中可以使用R中较复杂的函数进行统计,个人建议对R的操作封装为一个工具类,以免对唯一的Rengine实例进行了误操作,导致程序整体崩溃。

分享:

a4c26d1e5885305701be709a3d33442f.png喜欢

0

a4c26d1e5885305701be709a3d33442f.png赠金笔

加载中,请稍候......

评论加载中,请稍候...

发评论

登录名: 密码: 找回密码 注册记住登录状态

昵   称:

评论并转载此博文

a4c26d1e5885305701be709a3d33442f.png

发评论

以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值