Rsession让Java与R建立连接

接着上一篇文章《Rserve安装、配置和远程操控》,这篇文章主要是介绍如果使用Rsession来使Java与R建立连接,Rsession为Rserve的进一步封装,废话不多说,开始介绍。

1. Rsession下载与配置

Rsession的使用需要Rserve的Jar来支撑,所以需要的Jar包有:REngine.jarRserveEngine.jarRsession.jar,前两个Jar的下载配置方式(http://www.rforge.net/Rserve/files/ )已在上一篇文章中进行了说明。在这我们只介绍Rsession的下载方式,下载地址:http://download.csdn.net/detail/tb3039450/9621620https://github.com/yannrichet/rsession/blob/master/Rsession/dist/rsession.jar

如果你在项目中使用maven进行管理,那可以在pom.xml 中添加如下内容:

   <dependency>
       <groupId>com.github.yannrichet</groupId>
       <artifactId>Rsession</artifactId>
       <version>1.8.3</version>
   </dependency>

2. Rsession的使用

import org.math.R.RserverConf;
import org.math.R.Rsession;
import java.util.Properties;

public class RServeHelper {

    private static Rsession rsession=null;

    /**
     * 利用Rsession初始化RServe
     * @return
     * @throws IOException
     */
    public static Rsession initRserve() throws IOException {
        //从配置文件中读取Rserve信息,IP.用户名.密码
        Properties prop = PropertieHelper.getPropInstance("ssh.properties");
        String hostname = prop.getProperty("host");
        String username = prop.getProperty("username");
        String password = prop.getProperty("password");
        RserverConf rconf=new RserverConf(host,6311,username,password,new Properties());
        rsession = Rsession.newInstanceTry(System.out, rconf);
        return rsession;
    }

    /**
     * 创建Rsession单例
     * @return
     * @throws IOException
     */
    private static Rsession getRsessionInstance() throws IOException {
        if(rsession==null){
            rsession=initRserve();
        }
        return rsession;
    }
}

具体Rsession的方法使用可以查看https://github.com/yannrichet/rsession

在这提醒大家几点,也是我碰到的一些坑,希望能引起大家注意。

  • Rsession中的set("...",...)方法的第二个参数为本地数据,一般为现成的数据,只能是本地的数据,如果放入字符串,那么该变量的值就为该字符串。
  • 如果想要保存一个执行过程中产生的变量,可以使用eval()方法。例如eval("tmp <- head(test)")

Rsession使用起来还是相对便捷的,祝大家使用愉快。^_^

参考:

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值