R与数据可视化系列如何使用dplyr进行数据清洗和变换
Posted 智汇医圈Plus
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R与数据可视化系列如何使用dplyr进行数据清洗和变换相关的知识,希望对你有一定的参考价值。
预告:应广大粉丝的要求,“R与数据可视化”专题除了继续沿着“你离R语言大神只有七步之遥”一文中提到的成长路线图前进外,会挑选一些科研论文中的Figure进行解读,并动手用R/Graphpad一步步重现。
如果你有好的论文中的Figure推荐,请在后台给我们留言哦!
另文末有福利哦,快去领取吧!
01
本系列上一期,我们讲了如何用R读入数据(详见文末链接),接下来,我们将介绍如何用dplyr帮助数据清洗和变换。在数据分析工作中,经常需要对原始的数据集进行清洗、整理以及变换。常用的数据整理与变换工作主要包括:选取特定变量、筛选满足条件的数据记录、排序选取的变量、加工处理原始变量并生成新的变量、分组汇总数据,比如计算各组的平均值等。
02
dplyr包是 R大神Hadley Wickham的杰作, 被称之为a grammar of data manipulation。Hadley将plyr 包中的ddply()等函数进一步强化,并以dataframe对象为媒介,大幅提高了数据处理效率和提供了更稳健的与其它数据库对象间交互的接口。
03
为了演示dplyr的数据处理,我们将使用一个公开数据集,来自于datasets R包中的airquality数据,其包含了纽约市1973年5月-1973年9月的空气质量数据。(后续,我们将陆续转用生物医学类论文中的真实数据进行演示,欢迎大家积极推荐)
04
05
filter函数主要实现数据记录的过滤,亦即返回满足用户指定条件的数据记录。例如:
上图中R命令将返回温度大于70的数据记录行(尤其注意,此时数据的格式是列为我们期望操作的变量,而行则为一条条的数据记录)
接下来,我们再看一个多重条件的例子:
上图中R命令将返回温度大于80且月份大于5的数据记录行;是不是很简单呀?有了这个神器,之前我们需要自己写函数或者多步筛选的都可以一个函数轻松搞定呢!
06
mutate主要用于那些需要依据当前变量生成新变量的场景,是不是脑袋里立马闪现了以前痛苦的经历呀?这种需求还是很多的呢?经常有对数据做个单位转换呀,组合计算新值的需求,用这个就再合适不过了!废话不多说,让我们一起看看怎么用的吧!
看到了吧,是不是很简单,直接引用列明,像写数学公式一样计算就Okay了,剩下的mutate都会帮你搞定哦!
07
相信,大家对汇总summarise这个函数可能有点陌生,但是对针对某一变量计算均值这类的场景肯定是记忆犹新的。这类需求有的时候是十分惹人烦闷的,各种各种转换格式变来换去之后才能计算个均值,如今在summarise手里轻松搞定!直接上图:
是不是很简洁?后边还有大招哦,让我们一起来看看分组汇总这类需求简单实现折腾的需求在dplyr手里是如何玩出花来的吧!
08
然而我如果想要按月份求出温度均值呢?该咋整?是不是在脑袋里盘算着怎么转换分组再来个循环/apply,通过mean函数计算呢?现在这些统统都不要哦,请看图:
如今只需要将需要分组的变量传给group_by函数,让其帮你分组,然后再结合summarise使用即可哦!简直是So easy,So Hisen!
结语与相关文章
往期精彩回顾
长按左侧二维码关注
智汇医圈
为您解读肿瘤前沿研究资讯和玩转数据的技能,努力传播靠谱的,拒绝卖弄
以上是关于R与数据可视化系列如何使用dplyr进行数据清洗和变换的主要内容,如果未能解决你的问题,请参考以下文章