我正在努力将两个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会得到正确的值,但是如果用NAs填充非目标列(a和d)
df1 <- left_join(df2, df1, copy = TRUE)
有什么建议吗?
谢谢
编辑:
提供的答案是
dat1[names(dat2)] <- dat2