日期:2014-05-16  浏览次数:20376 次

R学习笔记

把学习过程记载下来,加深印象,到时要是忘了也容易查,有需要的同学也可以参考:

 

1、包的安装:两种方法:一种通过R的菜单,先设定cran镜像,然后安装程序包,会出来一个列表,选择相应程序包安装,安装完毕再点击加载程序包,找到要加载的程序包即可;另一种通过命令行代码:先install.packages("包名")安装,然后library("包名")加载;

2、要善于使用帮助文档,help(“对象名称”)就可以得到相应的帮助文档了,help.search(“对象名称”,rebuild=TRUE),这个rebuild是针对一些新安装的包,需要刷新帮助文档数据库。

 

2、通过RODBC操作数据库:先建立好odbc数据源,然后就可以在R中通过RODBC的方法操作数据库

odbcDataSources():列出当前可用的odbc数据源

conn=odbcConnect("PostgreSQL30",uid='postgres',pwd='postgres'):建立一个连接

 result=sqlQuery(conn,'select * from rtest'):执行一个查询,并把返回来的sql查询结果赋值给result,注意这里要写上通道名conn,即是前面建立的连接

sqlQuery(conn,"insert into rtest(id,cust_name) values('3','stephen')"):插入、更新、查询都是用sqlQuery方法。注意这里有个技巧,由于R语言单引号和双引号都可以起到相同的文本引号作用,并且单引号在双引号内或者双引号在单引号内均不需要转义符,所以可以外层用双引号,sql语句用单引号。

sqlSave(conn,result,tablename='rsave'):把数据result保存到表rsave,如果rsave表不存在则自动创建,这个函数有很多参数,建议先help("sqlSave")再用

odbcClose(conn):关闭连接

 

终于找到一个dm工具可以直接读库、写库了!oh,yeah!

 

3、java调用r:需要通过RServe包,像其他包一样安装加载,然后通过Rserve()启动服务(每次运行java调用代码都需要确保服务已启动),就可以开始写java代码了。

需要引入两个jar包:Rengine.JAR和RserveEngine.JAR,调用的代码如下,注意需要抛出异常:

 

import org.rosuda.REngine.REXP;
import org.rosuda.REngine.REXPMismatchException;
import org.rosuda.REngine.Rserve.RConnection;
import org.rosuda.REngine.Rserve.RserveException;

    RConnection c =new RConnection();
   System.out.println("connected");
   REXP x=c.eval("R.version.string");
    System.out.println(x.asString();

 

 

4、