我正在尝试匹配R中的两个数据集:datasetA和datasetB。这些数据集包含以下列。
数据集A
- 编号: 15
- 姓名:彼得·桑德斯
- First_Name:彼得·
- Last_Name:桑德斯
- ORG_NAME:咖啡和蛋糕
- 城市: 纽约
- 金额(美元): 10369
- 类别: 食品和饮料
- 日期: 12/01/2014
数据集 B 具有类似的列:
- ORG_ID:5241
- 姓名:彼得·桑德
- 名字:彼得
- 姓氏:桑德
- company_name:咖啡和蛋糕
- 地点: 纽约
- 资助: 10000
- sub_cat:餐厅
- start_date: 2013-01-09 16:42:56
- end_date: 2015-01-04 11:43:39
唯一完全匹配的是名字"彼得"。但是我的数据集包含许多公司,因此我的数据集中会有很多不是同一个人的"彼得"。因此,我想匹配多列中的相似性。
我想根据所有列中的信息匹配这两个数据集。我想我需要Levenshtein Similarity并为此进行比较.linkage,但是我没有成功。
有谁知道我怎么能匹配这个?任何帮助将不胜感激。
由于数据不可用,我能给出的输入也不多,但这应该可以让您入门。
我根据您的问题创建了小数据集。
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")
我使用R
的内置dist()
函数使用manhattan
距离查找相似性
dist(cbind(unlist(df1), unlist(df)), "manhattan")
结果
name firstname lastname
firstname 2
lastname 4 2
cname 6 4 2