R语言之连接mysql数据库
學(xué)習(xí)筆記
PS:寫這個(gè)Blog的初衷是,心血來潮考古自己的Blog,看到3年前寫的同一主題Blog,差點(diǎn)氣到吐血,就重新寫一遍了,順便加一點(diǎn)R語言讀取數(shù)據(jù)的其他方式。
R語言之連接mysql數(shù)據(jù)庫
從mysql中讀取數(shù)據(jù)
在用R連接mysql之前,我添加一個(gè)數(shù)據(jù)源:
注意,添加mysql數(shù)據(jù)源時(shí),要填寫數(shù)據(jù)源名稱,用戶名,密碼和要使用的數(shù)據(jù)庫!
如果不添加數(shù)據(jù)源,可能會(huì)報(bào)以下錯(cuò)誤:
Warning messages: 1: In RODBC::odbcDriverConnect("DSN=mysql;UID=root;PWD=19970928") :[RODBC] ERROR: state IM002, code 0, message [Microsoft][ODBC 驅(qū)動(dòng)程序管理器] 未發(fā)現(xiàn)數(shù)據(jù)源名稱并且未指定默認(rèn)驅(qū)動(dòng)程序 2: In RODBC::odbcDriverConnect("DSN=mysql;UID=root;PWD=19970928") :ODBC connection failed如果沒有指定要使用的數(shù)據(jù)庫,將無法進(jìn)行查詢/添加/刪除等一系列操作(可能通過別的方法可以進(jìn)行這些操作,但是現(xiàn)在我不知道,所以假裝無法操作),因?yàn)镽不知道操縱哪個(gè)數(shù)據(jù)庫,在用sqlTables方法時(shí),可能會(huì)出現(xiàn)以下情況:
[1] TABLE_CAT TABLE_SCHEM TABLE_NAME TABLE_TYPE REMARKS <0 行> (或0-長度的row.names)沒錯(cuò),啥表都查不到,這不是因?yàn)閿?shù)據(jù)庫里真的沒有表,而是因?yàn)闆]有指定要使用的數(shù)據(jù)庫!
好做完這一切后,開始我們的實(shí)驗(yàn)。
控制臺(tái)輸出:
TABLE_CAT TABLE_SCHEM TABLE_NAME TABLE_TYPE REMARKS 1 stu images TABLE 2 stu interest TABLE 3 stu my_class_1 TABLE 4 stu test_table TABLE控制臺(tái)輸出:
id name hobby grade price comment 1 2 Bunny sing B 8888.88 小黃唧唧 2 3 Ada draw A 9999.99 小黃的鏟屎官 3 6 Bai dance A 8769.43 jijijiji控制臺(tái)輸出:
id name hobby grade price comment 1 3 Ada draw A 9999.99 小黃的鏟屎官查看mysql數(shù)據(jù)庫中interest數(shù)據(jù)表的情況:
# id, name, hobby, grade, price, comment '2', 'Bunny', 'sing', 'B', '8888.88', '小黃唧唧' '3', 'Ada', 'draw', 'A', '9999.99', '小黃的鏟屎官' '6', 'Bai', 'dance', 'A', '8769.43', 'jijijiji' '8', 'Add', 'sing', 'B', '3456.32', '不想說話'記錄成功添加!
查看mysql數(shù)據(jù)庫中,表r_sql_data和表r_sql_data2是否被寫入:
# Tables_in_stu 'images' 'interest' 'my_class_1' 'r_sql_data' 'r_sql_data2' 'test_table'嗯!成功寫入了。
再看看分別看看兩個(gè)數(shù)據(jù)表中的數(shù)據(jù)。
表r_sql_data:
# x, y '0', 'a' '2', 'b' '4', 'c' '6', 'd' '8', 'e'表r_sql_data2:
# rownames, x, y '1', '0', 'a' '2', '2', 'b' '3', '4', 'c' '4', '6', 'd' '5', '8', 'e'可以看到,r_sql_data2表相對于r_sql_data表多了一個(gè)行名,這是因?yàn)槲覀冊跇?gòu)建r_sql_data2時(shí),將參數(shù)rownames設(shè)置為TRUE。
其他導(dǎo)入方式
##直接從剪切板讀取文件 r <- read.table("clipboard",head = TRUE)##讀取csv、txt文件 r <- read.csv("shuju.csv", head = TRUE) #設(shè)置stringsAsFactors = F 可以不讓字符串變成因子 r <- read.table("shuju.txt", head = TRUE)##讀取xlsx文件 library(readxl) r <- read_excel("shuju.xlsx", sheet = 1)##以及各種其他文件 library(foreign) #STATA r <- read.dta("shuju.dta") #SAS r <- read.xport('shuju.xpt') #SPSS r <- read.spss('shuju.sav')這里就不對其他導(dǎo)入方式的語法進(jìn)行詳述了。
總結(jié)
以上是生活随笔為你收集整理的R语言之连接mysql数据库的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: R语言之离群点检验(part3)--利用
- 下一篇: 海皇牙在哪抓(在线新华字典)