R语言学习----dplyr包中的join系列函数学习

1.dplyr包介绍

对于数据分析工作者来说,前期数据的清洗、处理及变换等占据了整个工作流程一大半的时间。因此,为了提高工作效率,R语言包dplyr应运而生。这是一个专注dataframe对象的数据处理包,它功能强大。下面简单介绍该包中的几个join数据连接函数。

2.join系列函数介绍

2.1合并连接

合并连接包括内连接和外连接。

2.1.1inner_join----内连接

内连接保留A,B中相匹配(同)的观测值(相当于找交集),结果是一个new dataframe。

file
file

2.1.2 三种外连接

外连接包含三种left_join,right_join,full_join下面一一介绍。

2.1.2.1left_join----左连接

B中未匹配的观测值丢弃(以NA填充),A中未匹配的保留。


file

file

2.1.2.2 right_join----右连接

A中未匹配的观测值丢弃(以NA填充),B中未匹配的保留。


file
file

2.1.2.3 full_join----全连接

A跟B中的都保留下来(相当于并集)。

file

file

2.2 筛选连接

2.2.1 semi_join----半连接

相当于以B为筛选标准,保留A与B相同的观测。(把B中有的A中没有的去掉)

file

2.2.1 anti_join----反连接

相当于以B为筛选标准,保留A中有而B中没有的观测。

file

3 连接实际应用

R中连接比较实用,可用于找两个文件中相同的,也可以找两个文件之中其中一个特有的等等。下面以一个实例来介绍下连接的应用。

#需求1:提取两个csv文件的某列相同的部分到一个新的csv文件中。
#需求2:提取两个csv文件中某列特有的部分(另外一列没有)。

#dplyr包的安装和加载
install.packages("dplyr")
library(dplyr)
#读取两个csv文件
df1<-read.csv("/Users/bcl/Desktop/DEG_treat_vs_control.csv")
df2<-read.csv("/Users/bcl/Desktop/DEG_treat_vs_control 1.csv")
#使用dplyr包预处理时建议使用tbl_df()函数或tbl_cube()函数或tbl_sql()函数将原数据转换为tbl对象
#提取第一列
df3<-tbl_df(df1[,1])
df4<-tbl_df(df2[,1])
#内连接找到交集
df_same<-inner_join(df3,df4)
#反连接找到特有集
df_different<-anti_join(df4,df3)          #以后面一个参数为筛选标准,把前一个中特有的保留下来。
#写入csv文件
write.table(df_same,file="/Users/bcl/Desktop/same_DEG.csv",row.names=FALSE,quote=FALSE,sep=",")
write.table(df_different,file="/Users/bcl/Desktop/different_DEG.csv",row.names=FALSE,quote=FALSE,sep=",")

前两张图为待操作的csv文件的部分内容,第三张图为找到的两个文件共有的部分,第四张图为找到的第二个文件特有的。

file
file
file
file

本文由博客一文多发平台 OpenWrite 发布!

你可能感兴趣的:(R语言学习----dplyr包中的join系列函数学习)