【发布时间】:2016-08-03 20:32:00
【问题描述】:
假设我有两个如下数据框:
n = c(2, 3, 5, 5, 6, 7)
s = c("aa", "bb", "cc", "dd", "ee", "ff")
b = c(2, 4, 5, 4, 3, 2)
df = data.frame(n, s, b)
# n s b
#1 2 aa 2
#2 3 bb 4
#3 5 cc 5
#4 5 dd 4
#5 6 ee 3
#6 7 ff 2
n2 = c(5, 6, 7, 6)
s2 = c("aa", "bb", "cc", "ll")
b2 = c("hh", "nn", "ff", "dd")
df2 = data.frame(n2, s2, b2)
# n2 s2 b2
#1 5 aa hh
#2 6 bb nn
#3 7 cc ff
#4 6 ll dd
我想将它们合并以达到以下结果:
#n s b n2 s2 b2
#2 aa 2 5 aa hh
#3 bb 4 6 bb nn
#5 cc 5 7 cc ff
#5 dd 4 6 ll dd
基本上,我想要实现的是在 data2 的 s2 或 b2 列中找到第一个数据的 s 中的值时合并两个数据帧。
我知道当我从每个数据帧中指定两列时,合并可以工作,但我不确定如何在合并函数中添加 OR 条件。或者如何使用 dpylr 等软件包中的其他命令来实现这一目标。
另外,澄清一下,会出现 s2 和 b2 与同一行中的 s 列匹配的情况。如果是这种情况,那么只需将它们合并一次。
【问题讨论】:
标签: r merge data-manipulation