我有两个结构相同的数据帧:列id-part1,列id-part2和列data1。 id-part1和id-part2一起用作索引 -
现在我想计算列data1的两个数据帧之间相对于两个id列的差异。事实上,在一个数据帧中,可能会发生id-part1和id-part2的组合不存在......
所以它以某种方式是SQL连接操作,不是吗?
答案 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的不同列。然后,您可以继续进行计算。