Sas: jak podzielić ciągi znaków za pomocą ograniczników


Możesz użyć funkcji scan() w SAS-ie, aby szybko podzielić ciąg znaków na podstawie określonego ogranicznika.

Poniższy przykład pokazuje, jak w praktyce wykorzystać tę funkcję.

Przykład: Podziel ciągi znaków według ograniczników w SAS-ie

Załóżmy, że mamy następujący zestaw danych w SAS-ie:

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

Możemy użyć poniższego kodu, aby szybko podzielić ciąg nazwy na trzy oddzielne ciągi:

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

Należy zauważyć, że ciąg kolumny nazwy został podzielony na trzy nowe kolumny.

W przypadku nazw, dla których występuje tylko jeden ogranicznik, wartość w kolumnie nazwa3 jest po prostu pusta.

Zauważ, że możemy również użyć funkcji drop , aby usunąć oryginalną kolumnę name z nowego zbioru danych:

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

Dodatkowe zasoby

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

Jak normalizować dane w SAS-ie
Jak zmienić nazwy zmiennych w SAS-ie
Jak usunąć duplikaty w SAS-ie
Jak zastąpić brakujące wartości zerem w SAS-ie

Dodaj komentarz

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