2017-07-27 196 views
0

我有兩個數據框,它們有一組重疊的列,但也有一些獨特的列。合併兩個具有不同列數的df R

它們也包含一些相同的觀察結果。

舉一個具體的例子:

df1 <- data.frame(Name = c("a", "b", "c", "d"), 
       age = c(1:4), 
       party = c(3:6) 
)  


df2 <- data.frame(Name = c("a", "e", "c", "f"), 
       other = c(10:13), 
       party = c(3:6) 
) 

兩個DFS包含的意見爲ac

我將如何合併DFS創建一個包含所有列的新DF,但不重複觀察?

+0

感謝顯示,這個問題已經有了答案。有一點需要考慮的是,這個問題的很多答案都假定對數據庫或類似sql的詞彙表有一定的熟悉程度 – Abe

回答

2

您可以使用merge()從基地R.

merge(df1, df2, all=T) 
# Name party age other 
# 1 a  3 1 10 
# 2 b  4 2 NA 
# 3 c  5 3 12 
# 4 d  6 4 NA 
# 5 e  4 NA 11 
# 6 f  6 NA 13 
1

可以使用full_joindplyr爲:

library(dplyr) 

full_join(df1, df2) 

它給你:

Name age party other 
1 a 1  3 10 
2 b 2  4 NA 
3 c 3  5 12 
4 d 4  6 NA 
5 e NA  4 11 
6 f NA  6 13 

希望幫助!

相關問題