作者 | 二缺叶枫

来源 | R友舍

对于数据分析人员而言,R语言基本能够支持数据分析过程中的绝大部分需求。但对于习惯使用SQL语句处理数据的数据分析师,似乎更愿意将数据查询过程放在数据库中实现。sqldf包的出现,对这部分分析师来说绝对算是一个神作,因为它可以实现在R语言中使用SQL语句对data.frame进行查询操作。

目录:

       1. sqldf介绍

       2.sqldf包安装

       2.sqldf包的使用

sqldf包介绍

sqldf包是用于在R语言环境中,对data.frame格式的数据使用SQL进行查询处理的R包,能够使使用者能够方便的操作data.frame数据。使用者可以只根据数据框的名词进行SQL查询。同时还支持使用者直接利用sqldf包连接数据库,执行SQL语句,并将结果回到R语言中。总而言之,sqldf包对数据库的数据查询与R语言的数据整合起到了很好的衔接作用。

sqldf包的安装

sqldf包托管在cran上,因此可以使用R语言标准的安装语句进行sqldf的安装。

安装环境:MAC OS

sqldf包的安装依赖于gsubfn包、 proto包, RSQLite包,因此在安装sqldf包的过程中,系统会自动安装相关依赖包。

install.packages("sqldf")

当上述命令执行完毕,表面sqldf包已经安装完成,此时可以使用library(sqldf)函数调用sqldf包。

library(sqldf)

看看sqldf包的版本

packageVersion("sqldf")

[1] ‘0.4.10’

sqldf包的使用

1.简单查询

以iris数据集为例,使用sqldf包进行简单的查询

head(iris)

Sepal.Length Sepal.Width Petal.Length Petal.Width Species

1          5.1         3.5          1.4         0.2  setosa

2          4.9         3.0          1.4         0.2  setosa

3          4.7         3.2          1.3         0.2  setosa

4          4.6         3.1          1.5         0.2  setosa

5          5.0         3.6          1.4         0.2  setosa

6          5.4         3.9          1.7         0.4  setosa

#使用sqldf函数进行SQL查询

sqldf('select * from iris limit 5')

Sepal.Length Sepal.Width Petal.Length Petal.Width Species

1          5.1         3.5          1.4         0.2  setosa

2          4.9         3.0          1.4         0.2  setosa

3          4.7         3.2          1.3         0.2  setosa

4          4.6         3.1          1.5         0.2  setosa

5          5.0         3.6          1.4         0.2  setosa

#使用sqldf函数进行条件查询

sqldf("select * from iris where Species == 'setosa' limit 10")

Sepal.Length Sepal.Width Petal.Length Petal.Width Species

1           5.1         3.5          1.4         0.2  setosa

2           4.9         3.0          1.4         0.2  setosa

3           4.7         3.2          1.3         0.2  setosa

4           4.6         3.1          1.5         0.2  setosa

5           5.0         3.6          1.4         0.2  setosa

6           5.4         3.9          1.7         0.4  setosa

7           4.6         3.4          1.4         0.3  setosa

8           5.0         3.4          1.5         0.2  setosa

9           4.4         2.9          1.4         0.2  setosa

10          4.9         3.1          1.5         0.1  setosa

#使用sqldf更新数据

sqldf(c("update iris set Species = 'test' where Species == 'setosa' ", "select * from main.iris limit 10"))

Sepal.Length Sepal.Width Petal.Length Petal.Width Species

1           5.1         3.5          1.4         0.2    test

2           4.9         3.0          1.4         0.2    test

3           4.7         3.2          1.3         0.2    test

4           4.6         3.1          1.5         0.2    test

5           5.0         3.6          1.4         0.2    test

6           5.4         3.9          1.7         0.4    test

7           4.6         3.4          1.4         0.3    test

8           5.0         3.4          1.5         0.2    test

9           4.4         2.9          1.4         0.2    test

10          4.9         3.1          1.5         0.1    test

使用sqldf远程连接数据库操作

首先加载RMySQL包

library(RMySQL)

sqldf("select * from t_data",dbname="test",drv="MySQL",

user="root",password="",host="127.0.0.1,port=3306)

通过注明mysql账户信息,用户可以直接使用sqldf包连接数据库,并执行SQL查询语句,同时返回结果数据框。

注意:sqldf包默认使用SQLite语言,当需要调整时,则可以通过改变drv参数来实现。

更多资料见:https://github.com/ggrothendieck/sqldf

  • 最担心的事情终于发生了,APP已经可以一键“脱掉”你的衣服了

  • 我造的假我自己打,Adobe推出“反PS”

  • 李彦宏被泼水,是“多数人的暴力”还是“群众的宣泄”

sqldf包:让SQL语句在R语言中执行相关推荐

  1. python执行oracle的sql语句_在oracledb中执行SQL脚本一次执行一条语句

    假设我有一个sql脚本,如下所示:--split statement 1 ALTER TABLE abs ADD (make VARCHAR2(2 byte), model varCHAR2(12 B ...

  2. 用r语言画出y = ax^2 + bx + c,R语言中如何使用最小二乘法

    这里只是介绍下R语言中如何使用最小二乘法解决一次函数的线性回归问题. 代码如下: > x > y > lsfit(x,y) 结果如下: $coefficients Intercept ...

  3. R语言使用sqldf包按照SQL语法操作dataframe数据(Using SQL statements to manipulate data frames)

    R语言使用sqldf包按照SQL语法操作dataframe数据(Using SQL statements to manipulate data frames) 目录

  4. java 调用r语言包传参数_Java与R语言的配置,调用

    我是最近才接触到了R语言,所以用起来有很多的问题,之前只是想单纯想用java调用到R语言中的一些东西,没有想到这个事情并不是想象的那么简单的.好了,闲话不多说,下面我来说说我在运用R的时候遇上的问题吧 ...

  5. R语言中的数据处理包dplyr、tidyr笔记

    R语言中的数据处理包dplyr.tidyr笔记 dplyr包是Hadley Wickham的新作,主要用于数据清洗和整理,该包专注dataframe数据格式,从而大幅提高了数据处理速度,并且提供了与其 ...

  6. r语言中对向量求条件语句_R中的条件语句

    r语言中对向量求条件语句 To advance with programming, we need to be able to control the flow of the program exec ...

  7. R语言中最强的神经网络包RSNNS

    转载自:http://www.dataguru.cn/article-1470-1.html R语言中已经有许多用于神经网络的package.例如nnet.AMORE以及neuralnet,nnet提 ...

  8. r语言中的或怎么表示什么不同_R语言中灵活运用if实现根据不同条件执行不同的语句...

    原标题:R语言中灵活运用if实现根据不同条件执行不同的语句 在程序语言中,if一般属于一种分支结构,即根据某个条件执行相关的语句,在R中也不例外.同时,if语句与else配合可以运用到多种条件递归判断 ...

  9. R语言中的管道操作——magrittr包

    R语言中的管道操作--magrittr包 一.项目环境 开发工具:RStudio R:3.5.2 相关包:magritter 二.数据准备以及问题阐述 这次要解决的问题是如何使用提取数据框中所有包含缺 ...

  10. r语言中的或怎么表示什么不同_R经典入门 之 R语言的基本原理与概念 -- 200430

    一.基本原理 R是一种解释型语言,输入的命令可以直接被执行,不同于C等编译语言需要构成完整的程序才能运行. R的语法非常简单和直观.合法的R函数总是带有圆括号的形式,即使括号内没有内容(如,ls()) ...

最新文章

  1. 备忘录模式(Memento)的原版与简化版实现
  2. Matlab 整数线性规划问题模型代码
  3. ITCAST-C# 委托
  4. 通过Ajax方式上传文件(input file),使用FormData进行Ajax请求
  5. java类与对象 演练 客户姓名添加与查看
  6. Linux删除乱码文件
  7. Updating Homebrew... ...长时间卡住的问题
  8. 使用Reloader实现更新configmap后自动重启pod
  9. Java中的双冒号::是什么玩意?有这个语法?
  10. 20k超声波电路原理图讲解_超声波液位开关和液位开关的区别,它们的工作原理分别是什么?...
  11. Ubuntu二进制编辑器Hexdump
  12. Stata:产生唯一数据编码的三种方法
  13. 清理android根目录垃圾,安卓清理君——清除手机垃圾
  14. C++ emplace_back
  15. C# 插入或删除word分页符
  16. dataframe删除原来索引,使新索引从0开始
  17. 《李航 统计学习方法》学习笔记——第八章提升方法
  18. Excel转格式数字转人民币大写
  19. 19-Linux计划任务
  20. C语言|从入门到尽量别放弃

热门文章

  1. 又一程序员删库跑路,只不过他没跑掉,还被抓了~
  2. 并发减库存,怎么保证不超卖?
  3. 开源的IDE?还真是头一次见!Github标星30.7K!值得拥有!
  4. 多出去面试,好处多多!
  5. Java到底如何更优雅的处理空值?
  6. 成为一名优秀架构师有标准吗?这12点或许能带给你一些启发
  7. 如何打造高可伸缩的移动电商架构?
  8. 坑系列 --- 重构过程中的过度设计
  9. IT人的春节对联集锦
  10. “产品助理最重要的工作是 Android 版本的设计与测试”