4 回答
TA贡献1869条经验 获得超4个赞
一、 安装RODBC库
1、进入R语言的GUI界面(RGUI.EXE),在菜单栏选择“程序包/安装程序包
2、在弹出的窗口里往下拉,选择RODBC如图,点击确定
3、在ODBC数据源管理器里将需要的数据库添加进去,这里笔者使用的是SQL Server2008,驱动程序选择Native Client10.0
3、在R语言窗口输入连接语句
> library(RODBC)
**这里是载入RODBC库
> channel<-odbcConnect("MyTest",uid="ripley",case="tolower")
**连接刚才添加进数据源的“MyTest”数据库
**ch <- odbcConnect("some dsn ", uid = "user ", pwd = "**** ")
**表示用户名为user,密码是****,如果没有设置,可以直接忽略
> data(USArrests)
**将“USArrests”表写进数据库里(这个表是R自带的)
> sqlSave(channel,USArrests,rownames = "state",addPK = TRUE)
**将数据流保存,这时候打开SQL Server就可以看到新建的USArrests表了
> rm(USArrests)
> sqlTables(channel)
**给出数据库中的表
> sqlFetch(channel,"USArrests",rownames = "state")
**输出USArrests表中的内容
> sqlQuery(channel,"select * from USArrests")
**调用SELECT查询语句并返回结果(如图)
> sqlDrop(channel,"USArrests")
**删除表
> odbcClose(channel)
**最后要记得关闭连接
当然,通过这个办法也可以读取Excel、Access表中的内容,具体方法类似,这里不再重复
TA贡献1831条经验 获得超10个赞
有现成的包:matchprobes包 里面有个函数basecontent(seq)计算4中碱基每种的含量;
自己做的话:
#List是你的序列
unlist(strsplit(List,""))->sep.letter;#把每个字母都单独分开
#遍历所有字母
count_a=0; count_g=0; count_t=0; count_c=0;
for(i in 1:length(sep.letter)){
if(sep.letter[i]=="a"){count_a=count_a+1;}
if(sep.letter[i]=="g"){count_g=count_g+1;}
.........................
}
TA贡献1111条经验 获得超0个赞
另一种是DBI方式,所以个人比较偏好用DBI连接方式。有下面这几种主要的包提供了DBI连接,可以根据已经安装的数据库类型来安装相应的驱动。因为后者保留了各数据库原本的特性,根据连接方式不同我们有两种选择:一种是ODBC方式,需要安装RODBC包并安装ODBC驱动当然也可以将R与外部数据库连接,直接在R中操作数据库,这也是一种可行的方法。在R中连接数据库需要安装其它的扩展包,并生成最终结果。
TA贡献1829条经验 获得超4个赞
当然也可以将R与外部数据库连接,直接在R中操作数据库,并生成最终结果,这也是一种可行的方法。在R中连接数据库需要安装其它的扩展包,根据连接方式不同我们有两种选择:一种是ODBC方式,需要安装RODBC包并安装ODBC驱动。另一种是DBI方式,可以根据已经安装的数据库类型来安装相应的驱动。因为后者保留了各数据库原本的特性,所以个人比较偏好用DBI连接方式。有下面这几种主要的包提供了DBI连接:RMySQL,RSQLite,ROracle,RPostgreSQL。由名字看得出它们分别对应了几种主流的数据库。
- 4 回答
- 0 关注
- 1648 浏览
添加回答
举报