设置包含r中列表中的单词的数据框的子框



我有一个数据库(让我们称之为"DBA"),其中包含大约是物种观察的位置。32k行长,另一个数据库("DBB")包含aprox。87,000个研究区域内的地点名称。我需要开发一个脚本,在其中创建DBA的子集("DBC"),仅由包含DBB上列出的任何单词的条目组成。它应该检查32k行中的每一行,以查找DBB的第一个位置上的单词,然后是第二个位置,依此类推……DBA中可能有多个条目包含单词"empire state"。

这意味着如果DBB上有一个名为"empire state"的条目,那么包含这些单词的所有行都将包含在DBC中。理想情况下,这个脚本会考虑像"somewhere near empire state"或者"帝国大厦"。如果这是不可能的,一个精确匹配的词就足够了。

如果我只有一个位置名称,我知道subset()会给我提供我想要的东西,例如:

DBA = as_tibble(read.csv("./table.csv"))
DBC = subset(DBA, DBA$locationname == "empire state")

然而,我不能让它在列表上工作,我有8.7万个位置名称,我不愿意手工输入。我还尝试在我的子集上包括select()函数,但我收到错误…

我已经阅读了答案,其中这样的问题是用Python解决的,如这里,这里或这里,但我试图找到一个解决方案使用r。

如果它是长度为>1、使用%in%

vec_of_names <- c("empire state", "empire state building")
subset(DBA, locationname %in% vec_of_names)

最新更新