rserve php,使用Rserve远程执行R脚本

Rserve介绍

Rserve是一个基于TCP/IP协议的,允许R语言与其他语言通信的C/S结构的程序,支持C/C++,Java,PHP,Python,Ruby,Nodejs等。 Rserve提供远程连接,认证,文件传输等功能。我们可以设计R做为后台服务,处理统计建模,数据分析,绘图等的任务。

Rserve安装

Linux系统下建议使用root权限安装。下面的内容是依据Windows7系统中安装过程进行描述的。

进入R语言解释器:R

安装命令:install.packages("Rserve")

然后安装程序会提示我们选择下载镜像,提示如下:

--- Please select a CRAN mirror for use in this session ---

等我们选择了镜像后(测试时选择的是China(xxx)),安装程序便进行下载安装,最终会输出如下的信息(Linux下的输出信息或有不同):

AAffA0nNPuCLAAAAAElFTkSuQmCC

image

说明Rserve安装成功,安装路径为:%R_HOME%libraryRserve目录。

启动Rserve服务

在Windows命令窗口进入R_HOMElibraryRservelibsi386目录中执行如下命令(我的Windows7是32位的,如果是64位系统对应目录为R_HOMElibraryRservelibsx64):

R将作出如下应答:

AAffA0nNPuCLAAAAAElFTkSuQmCC

image

说明Rserve启动成功(端口6311),可以进行连接测试了。

上面的启动命令使用的本地模式,如果想远程连接需要增加参数 –RS-enable-remote

即启动命令为:

Java远程连接Rserve

下载依赖jar包,地址:http://www.rforge.net/Rserve/files/

共两个jar包,下载完成后将它们加入到项目的classpath中即可: REngine.jar

 RserveEngine.jar

也可以到Rserve安装目录中寻找,比如:R_HOME libraryRservejava目录中就有相关jar包,名字略有不同,经测试可以使用:

AAffA0nNPuCLAAAAAElFTkSuQmCC

image

简单的测试代码:

测试可以通过,程序将输出R语言版本信息及10个Double类型的数字。

Java远程执行R脚本

上面的示例只是执行R命令,但如果我们在服务器上放置R脚本又该如何执行该脚本或调用其中的函数呢?

有两种方法可以完成上面的问题。

假如我们定义了一个R脚本area.R,其中定义了一个方法area,该方法接收一个半径值然后计算对应面积并返回,脚本内容非常简单:

下面描述一下如何调用这个脚本中的area函数,并获取其返回值。

第一种方法就是直接用source函数将area.R脚本加载上来,然后就可以像调用R语言内置命令/函数一样调用脚本中的area方法了。这样做有一个缺点就是每建立一次Java与R之间的连接就需要调用source函数一次。

示例代码:

代码测试通过。

另一种调用R脚本的方法是通过Rserv.conf配置文件,该文件路径为/etc/Rserv.conf,如果文件不存在则创建一个新的,然后在文件中添加如下的代码:

然后重新启动Rserve服务即可。

使用这种方式Java测试代码需要去掉source语句这一行,即:

其它不变,经测试成功。注1:第二种方式只在Linux下采用,Win平台对应的方法没有找到。

另外:有些人说配置文件为Rserve.conf,但我在122的/etc下找到的是Rserv.conf,不管是哪一个文件(甚至两者都不是,随便命名一个),只要执行下面命令告诉Rserve配置文件是哪一个即可(需要重启Rserve):

作者:Liam_ml

链接:https://www.jianshu.com/p/1625c1c89023

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/498907.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

搜索引擎提交软件_搜索引擎优化的发展史及SEO前景展望

SEO 是随着搜索引擎的普及而出现,并伴随搜索引擎的发展而发展的。关于搜索引擎和搜索引擎优化SEO 最初是怎么诞生的有很多种说法。有一个非常有趣的事实是,最早的一批SEO 甚至可以追溯到Yahoo 出现之前,我们可以把Yahoo 的传世人David Filo 和…

mongodb模糊查询_MongoDB的CRUD基本操作

原创:牛津小马哥Python后端工程师小李哥。在上周的推文中,我们介绍了MongoDB的数据库和集合的操作,现在,让我们来继续学习mongodb的另一个操作:CRUDCRUD操作:创建、读取、更新、删除文档。创建操作&#xf…

设计一个程序实现两个任意长的整数的求和运算_自然数集,整数集,有理数集等都有字母表示,为什么无理数集没有...

在网上翻到一个非常有意思的问题:这个问题乍看起来无厘头,但实际上是个非常深刻的问题,涉及到抽象代数(abstract algebra)的一些基本概念,因此我打算写篇文章来详细阐述一下。人类的数学从数数开始,最早诞生的概念是自…

php strpo函数,php strpos函数有什么用

php strpos函数有什么用?定义和用法strpos() f函数查找字符串在另一字符串中第一次出现的位置(区分大小写)。注释:strpos() 函数是区分大小写的。注释:该函数是二进制安全的。相关函数:strrpos() - 查找字符串在另一字符串中最后一…

oracle 客户端_【数据库 常见术语1】 客户端,服务端

这个系列会介绍并回顾在学习和工作中常碰到的一些名词,以及它们的意思。客户端,服务端(以Oracle数据库为例)**************************************************************************************【我的理解】 打个比喻&…

多个线程访问统一对象的不同方法_分析| 你未必真的了解线程安全,别骗自己,来看下怎么实现线程安全...

世界那么大,谢谢你来看我!!关注我你就是个网络、电脑、手机小达人什么是进程?电脑中时会有很多单独运行的程序,每个程序有一个独立的进程,而进程之间是相互独立存在的。比如下图中的QQ、酷狗播放器、电脑管…

php设置mysql查询编码,php连接mysql时怎么设置编码方式

php连接mysql时怎么设置编码方式php连接mysql数据库时,也就是在mysql_connect()语句之后添加“mysql_query("set names utf8");”语句来设置编码方式。注意:是utf8,不是utf-8;网页字符集也最好选用utf-8。在PHP连接数据…

pandas to_csv参数详解_【Python基础】Pandas数据可视化原来也这么厉害

一、可视化概述在Python中,常见的数据可视化库有3个:matplotlib:最常用的库,可以算作可视化的必备技能库,比较底层,api多,学起来不太容易。seaborn:是建构于matplotlib基础上,能满足…

oracle数据库重建em,oracle 11g em重建报唯一约束错误解决方法

oracle 11g em重建报唯一约束错误解决方法更新时间:2012年11月27日 15:07:33 作者:今天在手工配置Oracle11g的EM时总是报如下错误,也没有找到解决办法,以下是我的解决过程,希望可以帮助你们今天在手工配置Oracle11g的EM时总是报如下错误&am…

爬虫 404 try_Python爬虫MOOC笔记

写在前面的小于碎碎念最近在学习Python爬虫内容,其实很多知识在网上搜索一下都能查到,但是作为自己的一种学习记录,也是回顾与复习呀。这种东西真的变化超级快,以前可以直接爬取的内容,现在很多网站都增加了反爬机制&a…

python调用c++_python高性能编程之Cython篇 第一章

第一节 cython的潜能•Cython是一种编程语言,它将Python与C和C 的静态类型系统相结合。•Cython是一个将Cython源代码转换为高效的C或C 源代码的编译器。然后可以将此源代码编译为Python扩展模块或独立可执行文件。Cython的强大功能来自它结合了Python和C的方式&…

oracle获取序列并赋值,Oracle中序列的使用

数据库设计的三大范式第一条就是独立的表结构中必须有唯一主键来标识表中数据.在以往微软的SQL Server(duo版本)平台上.手动编码实现表中主键.并设定为自增列是极其简单.编码如下:typeidintnotnullprimarykeyidentity(1,1),在Oracle 10G中关于序列(Sequence)的使用.(A)Sequence…

oracle序时账是什么,序时账和明细账区别是什么

序时账和明细账区别:一、定义不同:1、明细账也称明细分类账,是根据总账科目所属的明细科目设置的,,用于分类登记某一类经济业务事项,提供有关明细核算资料。2、而序时账了,也称日记账,是指按照经济业务发生…

ui li 菜单 点击添加下级_【Qt开发】实现系统托盘,托盘菜单,托盘消息

概述系统托盘就是在系统桌面底部特定的区域显示运行的程序。windows在任务栏状态区域,linux在布告栏区域。应用程序系统托盘功能,是比较普遍的功能,本篇将详细的介绍如何实现该功能。演示Demo实现功能:1.应用启动后,任…

5g通用模组是什么_中国移动联合芯讯通发布5G终端、芯片及测试产业报告

11月19日,2020中国移动全球合作伙伴大会以“5G融入百业 数智引领未来”为主题在广州召开,从多个维度展现了中国移动运用5G技术驱动各行业转型升级的强大实力。并于21日在展会现场发布了《5G终端、芯片及测试产业报告》。5G终端、芯片及测试产业报告发布现…

dell网卡linux驱动,DELL R710 服务器 Linux 系统网卡驱动安装

DELL R710在装完AS4U7版本的Linux后发现,网卡没有识别出来。怀疑是网卡驱动没有装上,打电话给DELL的工程师,得到的答复是装系统前必须用随机带的引导盘来安装才能将网卡驱动装上。现在系统已经装完了,总不能重装一遍吧&#xff0c…

博客网站源代码_详解SEO布词以及网站排名优化技巧

首先,谈谈新手以及老手在认知上容易出现的SEO误区,我认为有以下几点因素,不容忽视。1、SEO优化就是为了排名、就是发外链不少人认为做SEO就是为了排名,完全不考虑网站文章的质量、可读性以及用户体验,甚至不惜使用一些…

惠普g260鼠标宏软件_黑爵电竞鼠标AJ337 电竞手残党福音 鼠标宏一键火力全开

2020年,可以说是英特尔最难受的一年,多年来的挤牙膏大法也不灵了,面对AMD更先进的7mm制程以及更多的线程数,加上本身更合理的售价,说实话就连一向占据处理器半壁江山的英特尔也感受到了很高的威胁。AMD撕裂者系列发布以…

linux tcp压测工具,02.监控和压测工具 - 2.4.压测工具 - 《Linux性能调优指南》 - 书栈网 · BookStack...

压测工具其它有用工具在这里,我们会讨论主要的压力测试工具,选择合适的压测工具,才能准确衡量系统性能。好的压测工具有很多,可能的功能如下:发起压力监控性能监控系统使用率生成报告基准测试无非就是看系统能力是否达…

斐讯n1刷linux服务器,斐讯N1刷机Linux(Armbian)

一、降级N1打开ADB链接开始降级。降级后版本号不变二、第三方固件依然是上面的链接(官改v2.2)USB双头线链接HDMI借口最近的USB和电脑的USB进入线刷模式(电视不会显示任何东西,但是电脑会显示设备已连接)。打开上面的刷机工具刷入官改v2.2。理论刷完后重启即可进入安…