Як видалити початкові нулі в sas (з прикладами)


Найпростіший спосіб видалити початкові нулі в символьній змінній у SAS — це використати функцію INPUT для перетворення змінної на числову змінну, яка автоматично видаляє початкові нулі.

Ця функція використовує такий базовий синтаксис:

 data new_data;
    set original_data;
    no_zeros = input(some_column, comma9. );
run ;

У наступному прикладі показано, як використовувати цей синтаксис на практиці.

Приклад: видаліть початкові нулі в SAS

Припустімо, що ми маємо такий набір даних у SAS, який показує загальні продажі, здійснені різними роздрібними магазинами:

 /*create dataset*/
data original_data;
    inputstore $sales$;
    datalines ;
A 055
B145
C 199
D 0000443
E 0093
F 00004302
G 38
H 0055
;
run ;

/*view dataset*/
proc print data = original_data; 

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

 /*remove leading zeros in sales column*/
data new_data;
    set original_data;
    no_zeros = input (sales, order9. );
run ;

/*view results*/
proc print data = new_data; 

SAS видаляє початкові нулі

Зверніть увагу, що всі початкові нулі були видалені зі значень у стовпці no_zeros .

Зауважте, що новий стовпець no_zeros є числовим.

Якщо ви хочете зберегти його як стовпець символів, ви можете обернути функцію PUT навколо функції INPUT таким чином:

 /*remove leading zeros in sales column*/
data new_data;
    set original_data;
    no_zeros = put ( input (sales, order9. ), 8. );
run ;

/*view results*/
proc print data = new_data; 

SAS видаляє початкові нулі

Якщо ми використаємо use proc contents для відображення типу даних кожної змінної в наборі даних, ми побачимо, що no_zeros є символьною змінною:

 /*view data type of each variable in new dataset*/
proc contents data =new_data; 

Додаткові ресурси

У наступних посібниках пояснюється, як виконувати інші типові завдання в SAS:

Як нормалізувати дані в SAS
Як визначити викиди в SAS
Як використовувати зведення процедур у SAS
Як створити частотні таблиці в SAS

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

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