1.dplyr包介紹
對于數(shù)據(jù)分析工作者來說,前期數(shù)據(jù)的清洗挂据、處理及變換等占據(jù)了整個工作流程一大半的時間以清。因此,為了提高工作效率崎逃,R語言包dplyr應(yīng)運(yùn)而生掷倔。這是一個專注dataframe對象的數(shù)據(jù)處理包,它功能強(qiáng)大个绍。下面簡單介紹該包中的幾個join數(shù)據(jù)連接函數(shù)勒葱。
2.join系列函數(shù)介紹
2.1合并連接
合并連接包括內(nèi)連接和外連接浪汪。
2.1.1inner_join----內(nèi)連接
內(nèi)連接保留A,B中相匹配(同)的觀測值(相當(dāng)于找交集),結(jié)果是一個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中的都保留下來(相當(dāng)于并集)至非。
file
file
2.2 篩選連接
2.2.1 semi_join----半連接
相當(dāng)于以B為篩選標(biāo)準(zhǔn)蜗侈,保留A與B相同的觀測。(把B中有的A中沒有的去掉)
file
2.2.1 anti_join----反連接
相當(dāng)于以B為篩選標(biāo)準(zhǔn)睡蟋,保留A中有而B中沒有的觀測踏幻。
file
3 連接實(shí)際應(yīng)用
R中連接比較實(shí)用,可用于找兩個文件中相同的戳杀,也可以找兩個文件之中其中一個特有的等等该面。下面以一個實(shí)例來介紹下連接的應(yīng)用。
#需求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包預(yù)處理時建議使用tbl_df()函數(shù)或tbl_cube()函數(shù)或tbl_sql()函數(shù)將原數(shù)據(jù)轉(zhuǎn)換為tbl對象
#提取第一列
df3<-tbl_df(df1[,1])
df4<-tbl_df(df2[,1])
#內(nèi)連接找到交集
df_same<-inner_join(df3,df4)
#反連接找到特有集
df_different<-anti_join(df4,df3) #以后面一個參數(shù)為篩選標(biāo)準(zhǔn),把前一個中特有的保留下來傍菇。
#寫入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文件的部分內(nèi)容猾瘸,第三張圖為找到的兩個文件共有的部分,第四張圖為找到的第二個文件特有的丢习。
file
file
file
file
本文由博客一文多發(fā)平臺 OpenWrite 發(fā)布牵触!