Chinaunix首页 | 论坛 | 博客
  • 博客访问: 72828
  • 博文数量: 19
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 170
  • 用 户 组: 普通用户
  • 注册时间: 2015-08-07 10:00
个人简介

迷糊

文章分类

全部博文(19)

文章存档

2021年(2)

2018年(3)

2016年(2)

2015年(12)

我的朋友

分类: 大数据

2015-08-25 17:06:26

 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_QUALIFIER TABLE_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$]")

阅读(1197) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~