วิธีดำเนินการ fuzzy matching ใน 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