我想在我的数据库中找到一些文本模式。 我有一个职位名称栏(数据分析师,数据科学家等),我试图查找具有某些职称的所有记录。我一直在使用以下代码:
grepl(".*Data.*Analyst.*, data$jobtitle, ignore.case = T)
效果很好,但它没有覆盖关键字的相反顺序 - "分析师数据"或"科学家数据"。
理想情况下,我很乐意搜索"数据"和"分析师"无论标题中关键字的位置如何..
答案 0 :(得分:1)
如果您想以任何顺序检查是否存在关键字“数据”和“分析师”,您可以使用正向前瞻:
grepl("(?=.*analyst)(?=.*data)",data$jobtitle,perl=T,ignore.case=T)
如果两个单词都存在,无论顺序或是否存在其他单词,都将返回true:
grepl("(?=.*analyst)(?=.*data)",c("Analyst data","Data Analyst","Data scientist","Analyst Science data"),perl=T,ignore.case=T)
[1] TRUE TRUE FALSE TRUE