информа как SASв ternally видит
Пояснение
В форматах используются для преобразования в значения, поставленного на то, что SAS может надлежащим образом выполнять математические операции. Например,
01JAN2015
Само по себе, это просто строка символов. SAS не знает, как выполнить математику на 01JAN2015
, и она будет автоматически считывать значение в качестве символьной строки. Но, SAS делает знает, как интерпретировать то, что представляет эта строка. Вам просто нужно сказать SAS, чтобы интерпретировать его определенным образом.
Для того чтобы SAS выполняла математику по датам, используется контрольная дата 1/1/1960. Применяя informat date9.
, SAS может понять, что строка представляет 20 089-й день с 1 января 1960 года.Вывод будет выглядеть так:
20089
Это трудно для людей, чтобы читать. Вы можете применить к нему формат mmddyy10.
, чтобы вы могли его прочитать, но SAS также может это понять. Формат не изменит того, что видит SAS. Значение по-прежнему сохраняется как десятичное число, но способ его отображения более читабельен.
**To SAS** **To you**
date date
20089 01/01/2015
В вашем случае SAS знает, что значение, которое вы читаете, является числовым. Он будет автоматически считать, что это десятичное число, но мы знаем, что это не так.
Следуя приведенной выше логике, мы хотим применить информатив к числовым значениям, чтобы SAS интерпретировал значения как шестнадцатеричные, а не десятичные.
data want;
informat hex_value hex2.;
input hex_value;
datalines;
53
68
;
run;
Ваш стол будет выглядеть так:
hex_value
83
104
Если применить формат hex2.
, вы увидите таблицу вывода в виде шестнадцатеричной снова. Поскольку мы уже интерпретировали эту ценность, мы просто меняем то, как она выглядит на вас, но не так, как она выглядит на SAS:
**To SAS** **To you**
hex_value hex_value
83 53
104 68