【发布时间】:2016-02-09 16:58:49
【问题描述】:
我有两个数据框:
df1 <- data.frame(x1=c("a","b","z","u"),
x2=c("f", "a","d","x"))
df2 <- data.frame(x=letters[1:10],y=1:10,z=11:20)
我现在想将它们按 x1、x2 和 x 合并,即如果字母 x 在 x1 或 x2 中,应添加相应的 y 和 z 值。 如果有两种选择,x1 应作为参考。
df1 应该是“主”数据集(如 all.x = TRUE 参数)。
这里的最终数据框是
x1 x2 y z
a f 1 11
b a 2 12
z d 4 14
u x NA NA
我希望看到添加列 y1、z1 和 y2、z2 的第二种解决方案 像这样:
x1 x2 y1 z1 y2 z2
a f 1 11 6 16
b a 2 12 1 11
z d NA NA 4 14
u x NA NA NA NA
不胜感激merge 或dplyr 或tidyr 解决方案
【问题讨论】:
-
对于您的第二个解决方案,只需先在 x=x1 上 left_joining(参见
dplyr::left_join),然后再在 x=x2 上进行操作即可。