【问题标题】:str_replace_all using multiple conditionsstr_replace_all 使用多个条件
【发布时间】:2021-09-16 04:50:18
【问题描述】:

我有两个数据框(“之前”、“之后”)。

before1 <- c("A", "B", "C")
before2 <- c("1", "2", "3")
before3 <- c("ab", "cd", "ef")
before <- data.frame(before1, before2, before3)

after1 <- c("A", "B")
after2 <- c("1", "2")
after3 <- c("de", "fg")
after <- data.frame(after1, after2, after3)

当 before1 和 before2 同时匹配 after1 和 after3 时,我想用 after3 替换 before3。

我想要的结果如下。

before1 <-  c("A", "B" "C")
before2 <- c("1", "2", "3")
newafter <- c("de", "fg", "ef")

【问题讨论】:

    标签: r dplyr str-replace


    【解决方案1】:

    您可以加入两个数据框并使用coalesce 进行更新。

    library(dplyr)
    
    before %>%
      left_join(after,  by = c('before1' = 'after1', 'before2' = 'after2')) %>%
      mutate(newafter = coalesce(after3, before3)) %>%
      select(before1, before2, newafter)
    
    #  before1 before2 newafter
    #1       A       1       de
    #2       B       2       fg
    #3       C       3       ef
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-25
      • 1970-01-01
      • 1970-01-01
      • 2011-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多