匹配R中具有记录链接的两个数据集

时间:2018-03-15 13:44:10

标签: r compare matching levenshtein-distance record-linkage

我正在尝试匹配R中的两个数据集:datasetA和datasetB。这些数据集包含以下列。

datasetA

  • ID:15
  • 姓名:peter sanders
  • First_Name:peter
  • Last_Name:sanders
  • ORG_NAME:咖啡和蛋糕
  • 城市:纽约
  • 金额(美元):10369
  • 类别:食物&饮料
  • 日期:2014年1月12日

datasetB有类似的列:

  • ORG_ID:5241
  • 姓名:peter sander
  • 名字:peter
  • 姓氏:sander
  • company_name:咖啡和蛋糕
  • 地点:纽约
  • 资助:10000
  • sub_cat:餐馆
  • start_date:2013-01-09 16:42:56
  • end_date:2015-01-04 11:43:39

唯一完全匹配的是名字' peter'。但我的数据集包含许多公司,因此我的数据集中会有许多不同的人。因此,我希望在多列中匹配相似性。

我想根据所有列中的信息匹配这两个数据集。我想我需要Levenshtein的相似性和比较链接,但是我没有成功。

有谁知道我怎么能匹配这个?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

由于数据不可用且我可以提供的输入不多,但这应该可以让你开始。

我根据您的问题创建了小型数据集。

df <- data.frame(name="Peter Sanders", firstname="peter", lastname = "sanders", 
                 org= "coffee&cake")

df1 <- data.frame(name="Peter Sandesadasdasdasr", firstname="peter", lastname = "sander", 
                 cname= "coffee and cake")

我使用dist()的内置R函数来查找使用manhattan距离的相似度

dist(cbind(unlist(df1), unlist(df)), "manhattan")

<强>结果

          name firstname lastname
firstname    2                   
lastname     4         2         
cname        6         4        2