3.3 数据集连接

数据分析过程中会遇到一些很大的数据文件,这时仍然使用本地的文本格式存储出现不同问题:数据量大于计算机内存时,计算机无法读取数据;对数据的修改十分困难;无法按照需求加载数据。使用数据库存储数据则可以有效的解决这些问题。

数据库主要有两种类型:关系型数据库和非关系型数据库。关系型数据库是相互关联的表的集合,例如学生成绩单,学生姓名存储一张表,学生成绩存到另一张,它们之间一一对应;非关系型则是一个学生存储一张表。在数据量较小时,关系型可能更加高效,但是数据量增加之后,尤其是数据字段增加,非关系型分布式的存储方式效率更高。

在使用R与数据库连接时,要先配置好数据库的环境。R语言连接数据库常用的方法有2种:

使用R数据库接口

连接MySQL,需要首先下载安装数据库,然后安装RMySQL包。

library(RMySQL)

在这种方式下,连接数据库的包有2种:

  1. 使用dbConnect函数
conn <- dbConnect(MySQL(), dbname = "rmysql")
这里,我们使用dbdbConnect函数创建了一个连接:conn。在此基础上,我们可以对数据库进行一系列的操作:
dbWriteTable(conn, "tablename", data) 
dbReadTable(conn, "tablename")  
dbDisconnect(conn) 

dbWriteTable可以用来在数据库中写入表,conn代表指向数据库的路径,“tablename”为表的名称,data为要写入的数据;dbReadTable则用来读取数据库中的数据;dbDisconnect(conn) 则会关闭此连接。

  1. 使用sqldf包
同样的,我们首先要安装sqldf包,其次加载它。sqldf包建立连接的常用方式如下所示:
sqldf("select * from t_data",dbname="test",drv="MySQL")

使用ODBC连接

使用ODBC的方式进行连接,需要我们首先在Windows下配置ODBC,以开放数据库连接,具体步骤如下: * R安装RODBC包

  • 下载并安装mySQL ODBC,下载地址为http://dev.mysql.com/downloads/connector/odbc

  • Windows:控制面板->管理工具->数据源(ODBC)->双击->添加->选中mysqlODBC driver一项,并根据个人需要填写信息(TCP/IP Server 填写本机服务器IP,一般为:127.0.0.1 )。 数据库里会出现你的mysql里的数据库列表,选择一个数据库作为你在R中要调用的数据库

  • 打开R的界面调用数据库

    调用数据库的常用语法如下,sqlTables函数用来查看数据库中的表,sqlFetch则将数据库中的数据读取到数据框中:

library(RODBC); 
channel <- odbcConnect("mysql_data"); 
sqlTables(channel)
data<-sqlFetch(channel,"kegg")