R data.table %like% 带有逻辑 AND

2024-05-04

我正在尝试构建一个闪亮的搜索引擎应用程序。 我根据搜索关键字返回 data.table:

DT <- data.table(field = c("A_B_C","A_C_D","A_D_A","B_A_D","B_C_F","B_D_K"))

DT[field %like% "A|B"]

上面返回包含 A OR B 的所有字段。 如果我想要 A 和 B:

DT[field %like% "A"][field %like% "B"]

是否有一种语法可以让我对任意数量的关键字执行上述操作。 就像是:

DT[field %like% "A & B & C"]

如果只有两个元素,则分别比较它们,然后执行&并对数据集进行子集化

DT[field %like% "A" & field %like% "B"]
#  field
#1: A_B_C
#2: B_A_D

如果有很多字符串要比较使用Reduce with Map.

DT[Reduce(`&`, Map(`%like%`, list(field), c("A", "B")))]
#    field
#1: A_B_C
#2: B_A_D
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

R data.table %like% 带有逻辑 AND 的相关文章

随机推荐