这个R包不太冷系列四:数据处理不可错过的dplyr

2021-06-28 18:13:23, 多层组学定制服务 上海欧易生物医学科技有限公司


点击上方“蓝色字体”关注我们

鹿明

生物

蛋白、代谢组学服务专家

关注我们收获更多

关注








R语言在生物信息分析过程中,一直占有重要的地位,它可以快速处理繁多的生物学数据并进行可视化。今天小鹿为大家带来数据预处理必备工具——dplyr包,以从容应对各种生物学数据的处理。


1

dplyr包的真面目


R语言老玩家应该对dplyr这个名字相当熟悉,因为它是plyr包的升级版,可用于处理R内部或者外部的结构化数据。相较于plyr包:①dplyr专注于数据框(data.frame)操作, 大幅度提高了处理速度;②提供了更稳健的数据库接口。


dplyr包主要应用于数据处理,可以对得到的原始数据进行筛选、汇总、变性、分组等等,使得初始数据变成理想中的模样。


dplyr包中最夺人眼球的莫过于几个核心函数,如tbl_df( )、filter( )、arrange( )、select( )、mutate( )、group_by( )、sample_n( )等。


下面来给大家介绍dplyr包中几个最为重要的函数的用法:

首先我们需要安装dplyr包,本次实例演示选用的是R自带的数据集iris。


代码如下:

#加载dplyrlibrary(dplyr)#查看iris数据集View(iris)


输出iris数据集:(这里仅展示iris前几行的数据)


2

数据提取—select( )


select(data, var1/condition1, var2/condition2,…)


select( )函数按照名称选择数据框的列

第一个参数为需要排序的数据框名称,第二个参数以及随后的参数是选取依据的列名或选取条件的表达式。


例如:

#选取Species和Sepal.Length两列select(iris, Species, Sepal.Length)


#选取以字母s开头的列

select(iris,starts_with("s"))


3

数据分组-- group_by( )


group_by(data, var1, var2,…)


函数用于数据框按照某个变量进行分组

第一个参数为数据框的名称,第二个参数为分组依据的变量名称。

特别注意的是,分组完成后对于数据框本身不会发生什么变化,但已按照要求变量分好组。


例如:

#以Sepal.Length为依据分组group_by(iris, Sepal.Length)


3

数据排序-- arrange( )


arrange(data, var1, var2, var3,…)


arrange( )函数用于数据框行的排列,改变行的顺序,使数据框按照一列或者多列进行排序。

第一个参数为需要排序的数据框名称,第二个参数以及随后的参数是排序依据的变量名,默认排序为升序,若需要按照某列降序排序,那么可以在变量名前加

desc:arrange(data, desc(var1))


例如:

#按照Petal.Length升序排列arrange(iris, Petal.Length)


#按照Petal.Length降序排列arrange(iris, desc(Petal.Length))


arrange( )函数其实和大家经常用的EXCEL中的升降排序相似,不过更加方便快速,可以按照多列进行排序。若列名不只一个,则使用后面的列在前面排序的基础上继续排序。


3

数据筛选—filter( )


filter(data, condition_1, condition_2)


filter( ) 函数用于筛选数据的行

第一个参数为需要筛选的数据框名称,第二个参数以及随后的参数是用来筛选数据框的筛选要求表达式。


例如:

#筛选Sepal.Length>3, Sepal.Width<5的行filter(iris, Sepal.Length>3, Sepal.Width<5)



#筛选Sepal.Width>3, Species等于virginica的行filter(iris, Sepal.Width>3, Species=="virginica")


3

结语


小鹿今天给大家主要介绍了dplyr包的几个核心函数的用法,你们都学会了吗?当然dplyr作为数据处理的宝藏工具,还有更多强大的功能等待你的挖掘,感兴趣的话继续深入挖宝吧。


文末看点 鹿明生物

上海鹿明生物科技有限公司多年来,一直专注于生命科学和生命技术领域,是国内早期开展以蛋白组和代谢组为基础的多层组学整合实验与分析的团队。


同时,鹿明生物线上学习平台易明学院,一个专注于组学科研培训的互联网平台。迄今为止,倾情打造了多款组合课程,希望可以给各位组学研究的老师一点帮助;


猜你还想看


生信课程:手把手教你如何从iprox上自动批量下载原始数据

生信课程:这个分析不太难系列(一)——方差分析

生信课程:一行代码,轻松绘制动态关系网络图(Jaal 库)

生信课程:这个R包不太冷系列三:一种“简单代码+简单调整=即刻出图”的包

生信课程:我要如何才能拯救你!我的论文!我的实验数据!

生信分析—文献管理神器常被文献编排整奔溃?试试这款文献管理神器,让您的效率MAX

生信分析—数据库获取:如何快速从主流数据库中获取人/小鼠数据?

生信分析—可视化处理工具你可以更美一些:SnapGene Viewer软件序列可视化操作

云平台:奥利给~~代谢通路富集分析原来还可以这么做?

云平台:震惊!他花了3分钟就完成了我三个周的工作!

云平台:欧易/鹿明云 | 免费的聚类热图不试试吗?

生信分析:这个R包不太冷系列——GOplot(功能富集绘图)

生信分析:10行代码让你的相关性图貌美如花

生信分析:对话百年名画--文章绘图配色高级又简单!

生信分析:只需3分钟Get“代谢通路分析神器”

生信分析:玩转生信—火山图中“亿点细节”,你会打造吗?

生信分析:【指南】Cytoscape之stringAPP蛋白互作分析详解

生信分析:【教程】组学研究,用python快速实现PCA分析和绘图

生信分析:组学研究,R语言实用技巧—热图,运用pheatmap包简单易懂快速汇图方法来袭~

生信分析:【情人节】R语言—小提琴图的浪漫邂逅


END

Irene 撰文

欢迎转发到朋友圈

本文系鹿明生物原创

转载请注明本文转自鹿明生物

我知道你在看

点“阅读原文”了解更多


  • 客服电话: 400-6699-117 转 1000
  • 京ICP备07018254号
  • 电信与信息服务业务经营许可证:京ICP证110310号
  • 京公网安备1101085018
  • 客服电话: 400-6699-117 转 1000
  • 京ICP备07018254号
  • 电信与信息服务业务经营许可证:京ICP证110310号
  • 京公网安备1101085018

Copyright ©2007-2023 ANTPEDIA, All Rights Reserved