كيفية إجراء المطابقة الغامضة في 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