【发布时间】:2020-03-27 14:12:43
【问题描述】:
df1 <- data.frame(id=c(1,2,3,4,5,8), var=c("a","b","c","d","e","t"), stringsAsFactors = F)
df2 <- data.frame(id=c(1,2,3,4,5,6,7), var=c("e","f","c","d","e","g","h"), stringsAsFactors = F)
df <- data.frame(id=c(1,2,3,4,5,6,7,8))
我需要加入以获取 df 的 var 值,但我想要 df2 而不是 df1 的 var 值,如果 df2 中没有等价物,那么我想从 df1 中获取它。我有这个,但有没有更简单的方法来做到这一点?以及如何添加一列以查看 var 的来源?
df %>% left_join(df1, by="id") %>% left_join(df2, by="id") %>%
dplyr::mutate(var=ifelse(!is.na(var.x), var.x, var.y))
【问题讨论】:
-
你的方法很好(而且,我认为,很简单!)。我会在最后一步推荐
var = coalesce(var.x, var.y)。