Sas: tekenreeksen splitsen op scheidingsteken


U kunt de functie scan() in SAS gebruiken om snel een tekenreeks te splitsen op basis van een bepaald scheidingsteken.

Het volgende voorbeeld laat zien hoe u deze functie in de praktijk kunt gebruiken.

Voorbeeld: tekenreeksen splitsen op scheidingsteken in SAS

Laten we aannemen dat we de volgende gegevensset in SAS hebben:

 /*create dataset*/
data my_data1;
    input name $25.;
    datalines ;
Andy_Lincoln_Bernard
Barry_Michael
Chad_Simpson_Smith
Derrick_Parson_Henry
Eric_Miller
Frank_Giovanni_Goodwill
;
run ;

/*print dataset*/
proc print data =my_data1;

We kunnen de volgende code gebruiken om de naamreeks snel in drie afzonderlijke tekenreeksen te splitsen:

 /*create second dataset with name split into three columns*/
data my_data2;
set my_data1;
    name1= scan (name, 1 , '_');
    name2= scan (name, 2 , '_');
    name3= scan (name, 3 , '_');
run ;

/*view second dataset*/
proc print data =my_data2; 

Houd er rekening mee dat de naamkolomreeks is opgesplitst in drie nieuwe kolommen.

Voor namen waarvoor er slechts één scheidingsteken is, is de waarde in de kolom naam3 eenvoudigweg leeg.

Merk op dat we ook de drop- functie kunnen gebruiken om de originele naamkolom uit de nieuwe dataset te verwijderen:

 /*create second dataset with name split into three columns, drop original name*/
data my_data2;
set my_data1;
    name1= scan (name, 1 , '_');
    name2= scan (name, 2 , '_');
    name3= scan (name, 3 , '_');
    dropname ;
run ;

/*view second dataset*/
proc print data =my_data2; 

Aanvullende bronnen

In de volgende zelfstudies wordt uitgelegd hoe u andere veelvoorkomende taken in SAS kunt uitvoeren:

Gegevens normaliseren in SAS
Variabelen hernoemen in SAS
Hoe duplicaten in SAS te verwijderen
Hoe ontbrekende waarden te vervangen door nul in SAS

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert