在R中同时使用两个id合并表
我有3个数据集在R中同时使用两个id合并表,r,join,merge,R,Join,Merge,我有3个数据集 df1 has two column with id df2 has one column with id df3 has one column with id df1=structure(list(id1.df1 = c(1L, 3L, 5L), id2.df1 = 4:6, ids = c(0.7, 0.8, 0.9)), .Names = c("id1.df1", "id2.df1", "ids"), class = "data.frame", row.names =
df1 has two column with id
df2 has one column with id
df3 has one column with id
df1=structure(list(id1.df1 = c(1L, 3L, 5L), id2.df1 = 4:6, ids = c(0.7,
0.8, 0.9)), .Names = c("id1.df1", "id2.df1", "ids"), class = "data.frame", row.names = c(NA,
-3L))
df2=structure(list(id1.df2 = c(1L, 3L, 5L), x3 = c(46L, 6546L, 65L
)), .Names = c("id1.df2", "x3"), class = "data.frame", row.names = c(NA,
-3L))
df3=structure(list(id2.df3 = c(2L, 4L, 5L), x4 = c(5467L, 78L, 654L
)), .Names = c("id2.df3", "x4"), class = "data.frame", row.names = c(NA,
-3L))
我需要合并这3个数据集,以便查询返回
与第一个数据集的id1和id2、第二个数据集的id1和第三个数据集的id2相匹配的字符串
就我预期的产出而言
id1-df1 id1-df2 ids id2-df1 x3 id2-df3 x4
1 4 0,7 1 46 4 78
3 5 0,8 3 6546 5 654
5 6 0,9 5 65 6 5467
即,第一个数据集的1和4 id分别合并到第二个数据集的1 id和第三个数据集的4 id
你能帮我吗?首先,我认为你提供df3数据的声明有错误。我想你想要的是
id2.df3=c(6L,4L,5L)
。使用该数据,您可以使用“合并”两次来执行此操作
merge(merge(df1, df2, by.x = 'id1.df1', by.y = 'id1.df2'),
df3, by.x = 'id2.df1', by.y = 'id2.df3')
id2.df1 id1.df1 ids x3 x4
1 4 1 0.7 46 78
2 5 3 0.8 6546 654
3 6 5 0.9 65 5467
这只包含一次id1和id2列,不像您建议的答案那样包含两次,但它们是完全冗余的。如果需要,您可以添加额外的副本