導(dǎo)入CSV文件
??文件:G:/autompg.csv,表格中的全部字段為:
- mpg:continuous
- cylinders:multi-valued discrete
- displacement:continuous
- horsepower
- weight:continuous
- acceleration:continuous
- model year:multi-valued discrete
- origin:multi-valued discrete
- car name:string (unique for each instance)
??讀取文件:
if(FALSE){stringsAsFactors=FALSE讀取字符串變量}
auto_mpg <- read.table("G:/autompg.csv", header=TRUE, sep=',',stringsAsFactors=FALSE,quote = "")
summary(auto_mpg)
??輸出為:(與實(shí)際表格的字段類(lèi)型不符)
[圖片上傳失敗...(image-2e96a7-1512713264789)]
??可以用colClasses為每一列指定一個(gè)類(lèi),例如logical(邏輯型)蜜托、numeric(數(shù)值型)蹋嵌、character(字符型)遭贸、factor(因子)蔫敲。
auto_mpg <- read.table("G:/autompg.csv",colClasses=c("numeric","factor","numeric","numeric","numeric","numeric","factor","factor","character") ,header=TRUE, sep=',',quote = "")
summary(auto_mpg)
if(FALSE){查看前5行}
auto_mpg[1:5,]
??輸出結(jié)果為:
[圖片上傳失敗...(image-1143c2-1512713264789)]
導(dǎo)入EXCEL文件
將EXCEL文件轉(zhuǎn)化為CSV文件,再導(dǎo)入CSV文件(最佳方式)
利用xlsx包或者RODBC包導(dǎo)入數(shù)據(jù)
if(FALSE){安裝xlsxC包}
install.packages("xlsx")
if(FALSE){讀取autompg.xlsx的第一頁(yè)表}
library(xlsx)
mydata <- read.xlsx("G:/autompg.xlsx", 1)
??這將又會(huì)出現(xiàn)導(dǎo)入CSV文件的問(wèn)題,即導(dǎo)入的數(shù)據(jù)類(lèi)型與原來(lái)數(shù)據(jù)類(lèi)型不一致。
導(dǎo)入數(shù)據(jù)庫(kù)表格
??在R中通過(guò)RODBC包訪(fǎng)問(wèn)一個(gè)數(shù)據(jù)庫(kù)也許是最流行的方式面徽,這種方式允許R連接到任意一種擁有ODBC驅(qū)動(dòng)的數(shù)據(jù)庫(kù),其實(shí)幾乎就是市面上的所有數(shù)據(jù)庫(kù)匣掸。
??以導(dǎo)入MySQL數(shù)據(jù)庫(kù)數(shù)據(jù)表為例趟紊。前提是你的電腦上已經(jīng)安裝了MySQL的ODBC驅(qū)動(dòng)程序,網(wǎng)址為https://dev.mysql.com/downloads/connector/odbc/.
[圖片上傳失敗...(image-233540-1512713264789)]
安裝完MySQL的ODBC驅(qū)動(dòng)后,打開(kāi)控制面板的管理工具碰酝,根據(jù)自己的Windows系統(tǒng)版本打開(kāi)ODBC數(shù)據(jù)源霎匈。再連接到MySQL數(shù)據(jù)庫(kù),我們以訪(fǎng)問(wèn)test數(shù)據(jù)庫(kù)為例送爸,數(shù)據(jù)源名稱(chēng)為connect_mysql.
這樣設(shè)置完后铛嘱,我們就可以利用R語(yǔ)言連接數(shù)據(jù)庫(kù)了(注意:這是雙向的連接)。
library(RODBC)
if(FLASE){連接數(shù)據(jù)庫(kù),賬號(hào)為root,密碼為123456}
myconn <-odbcConnect("connect_mysql",uid="root",pwd="123456")
if(FALSE){連接該數(shù)據(jù)庫(kù)的product表格}
mysqldata <- sqlFetch(myconn, "product")
對(duì)數(shù)據(jù)庫(kù)的操作
library(RODBC)
if(FALSE){連接數(shù)據(jù)庫(kù)+賬號(hào)為root+密碼為123456}
myconn <-odbcConnect("connect_mysql",uid="root",pwd="123456")
if(FALSE){連接該數(shù)據(jù)庫(kù)的product表格+并查看前5行}
mysqldata <- sqlFetch(myconn, "product")
print(mysqldata[1:5,])
if(FALSE){對(duì)product表進(jìn)行SQL查詢(xún)}
print(sqlQuery(myconn, "select * from product where maker ='E'"))
print(sqlQuery(myconn, "select maker,max(model) as max_model from product group by maker"))
if(FALSE){關(guān)閉連接}
close(myconn)