R语言连接mysql的方式目前有两类:一类是通过RODBC连接,一类是通过RMYSQL包连接。
本文介绍的就是这两种方式的操作步骤:
一.RODBC方式
>install.packages("RODBC") --安装RODBC包
> library(RODBC)

     ## 让函数把名字映射成小写

     > channel <-odbcConnect("testdb", uid="ripley",case="tolower")

     ## 把一个数据框导入数据库

     > data(USArrests)

     > sqlSave(channel,USArrests, rownames = "state", addPK = TRUE)

     > rm(USArrests)

     ## 列出数据库的表

     > sqlTables(channel)

       TABLE_QUALIFIERTABLE_OWNER TABLE_NAME TABLE_TYPE REMARKS

     1                              usarrests      TABLE

     ## 列出表格

     > sqlFetch(channel,"USArrests", rownames = "state")

                    murder assault urbanpop rape

     Alabama          13.2     236      58 21.2

     Alaska           10.0     263      48 44.5

         ...

     ## SQL查询,原先是在一行的

     > sqlQuery(channel,"select state, murder from USArrests

                where rape > 30 order by murder")

            state murder

     1 Colorado      7.9

     2 Arizona       8.1

     3 California    9.0

     4 Alaska       10.0

     5 New Mexico   11.4

     6 Michigan     12.1

     7 Nevada       12.2

     8 Florida      15.4

     ## 删除表

     > sqlDrop(channel,"USArrests")

     ## 关闭连接

     > odbcClose(channel)

作为 Windows下面用 ODBC 连接 Excel电子表格的一个简单例子, 我们可以如下读取电子表格

     > library(RODBC)

     > channel <-odbcConnectExcel("bdr.xls")

     ## 列出电子表格

     > sqlTables(channel)

       TABLE_CAT TABLE_SCHEM        TABLE_NAME   TABLE_TYPE REMARKS

     1 C:\\bdr            NA           Sheet1$ SYSTEM TABLE      NA

     2 C:\\bdr            NA           Sheet2$ SYSTEM TABLE      NA

     3 C:\\bdr            NA           Sheet3$ SYSTEM TABLE      NA

     4 C:\\bdr            NA Sheet1$Print_Area        TABLE      NA

     ## 获得表单1的内容,可以用下面任何一种方式

     > sh1 <-sqlFetch(channel, "Sheet1")

     > sh1 <-sqlQuery(channel, "select * from [Sheet1$]")

09-06 11:29