在两个索引列上加入两个结构相似的数据帧?

时间:2014-01-14 15:53:57

标签: r dataframe

我有两个结构相同的数据帧:列id-part1,列id-part2和列data1。 id-part1和id-part2一起用作索引 -

现在我想计算列data1的两个数据帧之间相对于两个id列的差异。事实上,在一个数据帧中,可能会发生id-part1和id-part2的组合不存在......

所以它以某种方式是SQL连接操作,不是吗?

1 个答案:

答案 0 :(得分:1)

merge()函数正是您正在寻找的。 它的工作方式与SQL连接操作类似。根据您的描述,解决方案将是:

solution <- merge(DF1, DF2, by = c('id-part1', 'id-part2'), all.x = TRUE, all.y = TRUE)

DF1和DF2是您对应的数据帧。 merge()使用x和y来引用这些数据帧,其中x是第一个(DF1),y是第二个(DF2)。

by = 属性定义要匹配的列名称(您甚至可以为每个数据框指定不同的名称)。

all.x all.y 指定您要执行的联接类型,具体取决于您要保留的数据。

结果是一个新的数据框,其中包含data1的不同列。然后,您可以继续进行计算。