R语言必学包之dplyr

最近上班途中必听的一首歌~

对于数据分析工作者来说,前期数据的清洗、处理及变换等占据了整个工作流程一大半的时间。因此,为了提高工作效率,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

最近状态不是很好(刷完了《非自然死亡》和《西部世界》),附一个广告看看~

健康本该如此

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180505G1B8F300?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券