Сопоставить два набора данных со связью записей в 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
Другие вопросы по тегам