Вы энтузиаст SAS и хотите улучшить свои навыки манипулирования датами? В этой статье блога мы рассмотрим различные методы извлечения месяца и года из даты в SAS. Независимо от того, являетесь ли вы новичком или опытным программистом, это руководство предоставит вам разговорные объяснения и примеры кода, необходимые для того, чтобы стать профессионалом в обработке дат в SAS.
-
Использование функций МЕСЯЦ и ГОД.
Один из самых простых способов извлечь месяц и год из даты — использовать встроенные функции МЕСЯЦ и ГОД в SAS. Эти функции принимают переменную даты в качестве входных данных и возвращают соответствующие значения месяца и года. Вот пример:data example; input datevar date9.; format datevar date9.; month = month(datevar); year = year(datevar); datalines; 01JAN2024 ; run;
В этом фрагменте кода мы определяем переменную
datevar
и присваиваем ей значение «01JAN2024». Переменныеmonth
иyear
затем заполняются с помощью функций МЕСЯЦ и ГОД соответственно. -
Использование функции INTNX:
Функция INTNX в SAS невероятно универсальна для манипулирования датами. Чтобы извлечь месяц и год, мы можем использовать функциюINTNX
с интервальными аргументами «МЕСЯЦ» и «ГОД». Вот пример:data example; input datevar date9.; format datevar date9.; month = month(intnx('month', datevar, 0)); year = year(intnx('year', datevar, 0)); datalines; 01JAN2024 ; run;
В этом коде функция
INTNX
используется для смещения интервалаdatevar
на 0 (фактически не меняя дату), но возвращая значения месяца и года. -
Разбор компонентов даты.
Другой метод извлечения месяца и года — анализ отдельных компонентов даты с помощью функции SCAN. Вот пример:data example; input datevar $10.; month = scan(datevar, 2, '/'); year = scan(datevar, 3, '/'); datalines; 01/01/2024 ; run;
В этом коде мы предполагаем, что переменная
datevar
имеет формат «ММ/ДД/ГГГГ». Функция SCAN используется для извлечения второго и третьего компонентов, которые соответствуют месяцу и году соответственно. -
Пользовательские форматы.
SAS позволяет создавать собственные форматы дат с помощью PROC FORMAT. Определив собственный формат для извлечения месяца и года, вы можете легко применить его к любой переменной даты. Вот пример:proc format; picture monthfmt low-high = '%B' (datatype = date); picture yearfmt low-high = '%Y' (datatype = date); run; data example; input datevar date9.; format datevar monthfmt.; month = input(put(datevar, monthfmt.), best.); format datevar yearfmt.; year = input(put(datevar, yearfmt.), best.); datalines; 01JAN2024 ; run;
В этом коде мы определяем пользовательские форматы
monthfmt
иyearfmt
с помощью оператора PICTURE в PROC FORMAT. Затем функцияinput
используется для преобразования форматированного значения обратно в числовое представление.
Имея в вашем распоряжении эти методы, вы теперь можете легко извлекать месяц и год из дат в SAS. Предпочитаете ли вы простоту встроенных функций или гибкость пользовательских форматов, SAS предлагает ряд методов, отвечающих вашим потребностям. Приятного кодирования!