第一部分探索--第3章 使用dplyr进行数据转换

2019-12-17  本文已影响0人  Hannahhao

3.1 简介

dplyr: 创建新变量或者摘要统计量,或者对变量重命名或排序。

3.1.1 准备工作

加载dplyr和数据包 加载dplyrh和nycflight13数据包

3.1.2 nycflight13

2013年从纽约市出发的航班信息336 776次航班
?flights查看其说明文档

flights

3.1.3 dplyr基础

5个核心函数+group_by()

3.2 使用filter()筛选行

基础知识

举例:筛选出1月1日的所有航班

3.2.1 比较运算符

比较运算符:>, >=, <, <=, !=(不等于), ==(等于)
near() 近似值用于浮点数

什么是浮点数
浮点数就是小数点可以任意浮动的数字。

在计算机的机器语言中,只有二进制,机器语言只能识别0和1。所以,计算机也是不可能存储小数的,所以需要有另一种变通的存储方案。这种方案就是指数方案:

3.2.2 逻辑运算符

3.2.3 缺失值

3.3 使用arrange()排列行

3.4 使用select()选择列

3.5 使用mutate()添加新变量

基础知识

> flights_sml <- select(flights, year:day, ends_with("delay"),distance,air_time)
> mutate(flights_sml, gain=arr_delay-dep_delay, speed=distance/air_time*60)

3.5.1 常用创建函数

3.6 使用summarize()进行分组摘要

summarize: 将数据框折叠成一行。



summarize()+group_by()

举例:对按日期分组的一个数据框应用summarize,就可以得到每日平均延误时间

3.6.1 使用管道组合多种操作

研究每个目的地的距离和平均延误时间之间的关系。

> by_dest <- group_by(flights, dest)
> delay <- summarize(by_dest,count=n(), dist=mean(distance, na.rm=TRUE),delay=mean(arr_delay, na.rm = TRUE))
> delay <- filter(delay, count>20, dest!="HNL")
> ggplot(data = delay, mapping = aes(x=dist, y=delay))+
+ geom_point(aes(size=count),alpha=1/3)+
+ geom_smooth(se=FALSE)
`geom_smooth()` using method = 'loess' and formula 'y ~ x'

na.rm=remove NA

另一种方法是使用管道“%>%。%>%=然后”

> delays <- flights %>%
+ group_by(dest)%>%
+ summarize(count=n(),dist=mean(distance, na.rm=TRUE),delay=mean(arr_delay, na.rm = TRUE))%>%
+ filter(count>20,dest!="HNL")

3.6.2 缺失值

na.rm参数就是在计算前除去缺失值
示列



缺失值表示取消的航班,可以先去除取消的航班来解决缺失值问题。


3.6.3 计数

一个计数(n())或非缺失值的计数(sum(!is.na())
举例:查看具有最长平均延误时间的飞机(通过机尾编号进行识别)

> delays <- not_cancelled%>%
+ group_by(tailnum) %>% 
+ summarize(delay=mean(arr_delay))
> ggplot(data=delays, mapping = aes(x=delay))+
+ geom_freqpoly(binwidth=10)

航班数量和平均延误时间的散点图

+ group_by(tailnum) %>%
+ summarise(delay=mean(arr_delay, na.rm = TRUE),n=n())
> ggplot(data = delays, mapping = aes(x=n,y=delay))+
+ geom_point(alpha=1/10)
+ filter(n>25) %>% 
+ ggplot(mapping = aes(x=n,y=delay))+
+ geom_point(alpha=1/10)

3.6.4 常用的摘要函数

3.6.5 按多个变量分组: group_by()

循序渐进地进行摘要分析:

3.6.6 取消分组:ungroup()

3.6.7 练习

3.7 分组新变量(和筛选器)

总结

这章学下来感觉还是有点难度,要懂点数据统计知识,逻辑性要好, 对数据把握好才能进行对的命令运行。

上一篇下一篇

猜你喜欢

热点阅读