Jak wykonać dopasowanie rozmyte w sas-ie (z przykładem)


Często możesz chcieć połączyć dwa zestawy danych w SAS-ie w oparciu o niedoskonale pasujące ciągi znaków.

Nazywa się to często dopasowaniem rozmytym .

Najłatwiejszym sposobem przeprowadzenia dopasowania rozmytego w SAS-ie jest użycie funkcji SOUNDEX z funkcją COMPGED .

Te dwie funkcje służą do ilościowego określania podobieństwa między ciągami i można ich używać do „dopasowywania” podobnych ciągów.

Poniższy przykład pokazuje, jak używać tych funkcji do wykonywania dopasowywania rozmytego w SAS-ie.

Przykład: Jak wykonać dopasowanie rozmyte w SAS-ie

Załóżmy, że mamy następujący zbiór danych w SAS-ie, który zawiera informacje o nazwach drużyn i punktach różnych koszykarzy:

 /*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; 

Załóżmy, że mamy inny zbiór danych zawierający nazwy drużyn i asysty różnych koszykarzy:

 /*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; 

Należy pamiętać, że nazwy wielu zespołów w tym zbiorze danych są podobne, ale nie dokładnie takie same, jak nazwy zespołów w poprzednim zbiorze danych.

Możemy użyć następującej składni w SAS-ie, aby przeprowadzić dopasowanie rozmyte i połączyć te dwa zestawy danych w oparciu o podobne nazwy drużyn:

 /*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; 

przykład dopasowania rozmytego w SAS-ie

Funkcje SOUNDEX i COMPGED potrafią dopasowywać nazwy zespołów na podstawie ich podobieństwa i tworzyć ostateczny zbiór danych, który łączy oba zbiory danych.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w SAS-ie:

SAS: Jak wykonać połączenie jeden do wielu
SAS: Jak używać (in=a) w instrukcji scalania
SAS: Jak połączyć, jeśli A nie jest B

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *