「java调用r语言」Java中r

博主:adminadmin 2023-01-21 11:03:06 287

本篇文章给大家谈谈java调用r语言,以及Java中r对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

Linux环境下,java怎么调用R语言

1、下载wget、解压:tar-zxvfR-3.0.1.tar.gzcdR-3.0.13、安装(当然也可以跳过)yuminstallreadline-develyuminstalllibXt-devel./configure4、配置环境并编译安装#如果使用rJava需要加上--enable-R-shlib(这个我不需要,所以加入到后面)#如果3没安装,那么后面加上:--with-readline=no--with-x=no./configure--prefix=/usr/R-3.0.1make$$makeinstall5、配置环境变量并生效vi.bash_profileexportR_HOME=/usr/R-3.0.1exportPATH=.:$R_HOME/bin:$PATH#试环境变量生效source.bash_profile6、命令行测试[admin@JDsoftware]$RWARNING:ignoringenvironmentvalueofR_HOMERversion3.0.1(2013-05-16)--"GoodSport"Copyright(C)2013TheRFoundationforStatisticalComputingPlatform:x86_64-unknown-linux-gnu(64-bit)R是自由软件,不带任何担保。在某些条件下你可以将其自由散布。用'license()'或'licence()'来看散布的详细条件。R是个合作计划,有许多人为之做出了贡献.用'contributors()'来看合作者的详细情况用'citation()'会告诉你如何在出版物中正确地引用R或R程序包。用'demo()'来看一些示范程序,用'help()'来阅读在线帮助文件,或用'help.start()'通过HTML浏览器来看帮助文件。用'q()'退出R.q()7、创建脚本测试(t.R)cd/opt/script/Rvimt.R#!/path/to/Rscript#第一行x-c(1,2,3)#R语言代码y-c(102,299,301)model-lm(y~x)summary(model)8、测试:执行脚本RCMDBATCH--args/opt/script/R/t.Rmore/opt/script/R/t.Rout#查看执行的结果或者第二种方式Rscript/opt/script/R/test.R#结果直接输出到终端

Java可以调用自己编写的R函数吗?

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();

如何利用r语言和java来做web应用分析

展开全部

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

1.JRI中主要的API

Rengine

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

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

java语言能调用R语言吗

可以。

(一) 在R里下载“Rserve”包,并安装

安装好后,

运行如下命令启动“Rserver”

library(Rserve)

Rserve()

Starting Rserve...

"D:\PROGRA~1\R\R-30~1.1\library\Rserve\libs\i386\Rserve.exe"

(二) 建立java工程,导入必要的包,写出测试用例

目录结构如下(标红色的是需要的):

Test.java 内容

package com.rTest;

import org.rosuda.REngine.REXP;

import org.rosuda.REngine.Rserve.RConnection;

public class Test {

public static void main(String[] args) {

try {

RConnection c = new RConnection();

REXP x = c.eval("R.version.string");

System.out.println(x.asString());

} catch (Exception e) {

e.printStackTrace();

}

}

}

运行即可

2.3 可能出现的错误

2.3.1 Connection refused: connect

org.rosuda.REngine.Rserve.RserveException: Cannot connect: Connection refused: connect

at org.rosuda.REngine.Rserve.RConnection.init(RConnection.java:88)

at org.rosuda.REngine.Rserve.RConnection.init(RConnection.java:60)

at org.rosuda.REngine.Rserve.RConnection.init(RConnection.java:44)

at com.rTest.Test.main(Test.java:9)

这是由于“Rserve” 服务器没有启动起来的原因,试试在R内运行如下语句

library(Rserve)

Rserve()

java调用r语言的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于Java中r、java调用r语言的信息别忘了在本站进行查找喔。