run*_*rds 8 r inner-join left-join dplyr
有没有办法在使用dplyr进行连接时忽略大小写敏感?左,内,全?
我认为它适用于选择,但这对我来说通常是一个巨大的痛苦.我知道我可以手动转换列toupper或tolower,但这将是一个有用的工作.
dplyr还没有这样的选项,但fuzzyjoin你可以很容易地做到这一点:
require(fuzzyjoin)
regex_inner_join(x,y,by="id", ignore_case =TRUE)
Run Code Online (Sandbox Code Playgroud)
如果 x 和 y 中有不同的列名:
regex_inner_join(x,y,by=c("xid"="yid"), ignore_case =TRUE)
Run Code Online (Sandbox Code Playgroud)
我认为没有一种直接使用tolower或toupper整理数据的简单方法。也就是说,如果需要,内联mutate(在连接内部)会使原始数据保持不变。
X %>% left_join(Y %>% mutate(id = tolower(id)), by = "id")`
Run Code Online (Sandbox Code Playgroud)
它可以工作,但是我们也可以创建一个整洁的Y,其ID首先匹配X(在我看来)。