用另一个 data.frame 的行更新 data.frame 的行

Updating rows of a data.frame with the rows of another data.frame

我想用 data.frame df2 的行更新 data.frame df1 的行。有什么提示吗?

df1 <-
  data.frame(
    "V1" = LETTERS[1:4]
  , "V2" = 1:4
  , "V3" = 7:10
  )

df1
  V1 V2 V3
1  A  1  7
2  B  2  8
3  C  3  9
4  D  4 10


df2 <-
  data.frame(
      "V1" = c("A","D")
    , "V2" = c(5, 7)
    , "V3" = c(12, 15)
  )


df2
  V1 V2 V3
1  A  5 12
2  D  7 15

需要输出

  V1 V2 V3
1  A  5 12
2  B  2  8
3  C  3  9
4  D  7 15

使用 dplyr 1.0.0

rows_update(df1, df2)

Matching, by = "V1"
  V1 V2 V3
1  A  5 12
2  B  2  8
3  C  3  9
4  D  7 15

试试这个:

df1[df1$V1 %in% df2$V1,c('V2','V3')] <- df2[df2$V1 %in% df1$V1,c('V2','V3')]

  V1 V2 V3
1  A  5 12
2  B  2  8
3  C  3  9
4  D  7 15