我在R中有两个数据帧
df1
key volume name hours location
ABC 456 SS32 34.34 London
ERT 34 SS31 33.14 London
TYU 21 SS33 3 London
GHU 678 SS35 1.30 London
THU 67 SS35 0.30 London
df2
key volume hours
ABC 345 37.34
ERT 54 31.14
TYU 12 6.23
GHU 679 0.50
现在我想合并这两个数据帧,将 df1
中的列 volume and hours
替换为 df2
中的列,并且 key
列上没有匹配项,保留原始数据 df1
我想要的数据帧是
df1
key volume name hours location
ABC 345 SS32 37.34 London
ERT 54 SS31 31.14 London
TYU 12 SS33 6.23 London
GHU 679 SS35 0.50 London
THU 67 SS35 0.30 London
当我进行左连接时,它会创建一个 volume.1
和 hours.1
作为两个新变量
2 回答
我认为有两种方法可以解决这个问题:
Join then overwrite
我可以通过加入然后使用
df2
中的值覆盖df1
来获得结果 . 但是这个解决方案感觉非常笨重 .Bind rows
另一种方法可能是
bind_rows
而是保留first
值来自df1
的名称和位置以及last
值的体积和小时数将等于来自df2
(如果可用)的值 . 对我而言,这比加入和覆盖更令我感到高兴 .这是一个解决方案: