Освоение манипулирования датами SAS: руководство по извлечению месяца и года

Вы энтузиаст SAS и хотите улучшить свои навыки манипулирования датами? В этой статье блога мы рассмотрим различные методы извлечения месяца и года из даты в SAS. Независимо от того, являетесь ли вы новичком или опытным программистом, это руководство предоставит вам разговорные объяснения и примеры кода, необходимые для того, чтобы стать профессионалом в обработке дат в SAS.

  1. Использование функций МЕСЯЦ и ГОД.
    Один из самых простых способов извлечь месяц и год из даты — использовать встроенные функции МЕСЯЦ и ГОД в SAS. Эти функции принимают переменную даты в качестве входных данных и возвращают соответствующие значения месяца и года. Вот пример:

    data example;
      input datevar date9.;
      format datevar date9.;
      month = month(datevar);
      year = year(datevar);
    datalines;
    01JAN2024
    ;
    run;

    В этом фрагменте кода мы определяем переменную datevarи присваиваем ей значение «01JAN2024». Переменные monthи yearзатем заполняются с помощью функций МЕСЯЦ и ГОД соответственно.

  2. Использование функции 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 (фактически не меняя дату), но возвращая значения месяца и года.

  3. Разбор компонентов даты.
    Другой метод извлечения месяца и года — анализ отдельных компонентов даты с помощью функции SCAN. Вот пример:

    data example;
      input datevar $10.;
      month = scan(datevar, 2, '/');
      year = scan(datevar, 3, '/');
    datalines;
    01/01/2024
    ;
    run;

    В этом коде мы предполагаем, что переменная datevarимеет формат «ММ/ДД/ГГГГ». Функция SCAN используется для извлечения второго и третьего компонентов, которые соответствуют месяцу и году соответственно.

  4. Пользовательские форматы.
    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 предлагает ряд методов, отвечающих вашим потребностям. Приятного кодирования!