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

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 просто пустое.

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

/\*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 , '_');
 drop name;
run ;

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

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

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

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

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.