有没有办法将Rstudio的集成搜索功能复制为代码?

时间:2018-03-31 14:34:46

标签: r rstudio

对于上下文,我今天早些时候提出了一个问题,即通过使用" stringdist"将公司名称与具有许多不同公司名称的大型列表的各种变体进行匹配。来自stringdist包的函数,以便识别那个大列表中的公司。 This is the question I asked

不幸的是,我无法对我的代码进行任何改进,这就是为什么我开始远离stringdist并尝试完全不同的东西。

我使用Rstudio,我注意到该程序中的内部搜索功能更有效:

enter image description here

正如您在图片中看到的那样,只需在右上角搜索公司名称即可获得我正在寻找的输出,例如更长的名称" AMMINEX EMISSIONS ...& #34;和#34; AMMINEX AS"。

然而,在我之前尝试使用stringdist函数时(请参阅我上一个问题的链接),我会得到像" LAMINEX"这些都不是相关的,但会出现在更有用的比赛之前:

enter image description here

所以看起来使用Rstudio使用的算法在我的情况下效率更高,但是我不太确定是否可以以代码形式复制此算法,而不必手动搜索每家公司。

假设我有一个如下所示的数据框:

Company_list <- data.frame(Companies=c('AMMINEX', 'Microsoft', 'Apple'))

对于我来说,同时搜索所有3家公司并在数据框中获得相同类型的结果会是什么样的方式,比如第一张图片中的Rstudio?

1 个答案:

答案 0 :(得分:0)

根据您对哪些结果好坏的描述,听起来您喜欢子串的精确匹配,而不是那些距离测量值接近的事情。在这种情况下,您可以使用grepl

模仿Rstudio的搜索功能
library(tidyverse)
demo.df <- data.frame(name = paste(rep(c("abc","jkl","xyz"), each=4), sample(1:100,4*3)), limbs=1:4*3)
demo.df%>%filter(grepl('abc|xyz',name))

grepl模式字符串中的管道意味着&#39;或者&#39;,允许您同时搜索多个公司。因此,要从示例数据框中搜索名称,此字符串将为paste0(Company_list$Companies,collapse="|")这是您之后的目标吗?