R 按模式反_连接

R 按模式反_连接,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", "

Tibble
A
包含可在Tibble
B
中找到的键/模式。我的目标是识别在tibble
B
中找不到的键/模式

我想通过匹配模式反连接两个表:

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()