最近上班途中必听的一首歌~
对于数据分析工作者来说,前期数据的清洗、处理及变换等占据了整个工作流程一大半的时间。因此,为了提高工作效率,R语言的dplyr、data.table及stringr包等都应运而生。之前用过dplyr包,查阅了这个包的官方文档及相关资料,总结一下常规用法。(其实,用什么工具并不重要,能够高效率完成任务,Excel都可以)
1
dplyr包基本介绍
dplyr包是由Hadley Wickham大神(plyr包、ggplot2包等作者)建立的,从官方文档说明了解到,这是一个专注dataframe对象的数据处理包,也是plyr包的升级版,处理速度及灵活性更快更好一点。
如果真的想要具体学习dplyr包的用法,建议看一下它的官方文档,我只是大概列举了一下它的所有语法及含义。
2
dplyr包常用操作
1、tbl对象
因为dplyr是用C语言开发,将数据框处理成tbl对象(tibble类型)会更加迅速。
2、select变量选择
选择数据框中某一列或者指定列的变量,如果想剔除某一列变量,加“-”,常与starts_with()、ends_with()、contains()、matches()、one_of()、num_range()等参数连用。
3、filter记录选择
选择数据框中某一行或指定行的记录。
4、arrange数据排序
根据选定的列变量进行排序(默认升序,desc降序)。
5、rename重命名变量
6、mutate/transmute数据变换或扩展
mutate将原有变量进行变换生成新变量,而transmute生成新变量同时将删除原有变量。
7、summarize数据聚合
summarize(summarise也行)可以和max()、min()、mean()、sum()等进行数据的汇总操作。
8、group_by数据分组
将数据按照指定变量进行分组汇总,可以与summarise结合使用。
9、sample_n数据抽样
可以指定数量或者频率进行抽样(sample_n()、sample_frac())。
10、join数据关联
将多个表进行连接操作,inner_join、left_join、right_join、full_join、semi_join(返回能够与y表匹配的所有x表的记录)、anti_join(返回不能与y表匹配的所有x表的记录)。
11、bind_rows数据合并
和rbind与cbind类似,按行合并或者列合并,即bind_rows与bind_cols。
12、distinct去重与set集合操作
intersect(x,y)(取x和y的交集)、union(取并集)、setdiff(取补集)。
13、if_else条件语句
if_else(condition,true,false,missing = NULL)与case_when(...~...)。
14、src_mysql连接数据库
我试了好几次用src_mysql连接数据库没有成功,不知道咋回事,后来选择选择安装“RODBC”包,进行数据操作。
3
dplyr包综合运用
%>%管道函数
将上一个函数的输出当做下一个函数的输入,省略中间步骤,美观简洁高效。通过管道操作连接符,对数据框进行基本的处理,比如分组--汇总--排序--打印。
可以看到, 用 dplyr 函数实现的代码都要简洁易读,正如作者所说:
如果你用了8小时进行数据清理和数据整理,而只用了2小时进行建模,那么很明显,你希望了解如何将数据清理和整理的时间尽可能缩短。 ——Hadley Wickham
本文参考链接:
https://cran.r-project.org/web/packages/dplyr/dplyr.pdf
https://blog.csdn.net/wltom1985/article/details/54973811
最近状态不是很好(刷完了《非自然死亡》和《西部世界》),附一个广告看看~
健康本该如此
- 发表于:
- 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据 《腾讯内容开放平台服务协议》 转载发布内容。
- 如有侵权,请联系 cloudcommunity@tencent.com 删除。