Sas: как разделить строки по разделителю


Вы можете использовать функцию scan() в SAS, чтобы быстро разбить строку на основе определенного разделителя.

В следующем примере показано, как использовать эту функцию на практике.

Пример: разделение строк по разделителю в SAS

Предположим, у нас есть следующий набор данных в SAS:

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

Мы можем использовать следующий код, чтобы быстро разделить строку имени на три отдельные строки:

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

Обратите внимание, что строка столбца имени была разделена на три новых столбца.

Для имен, для которых имеется только один разделитель, значение в столбце name3 просто пустое.

Обратите внимание, что мы также можем использовать функцию drop , чтобы удалить исходный столбец имени из нового набора данных:

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

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в SAS:

Как нормализовать данные в SAS
Как переименовать переменные в SAS
Как удалить дубликаты в SAS
Как заменить пропущенные значения нулями в SAS

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *