2017-07-27 98 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 

希望帮助!

相关问题