基于 R 中的多个通配符条件对数据框进行子集化

Subsetting a Data Frame based on multiple wildcard criteria in R

我有一个名为 Test1 的数据框,其中包含 23 万家公司。我需要做的是将 Tests1 子集化为一个名为 FinalDS.

的新 DF

我创建了一个名为 Customers 的列表,其中包含我需要放入我的 FinalDS DF 中的多个客户名称变体(大约 100k)。 我正在寻找的是 R 来查看我的 Customers DF 并在 Test1 DF 中查找客户名称但是!....我需要的是 R 来扫描 Customers DF 并查看它是否可以将 Customers DF 中的客户名称的任何部分匹配到 Test1 DF

例如:

我在 Customers DF 上有这个客户: Centrica PLC

但是在 Test1 DF 上我有 Centrica 所以根据定义将没有匹配项。我知道我可以通过从 Customers DF 中删除 PLC 部分来使所有客户匹配,但我有一个大约 100k 客户的列表。

这是我写的代码:

Customers = c("Adidas","ADIDAS GROUP","ALIBABA GROUP","ALIBABA.COM (EUROPE) LTD"
              ,"Apple Asia Pacific Pte Ltd" ,"APPLE DISTRIBUTION INTERNATIONAL"
              ,"APPLE EUROPE LTD","Apple Sales International"
              ,"AVIVA-PLC","Aviva -Norwich Union"
              ,"Aviva -Norwich Union-MSP","AVIVA PLC"
              ,"AXA TECHNOLOGY SERVICES UK LTD","AXA UK PLC"
              ,"Bank of Baroda","Bank of Baroda"
              ,"BARCLAYS","BARCLAYS BANK PLC"
              ,"BARCLAYS PLC","BRAVURA SOLUTIONS LTD"
              ,"CENTRICA PLC","CISCO"
              ,"Cisco Systems LTD","CSC (NG)-MSP"
              ,"CSC COMPUTER SCIENCES LTD","EMC CORPORATION"
              ,"GE Infrastructure UK Limited","GE MEDICAL SYSTEMS INFORMATION TECHNOLOGIES GMBH")

FinalDS = subset(Test1, grepl(paste(Customers, collapse = "|"), Test1$Customer_Name))

所有这一切都是尝试逐字匹配我在 Customer 列表中的内容与 Test1 DF

请帮忙!

这个怎么样?

FinalDS = subset(
    Test1, 
    grepl(paste0("(", paste(Customers, collapse = "|"), ")"), Customer_Name))