Я работаю с R из фона SAS/SQL и пытаюсь написать код, чтобы взять две таблицы, сравнить их и предоставить список расхождений. Этот код будет использоваться повторно для многих разных наборов таблиц, поэтому мне нужно избегать жесткого кодирования.Найти расхождения между двумя таблицами
Я работаю с Identifying specific differences between two data sets in R, но это не доводит меня до конца.
Пример данные, используя комбинацию LastName/FirstName (который является уникальным) в качестве ключевого -
Dataset One --
Last_Name First_Name Street_Address ZIP VisitCount
Doe John 1234 Main St 12345 20
Doe Jane 4321 Tower St 54321 10
Don Bob 771 North Ave 23232 5
Smith Mike 732 South Blvd. 77777 3
Dataset Two --
Last_Name First_Name Street_Address ZIP VisitCount
Doe John 1234 Main St 12345 20
Doe Jane 4111 Tower St 32132 17
Donn Bob 771 North Ave 11111 5
Desired Output --
LastName FirstName VarName TableOne TableTwo
Doe Jane StreetAddress 4321 Tower St 4111 Tower St
Doe Jane Zip 23232 32132
Doe Jane VisitCount 5 17
Обратите внимание, что этот вывод игнорирует запись, где не имеет один и тот же идентификатор в обеих таблицах (например, поскольку фамилия Боба «Дон» в одной таблице, а «Донн» - в другой таблице, мы полностью игнорируем эту запись).
Я исследовал это, применяя функцию расплава на обоих наборах данных, а затем сравнивая их, но данные размера, с которыми я работаю, указывают, что это было бы непрактично. В SAS я использовал Proc Compare для такого рода работ, но я не нашел точного эквивалента в R.
Каков размер ваших данных? Возможно, это интересная информация для включения в ваш вопрос. :) – Bonifacio2
Вы не хотите, чтобы Джон Доу включился в результат? Его имя повторяется в обоих. Или вам просто нужны различия, если они не являются точными дубликатами? –
Размер данных сильно варьируется, но обычно он составляет около 1 миллиона записей или около того. – Netbrian