Coursera Getting and Cleaning Data Week2学习笔记Reading from MySQL

Reading from MySQL

install.packages("RMySQL", type="source")

library(DBI)

library(RMySQL)

ucscDb<-dbConnect(MySQL(),user="genome",host="genome-mysql.cse.ucsc.edu")

result<-dbGetQuery(ucscDb,"show databases;");dbDisconnect(ucscDb);

Result

首先在电脑上安装MySQL、Rtools40

分别设置MySQL、R的环境变量,将lib文件夹放到bin中

下载RMySQL包

加载DBI、RMySQL包

用dbConnect 命令链接数据库,传递的user是genome,传递主机给数据库所在的地方,即host="genome-mysql.cse.ucsc.edu"。例子中即网址。

dbGetQuery给数据库一个查询请求

"show databases;"是一个sql命令,即通过R将SQL命令传递至数据库

运行结束后,使用dbDisconnect(ucscDb);断开与数据库的连接,结果返回为TRUE即为连接断开

举例:

hg19<-dbConnect(MySQL(),user="genome",db="hg19",

                host="genome-mysql.cse.ucsc.edu")

allTables<-dbListTables(hg19)

length(allTables)

allTables[1:5]

访问genome服务器中hg19这个数据库,并查看这个数据库中的表,举例为查看前五张表的名字,每个数据集代表1个文件,每个数据类型都有自己的表

dbListFields(hg19,"affyU133Plus2")

如果对特定类别的表感兴趣,该代码即为在hg19数据库中,"affyU133Plus2"中的字段,为列的信息,如想知道关于行的信息

dbGetQuery(hg19,"select count(*) from affyU133Plus2")

count(*)

发送查询指令,计算这个表中所有记录

读取表格

affData<-dbReadTable(hg19,"affyU133Plus2")

head(affData)

读取hg19中,文件"affyU133Plus2"的数据集,返回的是数据框本身

 

数据过大可引起R不能读取,因此选择数据中的子集很重要

 

每次运行新的数据之前,应关闭之前的数据重新开始。

 

query<-dbSendQuery(hg19,"select * from affyU133Plus2 where misMatches between 1 and 3")

传递命令,选择misMatches中1-3的数

affyMis<-fetch(query);quantile(affyMis$mis$misMAtches)

 

affyMisSmall<-fetch(query,n=18);dbClearResult(query);fetch是获取数据,只获取前10行

dim(affyMisSmall)

 

可以在“”中输入任何一个sql查询指令

dbDisconnect(hg19)

最后记得关闭数据库

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值