【R每日一贴】R从数据库中的表导入信息?
测试开头
测试结尾
摘要
利用R语言从外部数据库的表中导入信息。
【R语言】致力于传播R知识,包括【R每日一帖】、【R书籍推荐】、【R案例分享】,【R那些事】和【R微课】栏目。在这大数据时代里,从数据中找出价值,既是机遇又是挑战。R语言可以帮助我们获取数据、处理数据、分析数据、展示数据和理解数据,以进行数据化决策!
问题描述:有时候,我们很多信息放在外部的数据库的表里面,比方说我们常用的数据库MySQL,SQLServer,Oracle等。如何从这些数据库下的表中导入数据呢?
解决方案:R提供了两种方法来处理,方法一,基于RODBC,利用各个数据库所对应的ODBC数据源来导入相应数据库下面的表里面的信息。方法二,基于R语言对于每个数据库所提供的接口来获取表里面的信息,例如与MySQL数据库对应的RMySQL包。注意,这些包都是R扩展包,因而在使用之前都需要先安装。
举例说明:
> #方法一:ODBC包来实现从数据库中导入表信息
> #第一步:建立好ODBC数据源
> #第二步:加载RODBC包
> library(RODBC)
> #建立连接
> myconn <- odbcConnect("mysql", uid = "root", pwd="root")
> mydf <- sqlQuery(myconn, "select * from score")
> mydf
id name chinese math english
1 1 张三 90 88.5 76.5
2 2 张四 96 90.5 88.5
> close(myconn)
> #方法二:数据库相应接口法,MySQL的R接口是RMySQL这个包
> #第一步:安装RMySQL包
> #第二步:加载RMySQL包
> library(RMySQL)
> #建立连接
> con <- dbConnect(MySQL(), user="root", password = "root", host = "localhost", dbname="student")
> #导入感兴趣的表的信息
> mydataframe <- dbReadTable(conn = con, name = "score")
Warning messages:
1: In .local(conn, statement, ...) :
Decimal MySQL column 2 imported as numeric
2: In .local(conn, statement, ...) :
Decimal MySQL column 3 imported as numeric
3: In .local(conn, statement, ...) :
Decimal MySQL column 4 imported as numeric
> mydataframe
id name chinese math english
1 0001 张三 90 88.5 76.5
2 0002 张四 96 90.5 88.5
> dbDisconnect(con)
[1] TRUE
说明:关于ODBC数据源怎么设置,以及这个代码的详细讲解内容可以收看【R微课】(http://www.ppvke.com/10396.html)第三课R数据导入和导出的第四节内容。
【想一想】
1 为什么要熟练R语言从数据库的表中导入信息呢?
【做一做】
1 实战上述实例,体会如何成功地从数据库的表中导入数据?
◆互动交流
我是陆勤,微信号:wangluqing360,你们在R路上的朋友,一起欣赏R路上的风景。
大数据R语言群:342699237,大数据学习平台:www.ppvke.com,欢迎朋友们加入,共建最好的R社区。欢迎读者朋友们撰稿深度挖掘,回复消息给我留言或者邮件至1181906473@qq.com。
◆如何查看更多好文章
查看【历史记录】
请关注“恒诺新知”微信公众号,感谢“R语言“,”数据那些事儿“,”老俊俊的生信笔记“,”冷🈚️思“,“珞珈R”,“生信星球”的支持!