使用R使用对应表合并数据帧

使用R使用对应表合并数据帧,r,merge,correspondence,R,Merge,Correspondence,我想编写一个函数,根据对应表(mykeys)合并两个数据帧(mydf1和mydf2)。考虑下面的例子: mydf1=data.frame(id1=1:5,myvar1=letters[1:5]) mydf2=data.frame(id2=LETTERS[1:5],myvar2=letters[6:10]) mykeys=data.frame(id1=1:3,id2=LETTERS[1:3]) 结果应该是 # id1 id2 myvar1 myvar2 # 1 A a f #

我想编写一个函数,根据对应表(mykeys)合并两个数据帧(mydf1和mydf2)。考虑下面的例子:

mydf1=data.frame(id1=1:5,myvar1=letters[1:5])
mydf2=data.frame(id2=LETTERS[1:5],myvar2=letters[6:10])

mykeys=data.frame(id1=1:3,id2=LETTERS[1:3])
结果应该是

# id1 id2 myvar1 myvar2
# 1   A   a      f
# 2   B   b      g
# 3   C   c      h

有什么想法吗?

我们可以在将数据集放入
列表后使用
合并
。根据@CathG的评论和OP数据集中的编辑进行修改

Reduce(merge, list(mykeys, mydf1, mydf2))

谢谢你的回答。抱歉,我注意到我提供的数据中有错误(
id2
)。因此,您提供的代码不再有效。我的坏:)@Clement你能改变你帖子中的数据吗然后减少(合并,列表(mykeys,mydf1,mydf2))
应该这样做,不是吗?或者更确切地说是
Reduce(merge,list(mykeys,mydf1,mydf2),right=TRUE)
为了获得正确的顺序,我们根据@CathG建议的
Reduce(merge,list(mykeys,mydf1,mydf2))获得预期的输出。你能举个例子吗?我的错!它工作得很好:)谢谢,我取消了帖子。