R

R数据导入之数据库管理系统

2018-09-13  本文已影响246人  YUENFUNGDATA

R中有多种面向关系型数据库管理系统(DBMS)的接口,包括Microsoft SQL Server、Microsoft Access、MySQL、Oracle、PostgreSQL、DB2、Sybase、Teradata以及SQLite。其中一些包通过原生的数据库驱动来提供访问功能,另一些则是通过ODBC或JDBC来实现访问的。使用R来访问存储在外部数据库中的数据是一种分析大数据集的有效手段,并且能够发挥SQL和R各自的优势。

①ODBC接口

在R中通过RODBC包访问一个数据库也许是最流行的方式,这种方式允许R连接到任意一种拥有ODBC驱动的数据库,其实几乎就是市面上的所有数据库,也就是说通过ODBC可连接任意一个数据库抓取数据。

第一步是针对你的系统和数据库类型安装和配置合适的ODBC驱动——它们并不是R的一部分。如果你的机器尚未安装必要的驱动,上网搜索一下应该就可以找到。

针对选择的数据库安装并配置好驱动后,请安装 RODBC 包。你可以使用命令install.packages("RODBC")来安装它。

RODBC中的函数

RODBC包允许R和一个通过ODBC连接的SQL数据库之间进行双向通信。这就意味着你不仅可以读取数据库中的数据到R中,同时也可以使用R修改数据库中的内容。

范例:

使用R连接SQL SERVER数据库并获取数据

代码如下:

library(RODBC)
myconn<-odbcConnect("SQL SERVER",uid="",pwd="")
mydataframe<-sqlQuery(myconn,"select * from [dbo].[日流量数据表] where 日期 between '2018-09-01' and '2018-09-10'")
close(myconn)

代码分析:
行1 载入RODBC包;
行2 通过一个已注册的数据源名称(SQL SERVER)和用户名以及密码打开了一个ODBC数据库连接;
行3 对日流量数据表执行了SQL语句select并将结果保存到数据框mydataframe中;
行4 关闭与数据库连接

输出结果:


说明:
函数sqlQuery()非常强大,因为其中可以插入任意的有效SQL语句。这种灵活性赋予了你选择指定变量、对数据取子集、创建新变量,以及重编码和重命名现有变量的能力。

②DBI相关包

基于DBI的包有RMySQL、ROracle、RPostgreSQL和RSQLite。

DBI包为访问数据库提供了一个通用且一致的客户端接口。构建于这个框架之上的RJDBC包提供了通过JDBC驱动访问数据库的方案。使用时请确保安装了针对你的系统和数据库的必要JDBC驱动。

上一篇 下一篇

猜你喜欢

热点阅读