【问题标题】:Updating rows of a data.frame with the rows of another data.frame用另一个 data.frame 的行更新一个 data.frame 的行
【发布时间】:2020-07-20 15:30:56
【问题描述】:

我想用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

【问题讨论】:

    标签: r tidyverse tidytable


    【解决方案1】:

    使用 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
    

    【讨论】:

      【解决方案2】:

      试试这个:

      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
      

      【讨论】:

        猜你喜欢
        • 2011-12-19
        • 2014-01-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多