3.3 数据集连接
数据分析过程中会遇到一些很大的数据文件,这时仍然使用本地的文本格式存储出现不同问题:数据量大于计算机内存时,计算机无法读取数据;对数据的修改十分困难;无法按照需求加载数据。使用数据库存储数据则可以有效的解决这些问题。
数据库主要有两种类型:关系型数据库和非关系型数据库。关系型数据库是相互关联的表的集合,例如学生成绩单,学生姓名存储一张表,学生成绩存到另一张,它们之间一一对应;非关系型则是一个学生存储一张表。在数据量较小时,关系型可能更加高效,但是数据量增加之后,尤其是数据字段增加,非关系型分布式的存储方式效率更高。
在使用R与数据库连接时,要先配置好数据库的环境。R语言连接数据库常用的方法有2种:
使用R数据库接口
连接MySQL,需要首先下载安装数据库,然后安装RMySQL包。
library(RMySQL)
在这种方式下,连接数据库的包有2种:
- 使用dbConnect函数
<- dbConnect(MySQL(), dbname = "rmysql") conn
dbWriteTable(conn, "tablename", data)
dbReadTable(conn, "tablename")
dbDisconnect(conn)
dbWriteTable可以用来在数据库中写入表,conn代表指向数据库的路径,“tablename”为表的名称,data为要写入的数据;dbReadTable则用来读取数据库中的数据;dbDisconnect(conn) 则会关闭此连接。
- 使用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);
<- odbcConnect("mysql_data");
channel sqlTables(channel)
<-sqlFetch(channel,"kegg") data