基于部分重叠的变量合并/匹配两个数据帧

时间:2013-10-21 17:23:19

标签: r merge dataframe

我想根据部分重叠的变量合并/匹配两个数据帧。

输入(示例):

Data.frame_A
X1          X2  X3
aaa,bbb,ccc 25  AGF
ddd,eee,fff 23  BGD


Data.frame_B
Y1  Y2
aaa 25
fff 23

结果:

Data.frame_C
Z1  Z2  Z3
AGF 25  aaa
BGD 23  fff

到目前为止,我尝试了一些unix命令和R(例如合并),但无法让它工作......

1 个答案:

答案 0 :(得分:3)

merge确实有效

> Data.frame_C <- merge(Data.frame_A, Data.frame_B, by.x="X2", by.y="Y2", sort=FALSE)[, -2]
> Data.frame_C
  X2  X3  Y1
1 25 AGF aaa
2 23 BGD fff

基本上,Data.frame_C就是你想要的,但如果你真的想要问题中显示的输出,那么还需要两行代码:

> Data.frame_C <- Data.frame_C[ , c(2,1,3)]
> colnames(Data.frame_C) <- c("Z1", "Z2", "Z3")
> Data.frame_C
   Z1 Z2  Z3
2 AGF 25 aaa
1 BGD 23 fff