dplyr
The d is for dataframes, the plyr is to evoke pliers. Pronounce however you like.
dplyr包可用于处理 R 内部或者外部的结构化数据,相较于plyr包,dplyr包专注接受 data.frame 对象,大幅提高了速度,并且提供了更稳健的数据库接口。同时,dplyr包可用于操作Spark的dataframe。
官网:https://cran.r-project.org/web/packages/dplyr/index.html
包中的函数查询:https://cran.r-project.org/web/packages/dplyr/dplyr.pdf
安装dplyr包
install.packages("dplyr")
使用dplyr包
library("dplyr")
dplyr包中的重要函数
-- 根据值选择相应的行 filter()
-- 对行重新排序 arrange()
-- 根据列名选择相应的列 select()
-- 根据已知的列创建新的列 mutate()
-- 将许多值塌缩为单个描述性汇总 summarize()
-- 分组 group_by() 这些函数都可以通过 group_by() 衔接起来,该函数改变上述每个函数的作用域,从操作整个数据集到按组与组进行操作。
使用 nycflights13包中的数据集
install.packages("nycflights13")
library("nycflights13")
使用 filter() 函数过滤
filter(flights, month == 1, day == 1) # 过滤数据
filter(flights, month == 11 | month == 12) # 逻辑或
filter(flights, month %in% c(11, 12)) # %in% 判断是否存在;该语句可以替换上面的语句

使用 arrange() 函数对行重新排序
arrange(flights, desc(arr_delay)) # 按照列 arr_delay 进行降序排列
使用 select() 函数选择指定列
select(flights, year, month, day) # 选择列 year month day
select(flights, year:day) # 选择 year 和 day 之间的所有列
select(flights, -(year:day)) # 反向选择 选择 year 和 day 之间的所有列以外的所有列
select(flights, starts_with("yea")) # 选择列名以 "yea" 开头的列
select(flights, ends_with("ear")) # 选择列名以 "ear" 结尾的列
select(flights, contains("ea")) # 选择列名中包含 "ea" 的列
select(flights, matches("ea")) # 使用正则表达式 选择列名中匹配到 "ea" 的列
select(flights, num_range("x", 1:3)) # 使用正则表达式 选择列名中匹配到 "x1" "x2" "x3" 的列
select(flights, time_hour, air_time, everything()) # 将 time_hour列 和 air_time列 提到前面
查看 select() 函数的更多内容 ?select()
rename(flights, tail_num = tailnum) # 将列名 tailnum 改为 tail_num
mutate(flights_sml, gain = arr_delay - dep_delay, speed = distance / air_time * 60 ) # 在原数据集flights_sml的基础上添加两列 gain, speed 产生一个新的数据集,原数据集不变。
transmute(flights, gain = arr_delay - dep_delay, hours = air_time / 60, gain_per_hour = gain / hours) # 只生成新的3列 gain, hours, gain_per_hour,输出结果中没有元数据集
transmute(flights, dep_time, hour = dep_time %/% 100, minute = dep_time %% 100) # %/% 整除运算; %% 取余运算
使用 summarise() 函数对数据进行描述性汇总 结果只输出指定的类
常与 group_by() 一起使用 从而实现将数据分组后再统计
summarize(flights, delay = mean(dep_delay, na.rm = TRUE)) #
by_day <- group_by(flights, year, month, day)
summarize(by_day, delay = mean(dep_delay, na.rm = TRUE))
not_cancelled <- flights %>% filter(!is.na(dep_delay), !is.na(arr_delay)) # 使用管道操作
not_cancelled %>% group_by(year, month, day) %>% summarize(mean = mean(dep_delay)) # 使用管道操作
delays %>% filter(n > 25) %>% ggplot(mapping = aes(x = n, y = delay)) + geom_point(alpha = 1/10)
batting <- as_tibble(Lahman::Batting)
batting %>% group_by(playerID) %>% summarize(ba = sum(H, na.rm = TRUE) / sum(AB, na.rm = TRUE), ab = sum(AB, na.rm = TRUE)) %>% filter(ab > 100) %>% ggplot(mapping = aes(x = ab, y = ba)) + geom_point() + geom_smooth(se = FALSE) # 分组 > 汇总 > 过滤 > 绘图
not_cancelled %>% group_by(dest) %>% summarize(carriers = n_distinct(carrier)) %>% arrange(desc(carriers)) # 分组 > 汇总 > 降序排列
not_cancelled %>% group_by(year, month, day) %>% summarize(avg_delay1 = mean(arr_delay), avg_delay2 = mean(arr_delay[arr_delay > 0])) # 分组 > 汇总
not_cancelled %>% group_by(dest) %>% summarize(distance_sd = sd(distance)) %>% arrange(desc(distance_sd)) # 分组 > 汇总 > 降序排列
not_cancelled %>% group_by(year, month, day) %>% summarize( first = min(dep_time), last = max(dep_time)) # 分组 > 汇总(取每一组的最大值和最小值)
dplyr的更多相关文章
- R语言数据处理包dplyr、tidyr笔记
dplyr包是Hadley Wickham的新作,主要用于数据清洗和整理,该包专注dataframe数据格式,从而大幅提高了数据处理速度,并且提供了与其它数据库的接口:tidyr包的作者是Hadley ...
- R语言数据处理利器——dplyr简介
dplyr是由Hadley Wickham主持开发和维护的一个主要针对数据框快速计算.整合的函数包,同时提供一些常用函数的高速写法以及几个开源数据库的连接.此包是plyr包的深化功能包,其名字中的字母 ...
- dplyr包--数据操作与清洗
1.简介 在我们数据分析的实际应用中,我们可能会花费大量的时间在数据清洗上,而如果使用 R 里面自带的一些函数(base 包的 transform 等),可能会觉得力不从心,或者不是很人性化.好在我们 ...
- dplyr 数据操作 常用函数(5)
继续来了解dplyr中的其他有用函数 1.sample() 目的是可以从一个数据框中,随机抽取一些行,然后组成新的数据框. sample_n(tbl, size, replace = FALSE, w ...
- dplyr 数据操作 常用函数(4)
接下来我们继续了解一些dplyr中的常用函数. 1.ranking 以下各个函数可以实现对数据进行不同的排序 row_number(x) ntile(x, n) min_rank(x) dense_r ...
- dplyr 数据操作 常用函数(3)
接下了我们继续了解dplyr中有用的函数 1.if_else() if_else主要用于在数据做判断用 x<-data.frame(id=1:6, name=c("wang" ...
- dplyr 数据操作 常用函数(1)
上面介绍完dplyr中,几个主要的操作函数后,我们再进一步了解dplyr中那些函数可能我们会经常要用到. 这里主要根据dplyr包作者的书籍目录来把它列出来. 1.add_rownames 添加行名称 ...
- dplyr 数据操作 统计描述(summarise)
在R中,summary()是一个基础包中的重要统计描述函数,同样的在dplyr中summarise()函数也可以对数据进行统计描述. 不同的是summarise()更加的灵活多变,下面来看下summa ...
- dplyr 数据操作 列操作(select / mutate)
在R中,我们通常需要对数据列进行各种各样的操作,比如选取某一列.重命名某一列等. dplyr中的select函数子在数据列的操作上也同样表现了它的简洁性,而且各种操作眼花缭乱. select(.dat ...
- dplyr 数据操作 数据排序 (arrange)
在R中,我们在整理数据时,经常需要对数据排序,以便数据增强数据的可读性. 下面我们来看下dplyr中的,arrange函数 arrange(.data, ...) 跟filter()类似,arrang ...
随机推荐
- Django---Django中使用COOKIE和SESSION
Django---Django中使用COOKIE和SESSION 一丶Cookie cookie的由来 # HTTP协议是无状态的. # 无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请 ...
- Python进阶----多表查询(内连,左连,右连), 子查询(in,带比较运算符)
Python进阶----多表查询(内连,左连,右连), 子查询(in,带比较运算符) 一丶多表查询 多表连接查询的应用场景: 连接是关系数据库模型的主要特点,也是区别于其他 ...
- 2019-07-30 ThinkPHP文件上传
文件上传就是获取到待上传文件的临时路径,把它移动到服务器下的相应文件夹中. 文件上传,必须在表单中的form标签中写入:enctype="multipart/form-data" ...
- jQuery 前端复选框 全选 反选 下拉菜单联动
jQuery 页面中复选框全选.反选.下拉联动(级联) <!DOCTYPE html> <html lang="en"> <head> < ...
- JavaScript 之 RegExp 对象
RegExp 正则表达式对象 一.正则表达式 正则表达式:定义字符串的组成规则. 1.单个字符:[ ] 如:[a].[ab].[a-zA-Z0-9] 特殊符号代表特殊含义的单个字符: \d:单个数字字 ...
- XenCenter安装VM
XenServer是服务器"虚拟化系统".系统设置为Linux_x86-64即可安装XenServer 和VMware ESX/ESXi有点不同的是,XenServer 不能在Xe ...
- AR-运行自动开票主程序报错
问题: 在AR运行自动开票主程序时出现如下错误提示: 错误日志: raagsp()+ 当前的系统时间为 12-09-2014 07:23:58 raagsp()- 当前的系统时间为 12-09-201 ...
- Maven插件Jib配合Harbor生成Docker镜像
1 说明 Maven插件Jib暂不支持https的自签名,因此只能配置以Http的方式访问Harbor私有仓库 以下基于SpringBoot2.x进行配置 2 Maven配置 2.1 pom.xml中 ...
- Django 之 CBV
Django 中有两种编写方式,FBV 和 CBV,那么什么是 FBV,CBV 又是什么呢? 一.什么是 CBV FBV(function base views) 就是在视图里使用函数处理请求(常见) ...
- Hadoop-HA集群搭建-rehl7.4
Hadoop-HA集群搭建-rehl7.4 hadoop 无说明需要登录其它机器操作,都是在集群的HD-2-101上执行的命令. 所有安装包地址:百度网盘,提取码:24oy 1. 基础环境配置 1.1 ...