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

Merging dataframes using a correspondence table using R

我想编写一个函数,根据 table (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

有什么想法吗?

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

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