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