dplyr包
请思考:
1 dplyr包用来做什么?
2 您使用dplyr包那些函数?
一 dplyr包是什么?
-
数据探索和数据转换的利器
-
编码直观和易于阅读
-
数据框操作与处理高效和便捷
二 安装和加载所需包
代码
1library(pacman) # R包管理器
2p_load(dplyr, hflights) # 安装和加载所需R包
hflights:2011年从休斯顿起飞的国内商业航班数据集。
三 数据理解
1 探索数据
代码
1# 探索数据集
2data("hflights")
3hflights %>%
4 head()
2 美化数据框展示
代码
1# 利用tb_df函数美化数据框展示
2flights <- tbl_df(hflights)
3flights %>%
4 head()
四 单表(数据框)的基本操作
-
filter:获取子样本集
-
select:获取子变量集
-
arrange:排序操作
-
mutate:添加新的变量或者列
-
summarise | summarize:分组的聚合操作或者统计
1 filter操作
代码
1flights %>%
2 filter(Month == 1 & DayofMonth == 1)
请思考:
1 基本的R代码如何实现上述操作?
2 请执行如下代码,查看结果。
1flights %>%
2 filter(Month == 1, DayofMonth == 1)
3head(filter(flights, UniqueCarrier == 'AA' | UniqueCarrier == 'UA'), 2)
4tail(filter(flights, UniqueCarrier == 'AA' | UniqueCarrier == 'UA'), 2)
5head(filter(flights, UniqueCarrier %in% c('AA', 'UA')), 2)
2 select操作
代码
1print(select(flights, DepTime, ArrTime, FlightNum), n = 2)
请思考:
1 基本的R代码如何实现上述操作?
2 请执行如下代码,查看结果
1head(select(flights, Year:DayofMonth, contains('Taxi'), contains('Delay')))
3 filter和select一起操作
代码
1# filter 和 select
2flights %>%
3 select(UniqueCarrier, DepDelay) %>%
4 filter(DepDelay > 60) %>%
5 head(n = 2)
4 arrange操作
代码
1# arrange操作
2flights %>%
3 select(UniqueCarrier, DepDelay) %>%
4 arrange(DepDelay) %>%
5 head()
请思考:
1 基本的R代码如何实现上述操作?
5 mutate操作
代码
1# mutate操作
2flights %>%
3 select(Distance, AirTime) %>%
4 mutate(Speed = Distance/AirTime * 60) %>%
5 head()
请思考:
1 基本的R代码如何实现上述操作?
6 summarise和group_by操作
代码
1# summarise和group_by操作
2flights %>%
3 group_by(Dest) %>%
4 summarise(avg_delay = mean(ArrDelay, na.rm = TRUE)) %>%
5 head()
请思考:
1 基本的R代码如何实现上述操作?
2 请执行如下代码,查看结果
1flights %>%
2 group_by(UniqueCarrier) %>%
3 summarise_each(list(mean), Cancelled, Diverted) %>%
4 head()
5flights %>%
6 group_by(UniqueCarrier) %>%
7 summarise_each(funs(min(., na.rm = TRUE), max(., na.rm = TRUE)), matches('Delay')) %>%
8 head()
五 多表的操作
总结
本文介绍dplyr的常用操作,可以有助您更加有效地做数据探索和操作。
您在阅读中有什么问题,请留言。若是觉得有用,请您点赞和分享给其他朋友,感谢支持和分享。
公众号推荐:
数据人才(ID:datarencai)
(一个帮助数据人才找工作,
帮助数据公司招人才的公众号,
也分享数据人学习和生活的有趣事情。)
请关注“恒诺新知”微信公众号,感谢“R语言“,”数据那些事儿“,”老俊俊的生信笔记“,”冷🈚️思“,“珞珈R”,“生信星球”的支持!