这篇文章只是记录个人理解,有时间会写第五章EDA(探索性分析部分)
概述
dplyr包在r语言中是用来整理数据集,以便数据更容易处理。
dplyr中有5个核心函数,分别是
按值筛选观测 filter()
对行重新排序 arrange()
按名称选取变量 select()
创建新变量 mutate()
将多个值总结为一个摘要统计量 summarize()
还有个改变作用范围的函数group_by()
一、filter()按值筛选
1、按指定条件筛选
library(dplyr)
library(nycflights13)
df <- nycflights13::flights
#筛选1月的航班信息
filter(df, month == 1)
加入逻辑运算符
#筛选1月或2月的航班信息
filter(df, month == 1|month == 2)
使用 %in%
#筛选1月或2月的航班信息
filter(df, month %in% c(1, 2))
2、处理缺失值
NA代表未知的值,当数据处理遇到NA,往往结果也会是NA
#提取month变量中缺失值
filter(df, is.na(month))
#提取month变量中非缺失的数据
filter(df, !is.na(month))
3.2.4 练习题
(1) 找出满足以下条件的所有航班。
a. 到达时间延误 2 小时或更多的航班。
library(tidyverse)
library(nycflights13)
nycflights13::flights
filter(flights, arr_delay >= 120)
b. 飞往休斯顿(IAH 机场或 HOU 机场)的航班。
filter(flights, dest %in% c('IAH', 'HOU'))
c. 由联合航空United、美利坚航空American或三角洲航空Delta运营的航班。
filter(flights, carrier %in% c('UA', 'AA', 'DL'))
d. 夏季(7 月、 8 月和 9 月)出发的航班。
filter(df, month %in% c(7, 8, 9))
e. 到达时间延误超过 2 小时,但出发时间没有延误的航班。
filter(flights, arr_delay >= 120 & dep_delay <= 0)
f. 延误至少 1 小时,但飞行过程弥补回 30 分钟的航班。
filter(flights, dep_delay >= 60 & dep_delay - arr_delay > 30)
g. 出发时间在午夜和早上 6 点之间(包括 0 点和 6 点)的航班。
根据帮助文档