Sas: різниця між put і input
Ви можете використовувати функції PUT і INPUT у SAS для перетворення змінних на різні типи даних.
Ось різниця між двома функціями:
Функція PUT приймає символьні або числові змінні як вхідні дані та завжди виводить символьні змінні .
Функція INPUT приймає лише символьні змінні як вхідні дані та може виводити символьні чи числові змінні .
У наведених нижче прикладах показано два поширені способи використання функцій PUT і INPUT на практиці.
Приклад 1: використання PUT для перетворення числової змінної на символьну
Припустімо, у нас є такий набір даних у SAS, який показує загальну кількість продажів, здійснених магазином протягом 10 днів поспіль:
/*create dataset*/ data original_data; input day sales; datalines ; 1 7 2 12 3 15 4 14 5 13 6 11 7 10 8 16 9 18 10 24 ; run ; /*view dataset*/ proc print data = original_data;
Ми можемо використовувати вміст процедури для відображення типу даних кожної змінної в наборі даних:
/*display data type for each variable*/
proc contents data =original_data;
Ми бачимо, що цей день і продажі є числовими змінними.
Ми можемо використовувати функцію PUT , щоб перетворити змінну дня з числової на символьну:
/*create new dataset where 'day' is character*/
data new_data;
set original_data;
char_day = put (day, 8.);
drop day;
run ;
/*view new dataset*/
proc print data =new_data;
Ми знову можемо використати вміст proc , щоб перевірити тип даних кожної змінної в новому наборі даних:
/*display data type for each variable in new dataset*/
proc contents data =new_data;
Ми успішно використали функцію PUT для перетворення змінної дня з числової на нову символьну змінну під назвою char_day .
Приклад 2: використання INPUT для перетворення символьної змінної на числову
Припустімо, у нас є такий набір даних у SAS, який показує загальну кількість продажів, здійснених магазином протягом 10 днів поспіль:
/*create dataset*/ data original_data; input day $sales; datalines ; 1 7 2 12 3 15 4 14 5 13 6 11 7 10 8 16 9 18 10 24 ; run ; /*view dataset*/ proc print data = original_data;
Ми можемо використовувати вміст процедури для відображення типу даних кожної змінної в наборі даних:
/*display data type for each variable*/
proc contents data =original_data;
Ми бачимо, що день є символьною змінною, а обсяг продажів є числовою змінною.
Ми можемо використовувати функцію INPUT , щоб перетворити змінну дня з символьної в числову:
/*create new dataset where 'day' is numeric*/
data new_data;
set original_data;
numeric_day = input (day, comma9.);
drop day;
run ;
/*view new dataset*/
proc print data =new_data;
Ми знову можемо використати вміст proc , щоб перевірити тип даних кожної змінної в новому наборі даних:
/*display data type for each variable in new dataset*/
proc contents data = new_data;
Ми успішно використали функцію INPUT для перетворення змінної day із символьної змінної на нову числову змінну під назвою numeric_day .
Додаткові ресурси
У наступних посібниках пояснюється, як виконувати інші типові завдання в SAS:
SAS: Як перетворити символьну змінну на числову
SAS: Як перетворити числову змінну на символьну
SAS: Як перетворити символьну змінну на дату
SAS: Як перетворити числову змінну на дату