[英]leftjoin one ID to multiple IDs
Is it possible to left join one id on multiple columns due to NA's? 是否可能由于不适用项而在多个列上保留一个ID?
So say I have a situation where I've got a dataframe like: 所以说我有一个像这样的数据框的情况:
aa = c(rep(4,4))
bb = c("a", "b", "c", "d")
cc = c(10, NA, 15, 4)
dd = c(NA, 2, NA, NA)
ee = c(14, 10, 12, 10)
ff = c(10, 2, 12, 6)
data <- data.frame(aa, bb, cc, dd)
data2 <- data.frame(bb, ee, ff)
where: 哪里:
> data
aa bb cc dd
1 4 a 10 NA
2 4 b NA 2
3 4 c 15 NA
4 4 d 4 NA
> data2
bb ee ff
1 a 14 10
2 b 10 2
3 c 12 12
4 d 10 6
Ideally, with a resulting column like: 理想情况下,结果列如下:
aa bb cc dd ee
1 4 a 10 NA 14
2 4 b NA 2 10
3 4 c 15 NA NA
4 4 d 4 NA NA
I was thinking along the lines of: 我在考虑以下方面:
leftjoin(data, data2, by = c("aa" == "aa", "ff" == (("cc" & "dd"), na.omit = T))) leftjoin(data,data2,by = c(“ aa” ==“ aa”,“ ff” ==((“ cc”&“ dd”),na.omit = T)))
leftjoin(data, data2, by = c("bb" == "bb", "ff" == (("cc" & "dd"), na.omit = T)))
(I understand the last part is non-sensical, but to get the point across at least). (我知道最后一部分是无意义的,但至少可以理解这一点)。
This looks like a job for coalesce
, your join conditions are a little confusing though, as there's no aa
in data2
. 这看起来像是一项coalesce
工作,但是您的加入条件有些混乱,因为data2
没有aa
。
data %>%
mutate(helper = coalesce(cc, dd)) %>%
left_join(data2 , by = c('bb' = 'bb', 'helper' = 'ff')) %>%
select(-helper)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.