R语言中使用SQL数据库干货分享

数据分析经常需要从外部获得数据。很多情况下数据存放在关系型数据库中。一般我们可以用SQL来提取需要的数据,存为文本再由R来读入。这种方式结合了数据库的储存能力和R的分析能力,速度也非常快。但是如果要形成一套可重复性的自动工作流程,则可以将R与外部数据库连接,直接在R中操作数据库,并生成最终结果,这也是一种可行的方法。

  在R中连接数据库需要安装其它的扩展包,根据连接方式不同我们有两种选择:一种是ODBC方式,需要安装RODBC包并安装ODBC驱动。另一种是DBI方式,可以根据已经安装的数据库类型来安装相应的驱动。因为后者保留了各数据库原本的特性,所以个人比较偏好用DBI连接方式。有下面这几种主要的包提供了DBI连接:RMySQL,RSQLite,ROracle,RPostgreSQL。由名字看得出它们分别对应了几种主流的数据库。

  这几种数据库中SQLite是一个轻量级的数据库,完全免费,使用方便,不需要安装,无须任何配置,也不需要管理员。如果只需要本地单机操作,用它来配合R来存取数据是非常方便的。下面来看看R中操作SQLite数据库的示例。

  从零开始:

  1、下载SQLite,它是一个单独的执行文件,并且是在命令行下操作。如果不习惯可以安装sqlitebrowser之类的GUI。先把它放到一个文件夹中,例如sqlite。

  2、在sqlite中执行sql脚本,建立一个数据库。将脚本文件放到同一个文件夹中,然后执行下面的。现在文件夹中应该有train.db这个数据库文件了。

  .read Scheme.sql

  .read Data.sql

  .backup train.db

  3、在R中安装RSQlite包

  install.packages('RSQlite')

  4、加载RSQlite包,建立连接后用SQL读取数据

  library(RSQLite)

  # 建立连接,注意数据库类型和文件地址

  con <- dbConnect('SQLite', dbname='d:/sqlite/train.db')

  # 观察数据库中有三个数据表格

  dbListTables(con)

  # 观察其中一个表的字段

  dbListFields(con, 'Apply')

  # 写一段SQL语句,来选取需要的数据

  sql <- "select sName, GPA, decision ,cName

  from Student, Apply

  where Student.sID = Apply.sID

  and sizeHS < 1000 and major = 'CS' and cName = 'Stanford'"

  # 将选取的数据存入到data中,同时显示出来

  (data <- dbGetQuery(con, sql))

  # 关闭数据库连接

  dbDisconnect(con)

  R中还有一个有趣的sqldf包,它可以让你用SQL来操作dataframe,这种功能能让会R的人能练习SQL,会SQL的人能练习R。最后介绍一个非常好的数据库视频教程和一本教材,对于初学SQL的人会非常有帮助。

时间: 2024-10-30 13:16:56

R语言中使用SQL数据库干货分享的相关文章

《R语言编程艺术》——1.4 R语言中一些重要的数据结构

1.4 R语言中一些重要的数据结构 R有多种数据结构.本节将简单介绍几种常用的数据结构,使读者在深入细节之前先对R语言有个大概的认识.这样,读者至少可以开始尝试一些很有意义的例子,即使这些例子背后更多的细节还需要过一段时间才能揭晓.1.4.1 向量,R语言中的战斗机 向量类型是R语言的核心.很难想象R语言代码或者R交互式会话可以一点都不涉及向量. 向量的元素必须属于某种"模式"(mode),或者说是数据类型.一个向量可以由三个字符串组成(字符模式),或者由三个整数元素组成(整数模式),

c++-C++中链接SQL数据库的方法

问题描述 C++中链接SQL数据库的方法 求大神能不能分享一下比较好的C++代码中链接SQL数据库的资料, 真的很想学习这一块的知识.跪谢!!! 解决方案 http://download.csdn.net/download/miao420906189/1006139http://www.codefans.net/down/25108.shtml 完整的一本书,足够详细了吧. 解决方案二: C++连接SQL数据库 解决方案三: sql 链接数据库 执行方法 解决方案四: http://www.cn

C语言中嵌入式SQL语句

原文:[转载]C语言中嵌入式SQL语句 http://blog.csdn.net/cnlht/archive/2007/12/12/1930960.aspx原文地址 实验内容: 掌握SQL Server 2000的预编译程序NSQLPREP.EXE的使用(以课本例题1进行调试): 实验步骤: 一.数据库环境配置 1.创建xuesheng数据库,建立student表等: 2.关闭sql server 2000服务管理器: 3.将devtools文件夹拷贝到:C:\Program Files\Mic

R语言中如何删除数据对象

  R语言中如何删除数据对象 首先需要打开R studio,新建文件脚本,[File]--[New Script]. 然后会发现,global environment这里之前代码留下的数据集非常麻烦,清除方法如下: 首先,写入 rm(A),即可清除相应object的数据(rm=remove).对比即可发现,之前的object已经被清除了. 想要一了百了,全部清除的时候,则输入代码:rm(list=ls()). 这段代码的含义是:清除全部对象,即用ls()列出全部对象名,用一个list将全部对象装

《R的极客理想——高级开发篇 A》一一2.4 R语言中的遗传算法

2.4 R语言中的遗传算法 问题 如何用R语言进行遗传算法的计算? 引言 人类总是在生活中摸索规律,把规律总结为经验,再把经验传给后人,让后人发现更多的规律,每一次知识的传递都是一次进化的过程,最终形成了人类的智慧.自然界的规律,让人类适者生存地活了下来,聪明的科学家又把生物进化的规律,总结成遗传算法,扩展到了更广的领域中.本节将带你走进遗传算法的世界.2.4.1 遗传算法介绍 遗传算法是一种解决最优化的搜索算法,是进化算法的一种.进化算法最初借鉴了达尔文的进化论和孟德尔的遗传学说,从生物进化的

r语言-R语言中关于坐标轴的一些疑问

问题描述 R语言中关于坐标轴的一些疑问 本人初学者,正在根据一些数据用R重现图,但是现在碰到了这样的坐标轴 查了很多资料都没有找到答案,请问用R可以实现这样的坐标轴吗?要用什么函数呢?绘图我都是用plot的,求大神指教 解决方案 http://bbs.pinggu.org/thread-3566469-1-1.html 解决方案二: R语言 备忘录R语言-坐标轴画法要旨

《R的极客理想——高级开发篇 A》一一1.2 R语言中的数学计算

1.2 R语言中的数学计算 问题 如何用R语言进行数学计算? 引言 R语言是统计语言,生来就对数学有良好的支持,用R语言做数学的计算题特别方便.如果计算器中能嵌入R语言的计算函数,那么绝对是一种高科技产品.我真的把R语言当成我的计算器了!1.2.1 基本计算 R语言对数学计算有着非常好的支持,本节将完整介绍初等数学中的各种计算操作. 本节的系统环境是: Windows 7 64bit R: 3.1.1 x86_64-w64-mingw32/x64 (64-bit) 用R语言实现四则运算操作,包括

详解ios中的SQL数据库文件加密 (使用sqlcipher)_IOS

今天本想写一片 GAE+goAgent+SwitchySharp 的指南的!但是突然翻出了前段时间写的关于iOS中的SQL数据库文件加密的代码,于是乎决定今天就先讲讲这个!- 那么goAgent将放在周末,后续的文章中除了文件加密,还有传输数据加密,感兴趣的童鞋 敬请留意. 言归正传,sql的文件加密,我们首先要用到一个库,它就是大名鼎鼎的Sqlcipher,  奉上连接:http://sqlcipher.NET,在ios里 我们需要看的文档是这一篇http://sqlcipher.Net/io

sql server-MFC语言中类似SQL server服务管理器里的交通灯控件?

问题描述 MFC语言中类似SQL server服务管理器里的交通灯控件? 有红.黄.绿三个颜色,可以通过属性控制,现在用checkbox模仿的,不太好看,谢谢 解决方案 http://www.pudn.com/downloads527/sourcecode/windows/detail2184472.html 解决方案二: 用第三方的checkbox界面库