R 按模式反_连接
TibbleR 按模式反_连接,r,regex,dplyr,fuzzyjoin,R,Regex,Dplyr,Fuzzyjoin,TibbleA包含可在TibbleB中找到的键/模式。我的目标是识别在tibbleB中找不到的键/模式 我想通过匹配模式反连接两个表: A <- tibble( colA = c("B12", "B19", "B202", "B87", "B61", "B55") ) B <- tibble( colB = c("aaB87aa", "
A
包含可在TibbleB
中找到的键/模式。我的目标是识别在tibbleB
中找不到的键/模式
我想通过匹配模式反连接两个表:
A <- tibble( colA = c("B12", "B19", "B202", "B87", "B61", "B55") )
B <- tibble( colB = c("aaB87aa", "bbbbB55", "B202cccc") )
编辑
最后,我希望有这样的东西:
test
1 B12
2 B19
3 B61
给定示例数据的一个
dplyr
选项可以是:
A %>%
filter(!colA %in% gsub("[a-z]", "", B$colB))
colA
<chr>
1 B12
2 B19
3 B61
A%>%
过滤器(!colA%in%gsub(“[a-z]”,“”,B$colB))
可乐
1 B12
2 B19
3 B61
一个dplyr
选项给出的示例数据可能是:
A %>%
filter(!colA %in% gsub("[a-z]", "", B$colB))
colA
<chr>
1 B12
2 B19
3 B61
A%>%
过滤器(!colA%in%gsub(“[a-z]”,“”,B$colB))
可乐
1 B12
2 B19
3 B61
regex\u anti\u join(A,B,by=c(colA=colB))
对colB
内部colA
执行str\u检测。在您的情况下,这个函数不返回任何内容,因此结果为空
您需要做的是反向操作:搜索colA
内部colB
这可以通过为regex\u-anti\u-join使用的fuzzy\u-join
函数指定匹配函数来实现:
库(fuzzyjoin)
#这与regex\u anti\u join中使用的match\u fun完全相反
比赛乐趣:3 x 1
#>可乐
#>
#>1 B12
#>2 B19
#>3 B61
由(v0.3.0)于2020年7月17日创建regex\u-anti\u-join(A,B,by=c(colA=colB))
在colB
内部执行str\u-detect
。在您的情况下,这个函数不返回任何内容,因此结果为空
您需要做的是反向操作:搜索colA
内部colB
这可以通过为regex\u-anti\u-join使用的fuzzy\u-join
函数指定匹配函数来实现:
库(fuzzyjoin)
#这与regex\u anti\u join中使用的match\u fun完全相反
比赛乐趣:3 x 1
#>可乐
#>
#>1 B12
#>2 B19
#>3 B61
由(v0.3.0)于2020-07-17创建,请提供预期输出。看起来有一种模式,可能使用正则表达式提取id作为“从B开始,然后是数字直到字母”,然后使用该id作为联接列。可能是这样吗regex\u anti\u join(A,B,by=c(colA=“colB”)
@YuriySaraykin它将所有A
tibble作为输出-这不是反连接您是否考虑过使用dplyr::filter()
?请提供预期的输出。看起来有一种模式,可能使用regex extract id作为“从B开始,然后是数字,直到字母”,然后使用该id作为联接列。也许是这样regex_anti_join(A,B,by=c(colA=“colB”))
@YuriySaraykin它将所有A
tible作为输出-这不是反连接您考虑过使用dplyr::filter()
?