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 для преобразования переменной дня из символьной переменной в новую числовую переменную с именем numeric_day .
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в SAS:
SAS: как преобразовать символьную переменную в числовую
SAS: как преобразовать числовую переменную в символьную
SAS: как преобразовать символьную переменную в дату
SAS: как преобразовать числовую переменную в дату