- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java调用R,就是使用JRI.jar中的Api,执行一条R语言命令,当然首先你要了解R语言的语法。1.JRI中主要的APIRengine 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.REXPR计算结果表达式REXP rexp = engine.eval_r(String str) //执行R命令,返回结果REXPrexp.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);太好了,一个简单的例子完成了,我们来试一下吧!不好意思,这样程序还不能运行,Java调用R需要一个启动参数://应该就是环境变量-Djava.library.path=%R_HOME%\library\rJava\jri加上这个启动参数后,终于OK了。做到这里Java调用R的第一步也是最重要的一步终于完成了。Congratulations!这只是个简单的例子,在实际使用中可以使用R中较复杂的函数进行统计,个人建议对R的操作封装为一个工具类,以免对唯一的Rengine实例进行了误操作,导致程序整体崩溃。
R与JAVA的整合
R是统计计算的强大工具,而JAVA是做应用系统的主流语言,两者天然具有整合的需要。关于整合,一方面,R中可以创建JAVA对象调用JAVA方法,另一方面,JAVA中可以转换R的数据类型调用R的函数,互相取长补短。现在也有一个项目JGR,用JAVA做R的图形界面,可以实现高亮显示自动补全等,还能让JAVA和R互相调用。
JAVA很适合开发应用系统,但是数学建模和计算能力非其所长,如果该系统需要进行大量的统计或者优化的计算,调用R是一种很好的方式。JAVA负责系统的构建,R用来做运算引擎,从而实现应用型和分析性相结合的系统。
首先要介绍的是Rserve的方式,这是一个基于TCP/IP的服务器,通过二进制协议传输数据,可以提供远程连接,使得客户端语言能够调用R。目前Rserve作为一个package发布在CRAN上,可以直接使用install.packages(Rserve)进行安装。需要使用时在R控制台下加载该包,然后输入命令Rserve(),开启服务器,就可以供客户端调用。
其客户端可以有多种,这里只介绍JAVA客户端。最早的客户端包是JRclient,在/Rserve上还可以下载到,但是现在该项目全部移到了/Rserve,使用REngine作客户端(和JRI一致),在该网站下可以下载到REngine.jar和RserveEngine.jar两个文件。如果用eclipse开发的话,在工程属性中导入这两个外部的jar包,就可以正常使用了。
一个简单的例子:
[java]?view plain?copy?print?
public?class?rtest?{??
public?static?void?main(String[]?args)?throws?REXPMismatchException, REngineException?{??
?? RConnection?c?=?new?RConnection();??
?? REXP?x?=?c.eval(R.version.string);??
?? System.out.println(x.asString());??
}??
}??
span?style=color:#009900/span??
装好后要修改系统的环境变量,在
您可能关注的文档
最近下载
- 兴边富民工程实施方案(3篇).docx
- 苏科版八年级数学上册压轴题攻略专题03解题技巧专题:判定三角形全等的基本思路压轴题三种模型全攻略(原卷版+解析).docx VIP
- 卡通手绘风班干部竞选自我介绍PPT模板(二零二五学期版).pptx VIP
- 带锯机安全生产操作规程.pptx
- 第3课 古代印度 课件(共34张PPT).pptx VIP
- 公共政策3政策的资料搜集与方法剖析.ppt VIP
- 专题04 解题技巧专题:判定三角形全等的基本思路压轴题三种模型全攻略(解析版).docx VIP
- 2025年健康管理师技能证书全国考试题库(含答案).pdf VIP
- 写景抒情散文阅读.doc VIP
- 中小学班级卫生值日表 模板.docx VIP
文档评论(0)