R中有多种面向关系型数据库管理系统(DBMS)的接口,包括Microsoft SQL Sever、Microsoft Access、MySQL、Oracle、PostgreSQL、DB2、Sybase、Teradata以及SQLite。其中一些包通过原来的数据库驱动来提供访问功能,另一些则是通过ODBC或JDBC来实现访问。使用R来访问在外部数据 中的数据是一种分析大数据集的有效手段(参见附录G),并能够发挥SQL和R各自的优势。
R语言中通过RODBC包访问一些数据库是目前比较流行的方式。允许R连接到任意一种拥有ODBC驱动的数据库。
第一步安装RODBC包
> install.packages("RODBC")
试开URL’https://cran.rstudio.com/bin/macosx/el-capitan/contrib/3.4/RODBC_1.3-15.tgz'
Content type 'application/x-gzip' length 813136 bytes (794 KB)
==================================================
downloaded 794 KB
The downloaded binary packages are in
/var/folders/50/tybzdqks35lfztwq28v39_r40000gn/T//RtmptjWK4W/downloaded_packages
RODBC包中各个函数:
library(RODBC)
myconn <- odbcConnect("mydsn",uid="Rob",pwd="aardvark")
crimedat <- sqlFetch(myconn,Crime)
pundat <- sqlQuery(myconn,"select*from Punishment")
close(myconn)
这里首先载入了RODBC ,并通过一个已注册的数据源名称 (mydsn)和用户名(rob)以及密码(aardvark)打开了一个ODBC数据库连接。 连接字符串被传递给sqlFetch,它将Crime数据表复制到数据框pundat中。最后关闭连接。