Як виконати нечітку відповідність у sas (з прикладом)
Часто вам може знадобитися об’єднати два набори даних у SAS на основі неповно відповідних рядків.
Це часто називають нечітким узгодженням .
Найпростіший спосіб виконати нечітку відповідність у SAS — це використовувати функцію SOUNDEX із функцією COMPGED .
Ці дві функції використовуються для кількісного визначення подібності між рядками та можуть бути використані для «зіставлення» подібних рядків.
У наступному прикладі показано, як використовувати ці функції для виконання нечіткого зіставлення в SAS.
Приклад: як виконати нечітку відповідність у SAS
Припустімо, що в SAS є такий набір даних, який містить інформацію про назви команд і очки різних баскетболістів:
/*create first dataset*/
data data1;
input team $points;
datalines ;
Mavs 19
Nets 22
Kings 34
Warriors 19
Magic 32
;
run ;
/*view dataset*/
proc print data =data1;
І припустімо, що ми маємо інший набір даних із назвами команд і результативними передачами різних баскетболістів:
/*create second dataset*/
data data2;
input team $assists;
datalines ;
Netts 8
Majick 7
Keengs 8
Warriors 12
Mavs 4
;
run ;
/*view dataset*/
proc print data =data2;
Зауважте, що багато назв команд у цьому наборі даних схожі, але не зовсім такі, як назви команд у попередньому наборі даних.
Ми можемо використати такий синтаксис у SAS, щоб виконати нечітке зіставлення та об’єднати ці два набори даних на основі схожих імен команд:
/*use fuzzy matching to merge datasets based on similar team names*/ data data3; setdata1 ; tmp1= soundex (team); /*encode team names from data1 */ do i=1 to nobs; set data2( rename =(team=team2)) point =i nobs =nobs; tmp2= soundex (team2); /*encode team names from data2* / dif= compged (tmp1,tmp2); /*determine similarity between team names */ if dif<=50 then do ; drop i tmp1 tmp2 dif; /*dr op unnecessary variables*/ output ; end ; end ; run ; /*view resulting dataset*/ proc print data=data3;
Функції SOUNDEX і COMPGED можуть зіставляти назви команд на основі їх схожості та створювати остаточний набір даних, який об’єднує два набори даних.
Додаткові ресурси
У наступних посібниках пояснюється, як виконувати інші типові завдання в SAS:
SAS: як виконати злиття один до багатьох
SAS: як використовувати (in=a) у операторі злиття
SAS: як об’єднати, якщо A не B