2016-08-23 88 views
1

我想加入根據第一個數據幀的列值像下面兩個數據幀:不是「」不要緊,等欄目如何根據R中第一個數據幀的列值按行連接兩個數據幀?

FIRST DATA FRAME : 
a b c d 
2 # # # 
3 # # # 

SECOND DATA FRAME : 
a b c d 
1 @ @ @ 
2 @ @ @ 
3 @ @ @ 
4 @ @ @ 
5 @ @ @ 

值。 輸出應該是這樣的:

a b c d 
2 # # # 
3 # # # 
2 @ @ @ 
3 @ @ @ 

我曾嘗試合併,dplyr的連接,交叉等,但不能得到正確的結果。

回答

2

我會嘗試一些簡單的與rbind使用rbindintersect

rbind(df1, df2[df2$a %in% df1$a, ]) 
+0

如果'df1'有一個額外的排它不存在於'df2' –

3

的一種方式。 intersect將找出df1$adf2$a之間的共同元素。

common <- intersect(df1$a, df2$a) 
rbind(df1[df1$a %in% common, ], df2[df2$a %in% common, ], make.row.names = F) 

#a b c d 
#2 # # # 
#3 # # # 
#2 @ @ @ 
#3 @ @ @ 
+0

正要擊中「後」這是行不通的: ) – Sotos

+0

哦......發生在每個人都在這麼:) –

3

我想一個更多的品種:

subset(rbind(df1, df2), a %in% a[duplicated(a)]) 
# a b c d 
#1 2 # # # 
#2 3 # # # 
#4 2 @ @ @ 
#5 3 @ @ @ 
相關問題