【发布时间】:2015-04-24 23:17:40
【问题描述】:
我想合并 2 个 df,其中 df1 包含 2 列和 df2 1 列,在这种情况下如何应用函数合并?
这里是样例:
df1 <- data.frame(var1=letters[1:5],var2=letters[6:10])
df2 <- data.frame(var3=letters[1:10])
错误尝试:
merge(df1,df2,by.x=c("var1","var2"),by.y="var3",all.y=TRUE)
如何合并这两个 df,以便匹配搜索使用 df1 (var1 & var2) 的两列并在 df2 (var3) 上进行操作?
期望的输出:
var1 var2 var3
1 a f a
2 b g b
3 c h c
4 d i d
5 e j e
6 <NA> <NA> f
7 <NA> <NA> g
8 <NA> <NA> h
9 <NA> <NA> i
10 <NA> <NA> j
编辑:改进的数据(我希望):
df1 <- data.frame(var1=c(letters[1:5],rep("x",5)),var2=c(letters[6:10],rep("x",5)))
df2 <- data.frame(var3=letters[1:10])
期望的输出:
var1 var2 var3
1 a f a
2 b g b
3 c h c
4 d i d
5 e j e
6 x x f
7 x x g
8 x x h
9 x x i
10 x x j
【问题讨论】:
-
merge两次可能是一种可能的解决方案。 -
是的,我想过,但可能会与我的真实数据混淆。
-
凌乱,我的意思是弄乱数据 :) 我认为,这可能很容易出错
-
您能否澄清“以便匹配搜索使用 df1 (var1 & var2) 的两列”?在您想要的输出中,看起来 var1 与 var3 匹配;除了包含在结果表中之外,var2 是否在连接中发挥作用?