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

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *