我正在努力将两个data.frame与具有相同名称但值不同的列合并 . 我想用单个命令替换df1中的列,df2中的列具有相同的名称,保持df 1的其他列不变 .

DF1

    a   b   c   d    e  
1   3   1   2   8    1
2   4   2   1   10   2
3   12  1   1   13   2
4   12  2   2   9    2


DF2

    b   c   e  
1   2   1   2 
2   1   2   1 
3   2   2   1
4   1   1   1

结果应如下所示

a   b   c   d    e  
    1   3   2   1   8    2
    2   4   1   2   10   1
    3   12  2   2   13   1
    4   12  1   1   9    1

请注意,我在数据框中没有ID .

我试过用r中的不同包装 . 我获得的最好结果是dplyr中的join包

df1 <- left_join(df1, df2, copy = TRUE)

但目标列的值等于df1而不是df2

首先使用df2会产生正确的值,但是如果使用NA填充非目标列(a和d)

df1 <- left_join(df2, df1, copy = TRUE)

有什么建议?

谢谢

编辑:

ANSWER提供的是

dat1[names(dat2)] <- dat2