Cara melakukan fuzzy matching di sas (dengan contoh)
Seringkali, Anda mungkin ingin menggabungkan dua kumpulan data di SAS berdasarkan string yang tidak cocok secara sempurna.
Hal ini sering disebut pencocokan fuzzy .
Cara termudah untuk melakukan pencocokan fuzzy di SAS adalah dengan menggunakan fungsi SOUNDEX dengan fungsi COMPGED .
Kedua fungsi ini digunakan untuk mengukur kemiripan antar string dan dapat digunakan untuk “mencocokkan” string serupa.
Contoh berikut menunjukkan cara menggunakan fungsi ini untuk melakukan pencocokan fuzzy di SAS.
Contoh: Cara melakukan pencocokan fuzzy di SAS
Misalkan kita memiliki kumpulan data berikut di SAS yang berisi informasi tentang nama tim dan poin dari berbagai pemain bola basket:
/*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;
Dan misalkan kita memiliki kumpulan data lain dengan nama tim dan assist dari berbagai pemain bola basket:
/*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;
Perhatikan bahwa banyak nama tim di kumpulan data ini serupa tetapi tidak persis sama dengan nama tim di kumpulan data sebelumnya.
Kita dapat menggunakan sintaks berikut di SAS untuk melakukan pencocokan fuzzy dan menyatukan kedua kumpulan data ini berdasarkan nama tim yang serupa:
/*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;
Fungsi SOUNDEX dan COMPGED mampu mencocokkan nama tim berdasarkan kemiripannya dan menghasilkan dataset akhir yang menggabungkan kedua dataset tersebut.
Sumber daya tambahan
Tutorial berikut menjelaskan cara melakukan tugas umum lainnya di SAS:
SAS: Cara melakukan penggabungan satu ke banyak
SAS: Cara menggunakan (in=a) dalam pernyataan penggabungan
SAS: Bagaimana cara menggabungkan jika A bukan B