java调用R语言之调用
来源:互联网 发布:叉叉助手类似软件 编辑:程序博客网 时间:2024/05/29 02:41
一.实例化R引擎
Rengine engine = new Rengine(null,false,null);
Rengine.versionCheck() //R版本校验,返回true:版本校验通过 返回false:版本校验未通过
engine.waitForR() //R加载校验,返回true:加载成功 返回false:加载失败
engine.end() //结束R,在后续没有调用R的情况下使用,否则R将退出,不能继续使用R。
二.R返回值 REXP
REXP rexp=engine.eval(“R语句”) //执行一个R语句并且返回值存在rexp中
rexp.asInt() rexp.asDouble() rexp.asString()//将返回值转换为java中的类型
engine.assign(String name,double d)//定义一个double类型的R变量
三.求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();
四.k-means算法
public class rtest { public static void main(String[] args) throws InterruptedException, IOException { Rengine re=new Rengine(null,false,null); boolean isload=re.waitForR(); if(isload==true)System.out.println("R is ready"); re.eval(" a=c(3,3,3,5,3,3,5,7,5,9,6,5,6,7)"); REXP mrex=re.eval("x=matrix(a,byrow=T,nrow=7) ");//生成测试数据矩阵 double[][] matrix=mrex.asDoubleMatrix(); re.eval("t=kmeans(x,2)");//执行k-means算法 REXP center_rex=re.eval("t$centers"); //得到中心 double[][] centers=center_rex.asDoubleMatrix(); REXP cluster_rex=re.eval("t$cluster"); //得到cluster int[] cluster=cluster_rex.asIntArray(); String yin="\""; String code="jpeg(file="+yin+"myplot.jpeg"+yin+")"; System.out.print(code); re.eval(code);//保存图片 re.eval( " plot(x,col=t$cluster)"); re.eval(" points(t$centers,pch=8,col=t$cluster) ");//绘制图片 re.eval("dev.off()"); for(int i=0;i<centers.length;i++) { for(int j=0;j<centers[0].length;j++) { System.out.print(centers[i][j]+" "); } System.out.print('\n'); } System.out.print('\n'); for(int i=0;i<cluster.length;i++) { System.out.print(cluster[i]+" "); } System.out.print('\n'); char key=(char)System.in.read(); if(key=='0') { System.out.print("exit"); re.end(); }
五.注意事项
在实际使用中,最好对R引擎使用单例模式,在使用完之后注意调用re.end方法;
0 0
- java调用R语言之调用
- JAVA调用R语言
- JAVA调用R语言
- java 调用R语言
- JAVA调用R语言
- Java调用R语言
- JAVA调用R语言
- JAVA调用R语言之安装
- JAVA调用R语言之Rserve
- Reserve java调用R语言
- JAVA调用R语言之Rserve(二)
- C#调用R语言之.NET
- C#调用R语言之.NET
- Java与R语言的配置,调用
- java调用R语言--以Rserve方式
- java调用R语言实现神经网络
- 在java中调用R语言
- 【配置】使用Java调用R语言
- linux中宿主目录、Vi和Vim关系
- android-Activity读书笔记
- 自定义控件初学篇——onDraw()方法
- Yocto tips (13): Yocto 查看软件包的依赖关系
- 超实用的jQuery代码段 - jQuery Callback()
- java调用R语言之调用
- stm32 GPIO 操作例程
- linux sed命令详解
- 黑马程序员——Java---io流--文本文件读取写入的实现
- 【郑轻】[1762]Dml‘s secret
- html学习第一天
- Universal-Image-Loader加载网络图片
- 线程---Thread
- C# 过滤空格、换行、script、style等等标签