Hoe de scan-functie in sas te gebruiken (met voorbeelden)
U kunt de SCAN- functie in SAS gebruiken om het n- de woord uit een tekenreeks te extraheren.
Deze functie gebruikt de volgende basissyntaxis:
SCAN (tekenreeks, nummer)
Goud:
- string : De tekenreeks die moet worden geparseerd
- count : Het zoveelste woord dat moet worden geëxtraheerd
Dit zijn de drie meest voorkomende manieren om deze functie te gebruiken:
Methode 1: haal het zoveelste woord uit de string
data new_data;
set original_data;
second_word = scan (string_variable, 2 );
run ;
Methode 2: Extraheer het laatste woord uit de string
data new_data;
set original_data;
last_word = scan (string_variable, -1 );
run ;
Methode 3: Extraheer meerdere woorden uit een string
data new_data;
set original_data;
first_word = scan (string_variable, 1 );
second_word = scan (string_variable, 2 );
third_word = scan (string_variable, 3 );
run ;
De volgende voorbeelden laten zien hoe u elke methode kunt gebruiken met de volgende gegevensset in SAS:
/*create dataset*/
data original_data;
input name $20. dirty;
datalines ;
Andy Lincoln Bernard 55
Barren Michael Smith 41
Chad Simpson Arnolds 13
Derrick Parson Henry 29
Eric Miller Johansen 47
Frank Giovanni Goode 61
;
run ;
/*view dataset*/
proc print data = original_data;
Voorbeeld 1: Extraheer het n- de woord uit de string
De volgende code laat zien hoe u het tweede woord uit elke tekenreeks in de naamkolom kunt extraheren:
/*extract second word in each row of name column*/
data new_data;
set original_data;
second_word = scan (name, 2 );
run ;
/*view results*/
proc print data =new_data;
Merk op dat de nieuwe kolom genaamd second_word het tweede woord van elke string in de naamkolom bevat.
Voorbeeld 2: Extraheer het laatste woord uit de string
De volgende code laat zien hoe u de waarde -1 in de scanfunctie gebruikt om het laatste woord van elke tekenreeks in de naamkolom te extraheren:
/*extract last word in each row of name column*/
data new_data;
set original_data;
last_word = scan (name, -1 );
run ;
/*view results*/
proc print data =new_data;
Houd er rekening mee dat de nieuwe kolom met de naam last_word het laatste woord van elke tekenreeks in de naamkolom bevat.
Voorbeeld 3: Haal meerdere woorden uit een string
De volgende code laat zien hoe u de scanfunctie gebruikt om elk woord uit elke tekenreeks in de naamkolom te extraheren:
/*extract each word in each row of name column*/
data new_data;
set original_data;
first_word = scan (name, 1 );
second_word = scan (name, 2 );
third_word = scan (name, 3 );
run ;
/*view results*/
proc print data =new_data;
Merk op dat er drie nieuwe kolommen zijn gemaakt met het eerste, tweede en derde woord van elke tekenreeks in de naamkolom .
Aanvullende bronnen
In de volgende zelfstudies wordt uitgelegd hoe u andere veelvoorkomende taken in SAS kunt uitvoeren:
Hoe de SUBSTR-functie in SAS te gebruiken
Hoe de FIND-functie in SAS te gebruiken
Hoe de COALESCE-functie in SAS te gebruiken