rdplyrleft-joinouter-joinright-join

Replace a value in a data frame from other dataframe in r


Hi I have two dataframes, based on the id match, i wanted to replace table a's values with that of table b.

sample dataset is here :

a = tibble(id = c(1, 2,3),
           type = c("a", "x", "y"))
b= tibble(id = c(1,3),
          type =c("d", "n"))

Im expecting an output like the following :

c= tibble(id = c(1,2,3),
          type = c("d", "x", "n"))

Solution

  • In dplyr v1.0.0, the rows_update() function was introduced for this purpose:

    rows_update(a, b)
    
    # Matching, by = "id"
    # # A tibble: 3 x 2
    #      id type 
    #   <dbl> <chr>
    # 1     1 d    
    # 2     2 x    
    # 3     3 n