Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.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 - Fatal编程技术网

查找R中两个向量之间的部分匹配字符串

查找R中两个向量之间的部分匹配字符串,r,R,我正在使用R中的两个字符串向量 第一个是Owner,包含大约100000个元素,看起来像: > proprietor [1] "GERALD RICA LIMITED" [2] "EUROMASTER STUDIO SRL" [3] "CENTRE D'ECHANGES INTERNATIONAUX (CEI)

我正在使用R中的两个字符串向量

第一个是Owner,包含大约100000个元素,看起来像:

> proprietor
 [1] "GERALD RICA LIMITED"                                             
 [2] "EUROMASTER STUDIO SRL"                                           
 [3] "CENTRE D'ECHANGES INTERNATIONAUX (CEI)"                          
 [4] "RONTEC SERVICE STATION 1A LIMITED"                               
 [5] "MOORGARTH PROPERTIES (LUXEMBOURG) S.A.R.L"                       
 [6] "BEAVRON INVESTMENTS LIMITED"                                     
 [7] "MITRALI LIMITED" 
另一个名称包含大约700000个类似元素:

> name 
 [1] "MULTIPOINT HOLDINGS LIMITED"                                     
 [2] "NYASA PROPERTY LIMITED"                                          
 [3] "WHITE LODGE HOLDINGS LIMITED"                                    
 [4] "MULTIPOINT HOLDINGS LIMITED"                                     
 [5] "MULTIPOINT HOLDINGS LIMITED"                                     
 [6] "JBL INVESTMENT LIMITED"                                          
 [7] "DIMBLEBY LIMITED"                                                
 [8] "LIDL U.K. GMBH"     
我想知道所有者的哪些要素也在名称中,考虑到可能有一些拼写错误,或者一些像“LIMITED”这样的词也可以写为“LTD”

我已经尝试过的:

  • %name中的
    owner%返回一个空元素,我知道不是这样的

  • intersect(所有者,名称)
    不工作,因为我的向量中存在重复项

  • 主要是,我尝试使用
    agrep()
    进行循环,以允许部分匹配:

for(i在1:97034中){
if(is.null(agrep(所有者[i],姓名,最大距离=0.1,value=TRUE,useBytes=TRUE,costs=null,ignore.case=TRUE))==“TRUE”){

test[i]我将使用包
stringdist
中的函数
adist

最简单的工作示例:

创建一个非义词向量,并将该向量称为a:


a非常好用,非常感谢!!对于链接,我也非常感谢。
    for (i in 1:97034) {
      if (is.null(agrep(proprietor[i], name, max.distance=0.1, value=TRUE, useBytes=TRUE, costs=NULL, ignore.case=TRUE))=="TRUE") {
        test[i] <- 1
      } else {
        test[i] <- agrep(proprietor[i], name, max.distance=0.1, value=TRUE, useBytes=TRUE, costs=NULL, ignore.case=TRUE)
      }
    }
     [,1] [,2] [,3] [,4] [,5]
[1,]    3   15    7    7    8
[2,]    7    8    6    7    7
[3,]    7   10    2    3    5
[4,]    7   10    3    2    5
[5,]    8   11    5    5    0