r - 使用另一个数据框和 grepl 在数据框中搜索字符串

标签 r tidyverse

我需要使用另一个数据框按列过滤数据框,但由于匹配不准确,我想使用 grepl 是一种方法。

下面的代码可以作为例子:

A <- data.frame(X=c("RRT","FGT","UTX","GRW"),Y=c(5,6,9,4))

B <- data.frame(Z=c("PPL","FG","RT","UTX"))

A %>% filter(.,grepl("RT",X))

# the result using a single match
X Y
RRT 5

##desired result

A %>% filter(.,grepl(B,A$X))

A.X  A.Y
RRT  5
FGT  6
UTX  9

实现该目标的最佳方法是什么?

最佳答案

这个呢?

> A %>%
+   filter(colSums(outer(B$Z, X, Vectorize(grepl))) > 0)
    X Y
1 RRT 5
2 FGT 6
3 UTX 9

关于r - 使用另一个数据框和 grepl 在数据框中搜索字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68849166/

相关文章:

r - 使用 R 和 tidyverse 将 tidy 表转换为深度嵌套列表

r - 如何用 R 中非零行最小值的 0.5 倍替换数据框中的 0 值(0.5*min)

r - 如何在 R 中为数据表中的每一行创建子类别

r - 如何使用 tidyverse 操作此数据框

r - {{}} 双大括号如何在 dplyr 中工作?

r - 在 Quantmod R 中添加多个图表系列

r - 高级 : Why ? function(){} 适用于 R

r - 两级纵向数据 : how to reshape?

r - 将一个数据框中的行(带有行名)与另一个数据框中的匹配列名相乘

r - 如何动态创建具有整洁评估的列?