как сравнить 2 столбца в 2 таблицах с помощью SAS

#sas #compare

Вопрос:

в 2 таблицах a1, a2 есть 2 одинаковых столбца (x1 против x2). Как я могу сопоставить их и определить их состав? Я попытался сравнить функцию, но потерпел неудачу.

 data a1;
input x1 $15.;
cards;
abcd
go shopping
DUT univarsity 
he is driving 
;
run;
data a2;
input x2 $15.;
 cards;
golf shopping
she is driving
abcdf
DUT univars 
;
run;
 

и мне нужна итоговая таблица с совпадающими значениями:

 abcd               abcdf
go shopping        golf shopping
DUT univarsity     DUT univars
he is driving      she is driving
 

Ответ №1:

Это решение не будет хорошо масштабироваться, но вы поняли идею. Используйте COMPGED, чтобы найти ближайшее совпадение и взять минимум. Это не относится к случаям, когда у вас нет подходящего партнера.

По сути, вы выполняете нечеткое сопоставление, что является вычислительно трудоемким процессом.

 proc sql;
create table want as
select t1.x1, t2.x2 
from a1 as t1, a2 as t2
group by t1.x1
having compged(x1, x2) = min(compged(x1, x2));
quit;
 

Комментарии:

1. Я пробовал , но твой подход сработал лучше, спасибо, Риза!