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