Data test;
x="20161";
run;
У меня есть дата «20161» (то есть «jan2016») в качестве символа, теперь я хочу показать его как «jan2016», как я могу это сделать?Преобразование символов в даты
Data test;
x="20161";
run;
У меня есть дата «20161» (то есть «jan2016») в качестве символа, теперь я хочу показать его как «jan2016», как я могу это сделать?Преобразование символов в даты
Чтобы быть ясным, вы начинаете с строковой переменной и хотите, чтобы результат был строковой переменной? Это кажется потенциально ограничивающим, поскольку даты легче манипулировать как числа.
Принимая ваш запрос буквально, я проанализирую первые 4 символа предоставленной строки и сделаю их год. Тогда я буду рассматривать всех других персонажей, как месяц. Мы создадим истинную дату (числовой var) из этого с помощью функции MDY(), предположив, что день = 1.
Это дает нам промежуточную числовую переменную, и мы перейдем к функции PUT(), чтобы мы могли преобразовать число в строку в желаемом MONYY7. формат. Последняя часть состоит в том, что вы хотите, чтобы строка вывода была строчной, поэтому мы завершим окончательный результат в функции LOWCASE().
Data test;
x="20161"; *the input;
y = mdy(substr(x,5),1,substr(x,1,4)); *a temporary intermediate variable that's a date/numeric var;
z = lowcase(put(y, MONYY7.)); *convert back to string in the desired format, and lowercase it;
drop y; *no longer needed;
run;
Вы можете использовать форматы. 'PROC FORMAT' позволяет вам создать свой собственный формат, чтобы изменить, как выглядят ваши данные: http://www2.sas.com/proceedings/sugi30/001-30.pdf –
Как бы выглядели двухзначные месяцы, если вам интересно о тех? "201610"? – superfluous