把学习过程记载下来,加深印象,到时要是忘了也容易查,有需要的同学也可以参考:
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、