So führen sie fuzzy matching in sas durch (mit beispiel)
Häufig möchten Sie möglicherweise zwei Datensätze in SAS auf der Grundlage unvollständig übereinstimmender Zeichenfolgen zusammenführen.
Dies wird oft als Fuzzy-Matching bezeichnet.
Der einfachste Weg, Fuzzy-Matching in SAS durchzuführen, ist die Verwendung der SOUNDEX- Funktion mit der COMPGED- Funktion.
Diese beiden Funktionen werden zur Quantifizierung der Ähnlichkeit zwischen Zeichenfolgen verwendet und können zum „Abgleichen“ ähnlicher Zeichenfolgen verwendet werden.
Das folgende Beispiel zeigt, wie diese Funktionen verwendet werden, um Fuzzy-Matching in SAS durchzuführen.
Beispiel: So führen Sie Fuzzy-Matching in SAS durch
Angenommen, wir haben den folgenden Datensatz in SAS, der Informationen über die Teamnamen und Punkte verschiedener Basketballspieler enthält:
/*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;
Und nehmen wir an, wir hätten einen weiteren Datensatz mit den Teamnamen und Assists verschiedener Basketballspieler:
/*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;
Beachten Sie, dass viele Teamnamen in diesem Datensatz den Teamnamen im vorherigen Datensatz ähneln, aber nicht genau mit ihnen übereinstimmen.
Wir können die folgende Syntax in SAS verwenden, um einen Fuzzy-Match durchzuführen und diese beiden Datensätze basierend auf ähnlichen Teamnamen zusammenzuführen:
/*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;
Die Funktionen SOUNDEX und COMPGED sind in der Lage, Teamnamen anhand ihrer Ähnlichkeit abzugleichen und einen endgültigen Datensatz zu erstellen, der die beiden Datensätze zusammenführt.
Zusätzliche Ressourcen
In den folgenden Tutorials wird erläutert, wie Sie andere häufige Aufgaben in SAS ausführen:
SAS: So führen Sie eine Eins-zu-Viele-Zusammenführung durch
SAS: Verwendung von (in=a) in der Merge-Anweisung
SAS: So führen Sie eine Zusammenführung durch, wenn A nicht B ist