【问题标题】:Subsetting a Data Frame based on multiple wildcard criteria in R基于 R 中的多个通配符标准对数据框进行子集化
【发布时间】:2017-12-05 07:36:33
【问题描述】:

我有一个名为 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

请帮忙!

【问题讨论】:

    标签: r dataframe grepl


    【解决方案1】:

    这个怎么样?

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

    【讨论】:

      猜你喜欢
      • 2020-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-27
      • 2020-02-25
      • 2018-05-08
      • 1970-01-01
      • 2021-12-04
      相关资源
      最近更新 更多