我想根据部分重叠的变量合并/匹配两个数据帧。
输入(示例):
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(例如合并),但无法让它工作......
答案 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