2016-12-03 228 views
-1

我有两个数据帧,有一些重叠的变量,有些没有。每个变量都有一个属性(变量频率),我需要将这两个结合成一个数据帧,其中结果是两列属性,一列对应第一个数据帧,第二列对应第一个数据帧,所有变量都被表示出来。如何合并两个数据帧R

数据帧1:

var frequency 
a 3 
b 2 
d 5 

数据帧2:

var frequency 
a 2 
b 3 
c 3 

得到的数据帧:

var frequency1 frequency2 
a 3   2 
b 2   3 
c 0   3 
d 5   0 

感谢您的帮助。

回答

1

这似乎为我工作:

df1 = read.csv('df1.csv') 
df2 = read.csv('df2.csv') 
df1$frequency1 = df1$frequency 
df2$frequency2 = df2$frequency 
df1$frequency = NULL 
df2$frequency = NULL 

df = merge(df1, df2, by = 'var', all = TRUE) 
print(df) 

的想法是,如果你想要频率1,且频率是在最终的合并数据框中的名称,你可以在DF1和DF2合并之前对其进行重命名。这将产生:

var frequency1 frequency2 
1 a   3   2 
2 b   2   3 
3 d   5   NA 
4 c   NA   3 
+0

我试图合并(X,Y)这一点,但它会删除不同时dataframes编辑表示会尝试新的方法的所有变量 – xjtc55

+0

尝试更新的版本。 :) –

+0

谢谢!这工作! – xjtc55