Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 查找命名嵌套列表和数据框列之间的单词匹配_R_Regex_String_Dictionary_Regex Lookarounds - Fatal编程技术网

R 查找命名嵌套列表和数据框列之间的单词匹配

R 查找命名嵌套列表和数据框列之间的单词匹配,r,regex,string,dictionary,regex-lookarounds,R,Regex,String,Dictionary,Regex Lookarounds,我有一个为特定类别的工作命名的列表列表,每个嵌套列表都是该工作类别的关键字列表,我正在尝试检查数据框中包含工作标题列表的列,以查看关键字是否在工作标题中。最终目标是尽可能将每项工作分类为最佳工作。我提供了一个数据样本,因为有超过15000个职位和25个不同的工作类别需要检查 这是Rstudio。我试过使用Lappy和str_detect。下面是我使用的代码 库(stringr) cat.keys您可以利用正则表达式模式中的单词边界(并使用regex(),而不是fixed())来帮助您进行搜索。这

我有一个为特定类别的工作命名的列表列表,每个嵌套列表都是该工作类别的关键字列表,我正在尝试检查数据框中包含工作标题列表的列,以查看关键字是否在工作标题中。最终目标是尽可能将每项工作分类为最佳工作。我提供了一个数据样本,因为有超过15000个职位和25个不同的工作类别需要检查

这是Rstudio。我试过使用Lappy和str_detect。下面是我使用的代码

库(stringr)

cat.keys您可以利用正则表达式模式中的单词边界(并使用
regex()
,而不是
fixed()
)来帮助您进行搜索。这应该是您的开始--如果遇到更多问题,请告诉我:

# Adding word boundaries to each string
cat.keys2 <- lapply(cat.keys, function(x) paste0("\\b", x, "\\b"))

# Using new cat.key with regex() and ignoring case
lapply(jobs.df$Job.Title, 
       function(x) sapply(cat.keys2, function(y) str_detect(x, regex(y, ignore_case = T))))
#为每个字符串添加单词边界

cat.keys2您可以利用正则表达式模式中的单词边界(并使用
regex()
,而不是
fixed()
)来帮助您进行搜索。这应该是您的开始--如果遇到更多问题,请告诉我:

# Adding word boundaries to each string
cat.keys2 <- lapply(cat.keys, function(x) paste0("\\b", x, "\\b"))

# Using new cat.key with regex() and ignoring case
lapply(jobs.df$Job.Title, 
       function(x) sapply(cat.keys2, function(y) str_detect(x, regex(y, ignore_case = T))))
#为每个字符串添加单词边界

cat.keys2似乎有效。谢谢如果以后发生了其他引起bug的事情,我会让你知道。我只是简单地把这个词的不同形式添加到列表中。我认为这更容易。谢谢你的主意。这似乎奏效了。谢谢如果以后发生了其他引起bug的事情,我会让你知道。我只是简单地把这个词的不同形式添加到列表中。我认为这更容易。谢谢你的主意。