Сопоставить два набора данных со связью записей в R
Я пытаюсь сопоставить два набора данных в R: datasetA и datasetB. Эти наборы данных содержат следующие столбцы.
datasetA
- ID: 15
- Имя: Питер Сандерс
- First_Name: Питер
- Last_Name: sanders
- ORG_NAME: кофе и пирожное
- Город: Нью-Йорк
- Сумма (в долларах США): 10369
- Категория: еда и напитки
- Дата: 12/01/2014
datasetB имеет похожие столбцы:
- Org_ID:5241
- имена: питер сандер
- Имя: Питер
- фамилия: сандер
- название компании: кофе и пирожные
- Расположение: Нью-Йорк
- профинансировано: 10000
- sub_cat: рестораны
- start_date: 2013-01-09 16:42:56
- дата окончания: 2015-01-04 11:43:39
Единственное точное совпадение - это имя "Питер". Но в моих наборах данных много компаний, поэтому в моем наборе будет много "Питеров", которые не принадлежат одному человеку. Поэтому я хочу сопоставить по сходству в нескольких столбцах.
Я хочу сопоставить эти два набора данных на основе информации во всех столбцах. Думаю, мне нужно сходство Левенштейна и сравнить для этого связь, однако мне это не удалось.
Кто-нибудь знает, как я могу соответствовать этому? Любая помощь будет принята с благодарностью.
1 ответ
Так как данные недоступны и я не могу дать много информации, но это поможет вам начать.
Я создал небольшой набор данных на основе вашего вопроса.
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