R数据。带有逻辑与的表%LIKE% [英] R data.table %like% with logical AND

查看:24
本文介绍了R数据。带有逻辑与的表%LIKE%的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试建立一个闪亮的应用程序,这是一个搜索引擎。 我根据搜索关键字返回一个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或B的所有字段。 如果我想要A&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

如果有许多字符串要比较,请使用ReduceMap

DT[Reduce(`&`, Map(`%like%`, list(field), c("A", "B")))]
#    field
#1: A_B_C
#2: B_A_D

这篇关于R数据。带有逻辑与的表%LIKE%的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆