#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. Я пробовал , но твой подход сработал лучше, спасибо, Риза!