今天,我要开始学习R了。
JAVA+R
入门知识推荐:https://www.jianshu.com/p/2a1a2ca1a916
1. R是一种什么语言呢?
- R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。
2. R有什么特点?
- R作为一种统计分析软件,是集统计分析与图形显示于一体的。它可以运行于UNIX,Windows和Macintosh的操作系统上,而且嵌入了一个非常方便实用的帮助系统,相比于其他统计分析软件,R还有以下特点:
- R语言是一种开发良好,简单有效的编程语言,包括条件,循环,用户定义的递归函数以及输入和输出设施。
- R语言具有有效的数据处理和存储设施,
- R语言提供了一套用于数组,列表,向量和矩阵计算的运算符。
- R语言为数据分析提供了大型,一致和集成的工具集合。
- R语言提供直接在计算机上或在纸张上打印的图形设施用于数据分析和显示。
接下来就开始实际接触吧。
3. 环境配置
下载安装包:
R-3.6.3-win.exe
RStudio-1.2.5033.exe
安装步骤很简单,百度一下就可以了。
不过要注意的是,RStudio安装目录不能有中文,安装好R和RStudio,在打开RStudio的时候,会出现一个配置窗口,R版本选符合本机版本,引擎选自动检测就可以了。
进入RStudio之后,更改工作目录。R语言的变量可以直接使用,而不需要申明变量,所以容易导致覆盖问题。详细操作
配置java调用R的配置,分为Rserve和jri两种。
- Rserve方式:进入R编辑,输入install.packages(‘Rserve’)安装Rserve,library(Rserve)加载Rserve,Rserve()开启Rserve服务。下载jar包(REngine.jar,RserveEngine.jar)。将这两个jar包导入java项目中。
java调用R语言函数的代码样例:
- java在调用R函数之前,需要启动R服务:1.library(Rserve);2.Rserve();3.source(‘R文件路径’)//加载R函数。(手动执行或者通过JAVA代码执行)
//R语言函数,文件D:/workutils/RWorkspace/test.R
myFunc<-function(data){
x=data+2;
return(x)
}
public static void main(String[]args)throws REXPMismatchException, REngineException {
//R函数同时只能被一个实例调用。
RConnection c =new RConnection("127.0.0.1");
REXP x =c.eval("R.version.string");
System.out.println(x.asString());
double[]arr =c.eval("rnorm(5)").asDoubles();
for (double a :arr) {
System.out.println(a + ",");
}
// test.R的路径
String fileName = "D:/workutils/RWorkspace/test.R";
c.assign("fileName", fileName);
//执行test.R脚本,执行这一步才能调用里面的自定义函数myFunc,如果不行,就在R工具上也执行一下test.R脚本
c.eval("source(fileName)");
int num = 3;
//调用myFunc函数
REXP rexp=c.eval("myFunc("+num+")");
//返回类型是一个整数类型,所以用asInteger
System.out.println("str:"+rexp.asString());
c.close();
}
如果执行后没有报错,控制台正常输出,说明环境基本就配置好啦!