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