sqldf包:让SQL语句在R语言中执行
作者 | 二缺叶枫
来源 | 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语言中执行相关推荐
- python执行oracle的sql语句_在oracledb中执行SQL脚本一次执行一条语句
假设我有一个sql脚本,如下所示:--split statement 1 ALTER TABLE abs ADD (make VARCHAR2(2 byte), model varCHAR2(12 B ...
- 用r语言画出y = ax^2 + bx + c,R语言中如何使用最小二乘法
这里只是介绍下R语言中如何使用最小二乘法解决一次函数的线性回归问题. 代码如下: > x > y > lsfit(x,y) 结果如下: $coefficients Intercept ...
- R语言使用sqldf包按照SQL语法操作dataframe数据(Using SQL statements to manipulate data frames)
R语言使用sqldf包按照SQL语法操作dataframe数据(Using SQL statements to manipulate data frames) 目录
- java 调用r语言包传参数_Java与R语言的配置,调用
我是最近才接触到了R语言,所以用起来有很多的问题,之前只是想单纯想用java调用到R语言中的一些东西,没有想到这个事情并不是想象的那么简单的.好了,闲话不多说,下面我来说说我在运用R的时候遇上的问题吧 ...
- R语言中的数据处理包dplyr、tidyr笔记
R语言中的数据处理包dplyr.tidyr笔记 dplyr包是Hadley Wickham的新作,主要用于数据清洗和整理,该包专注dataframe数据格式,从而大幅提高了数据处理速度,并且提供了与其 ...
- r语言中对向量求条件语句_R中的条件语句
r语言中对向量求条件语句 To advance with programming, we need to be able to control the flow of the program exec ...
- R语言中最强的神经网络包RSNNS
转载自:http://www.dataguru.cn/article-1470-1.html R语言中已经有许多用于神经网络的package.例如nnet.AMORE以及neuralnet,nnet提 ...
- r语言中的或怎么表示什么不同_R语言中灵活运用if实现根据不同条件执行不同的语句...
原标题:R语言中灵活运用if实现根据不同条件执行不同的语句 在程序语言中,if一般属于一种分支结构,即根据某个条件执行相关的语句,在R中也不例外.同时,if语句与else配合可以运用到多种条件递归判断 ...
- R语言中的管道操作——magrittr包
R语言中的管道操作--magrittr包 一.项目环境 开发工具:RStudio R:3.5.2 相关包:magritter 二.数据准备以及问题阐述 这次要解决的问题是如何使用提取数据框中所有包含缺 ...
- r语言中的或怎么表示什么不同_R经典入门 之 R语言的基本原理与概念 -- 200430
一.基本原理 R是一种解释型语言,输入的命令可以直接被执行,不同于C等编译语言需要构成完整的程序才能运行. R的语法非常简单和直观.合法的R函数总是带有圆括号的形式,即使括号内没有内容(如,ls()) ...
最新文章
- 备忘录模式(Memento)的原版与简化版实现
- Matlab 整数线性规划问题模型代码
- ITCAST-C# 委托
- 通过Ajax方式上传文件(input file),使用FormData进行Ajax请求
- java类与对象 演练 客户姓名添加与查看
- Linux删除乱码文件
- Updating Homebrew... ...长时间卡住的问题
- 使用Reloader实现更新configmap后自动重启pod
- Java中的双冒号::是什么玩意?有这个语法?
- 20k超声波电路原理图讲解_超声波液位开关和液位开关的区别,它们的工作原理分别是什么?...
- Ubuntu二进制编辑器Hexdump
- Stata:产生唯一数据编码的三种方法
- 清理android根目录垃圾,安卓清理君——清除手机垃圾
- C++ emplace_back
- C# 插入或删除word分页符
- dataframe删除原来索引,使新索引从0开始
- 《李航 统计学习方法》学习笔记——第八章提升方法
- Excel转格式数字转人民币大写
- 19-Linux计划任务
- C语言|从入门到尽量别放弃