R中有多種面向關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(DBMS)的接口,包括Microsoft SQL Sever、Microsoft Access、MySQL、Oracle、PostgreSQL、DB2、Sybase、Teradata以及SQLite。其中一些包通過原來的數(shù)據(jù)庫驅(qū)動來提供訪問功能,另一些則是通過ODBC或JDBC來實(shí)現(xiàn)訪問。使用R來訪問在外部數(shù)據(jù) 中的數(shù)據(jù)是一種分析大數(shù)據(jù)集的有效手段(參見附錄G),并能夠發(fā)揮SQL和R各自的優(yōu)勢。
R語言中通過RODBC包訪問一些數(shù)據(jù)庫是目前比較流行的方式。允許R連接到任意一種擁有ODBC驅(qū)動的數(shù)據(jù)庫。
第一步安裝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包中各個函數(shù):
library(RODBC)
myconn <- odbcconnect('mydsn',uid='Rob' ,pwd='aardvark'>->
crimedat <->->
pundat <- sqlquery(myconn,'select*from="">->
close(myconn)
這里首先載入了RODBC ,并通過一個已注冊的數(shù)據(jù)源名稱 (mydsn)和用戶名(rob)以及密碼(aardvark)打開了一個ODBC數(shù)據(jù)庫連接。 連接字符串被傳遞給sqlFetch,它將Crime數(shù)據(jù)表復(fù)制到數(shù)據(jù)框pundat中。最后關(guān)閉連接。