在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
R是统计计算的强大工具,JAVA是做应用系统的主流语言。JAVA负责系统的构建,R用来做运算引擎,从而实现应用型和分析性相结合的系统。 一、Rserve(远程通信模式) 第一次启动加载Rserve包: 启动Rserve服务: 关闭Rconnection连接: 方法二:点击R工具栏上的“程序包”--》“设定CRAN镜像”--》China(xxx) —》确定 点击【程序包】—》加载程序包—》选择 rJava —>OK 安装命令:install.packages("packageName") 启动命令:Rserve() 2.Java调用R 引用R架包或者添加maven配置: <!--REngine Java Interface to R --> <dependency> <groupId>org.rosuda.REngine</groupId> <artifactId>REngine</artifactId> <version>2.1.0</version> </dependency> <dependency> <groupId>org.rosuda.REngine</groupId> <artifactId>Rserve</artifactId> <version>1.8.1</version> </dependency> 实例1:求一个数组里面的最大值 //建立连接 RConnection rc=new RConnection(); //构建数据 int[] datas={314,451,56,24,631}; //声明变量,相当于在R命令行中输入data<-datas命令 rc.assign("data",datas); //执行R语句,相当于在R命令行中输max(data)命令 REXP rexp=rc.eval("max(data)"); //REXP. asXxx()返回相应类型的数据,如果结果类型不符会出错 System.out.println(rexp.asInteger()); rc.close(); 实例2:调用自定义函数 创建R文件test.R RConnection rc = new RConnection(); // test.R的路径 String fileName = "D:\\test.R"; rc.assign("fileName", fileName); //执行test.R脚本,执行这一步才能调用里面的自定义函数myFunc,如果不行,就在R工具上也执行一下test.R脚本 rc.eval("source(fileName)"); String num = "3"; //调用myFunc函数 REXP rexp=rc.eval("myFunc("+num+")"); //返回类型是一个整数类型,所以用asInteger System.out.println(rexp.asInteger()); rc.close(); 在R-x.x.x\library\Rserve\client\java\Rserve\test目录下有测试用例可以参考。(StartRserve.java是用java启动Rserve服务,而不用打开R语言来手动启动。test.java里包含了基本方法的调试)
|
请发表评论