【问题标题】:Merging dataframes using a correspondence table using R使用 R 使用对应表合并数​​据帧
【发布时间】:2015-09-02 22:58:54
【问题描述】:

我想编写一个函数,根据对应表(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 的建议得到基于Reduce(merge, list(mykeys, mydf1, mydf2)) 的预期输出。你能提供一个不起作用的例子吗?
  • 我的错!它工作得很好:)
  • 谢谢,我取消了删除帖子。

标签: r merge correspondence


【解决方案1】:

将数据集放入list 后,我们可以使用merge。基于来自@CathG 的 cmets 和 OP 数据集中的编辑进行修改。

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

【讨论】:

  • 感谢您的回答。抱歉,我注意到我提供的数据中有错误 (id2)。因此,您提供的代码不再有效。我的坏:)
  • @Clement 你能改变你帖子中的数据吗
  • 那么Reduce(merge, list(mykeys, mydf1, mydf2)) 应该这样做,不是吗?或者更确切地说Reduce(merge, list(mykeys, mydf1, mydf2), right=TRUE) 有正确的顺序
猜你喜欢
  • 1970-01-01
  • 2023-03-12
  • 1970-01-01
  • 1970-01-01
  • 2013-12-01
  • 1970-01-01
  • 2020-12-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多