Как использовать функцию intck в sas (с примерами)


Вы можете использовать функцию INTCK в SAS, чтобы быстро вычислить разницу между двумя датами в SAS.

Эта функция использует следующий базовый синтаксис:

INTCK (интервал, дата начала, конечные данные, метод)

Золото:

  • интервал : интервал для расчета (день, неделя, месяц, квартал, год и т. д.).
  • дата начала : дата начала
  • дата окончания : Дата окончания
  • метод : Подсчитайте интервалы, используя дискретный или непрерывный метод.

В следующем примере показано, как использовать эту функцию на практике.

Пример. Использование функции INTCK для расчета разницы между датами в SAS

Допустим, у нас есть следующий набор данных в SAS, который содержит две переменные даты:

 /*create dataset*/
data original_data;
    format start_date end_date date9. ;
    input start_date: date9. end_date: date9. ;
    datalines ;
01JAN2022 09JAN2022
01FEB2022 22FEB2022 
14MAR2022 04APR2022
01MAY2022 14AUG2023
06AUG2022 10NOV2024
;
run ;

/*view dataset*/
proc print data = original_data; 

Мы можем использовать следующий код для расчета разницы между значениями переменных start_date и end_date в днях, неделях, месяцах, кварталах и годах:

 /*create new dataset*/
data new_data;
    set original_data;
    days_diff = intck (' day ', start_date, end_date);
    weeks_diff = intck (' weeks ', start_date, end_date);
    months_diff = intck (' months ', start_date, end_date);
    qtr_diff = intck (' qtr ', start_date, end_date);
    years_diff = intck (' years ', start_date, end_date);
run ;

/*view new dataset*/
proc print data = new_data; 

Функция INTCK в SAS

Пять новых переменных показывают разницу между start_date и end_date в днях, неделях, месяцах, кварталах и годах.

Обратите внимание, что мы можем использовать аргумент « c » в функции INTCK , чтобы вычислить разницу только в полных днях, неделях, месяцах, кварталах и годах:

 /*create new dataset*/
data new_data;
    set original_data;
    days_diff = intck (' day ', start_date, end_date, ' c ');
    weeks_diff = intck (' weeks ', start_date, end_date, ' c ');
    months_diff = intck (' months ', start_date, end_date, ' c ');
    qtr_diff = intck (' qtr ', start_date, end_date, ' c ');
    years_diff = intck (' years ', start_date, end_date, ' c ');
run ;

/*view new dataset*/
proc print data = new_data; 

Обратите внимание на разницу между этой таблицей и предыдущей таблицей.

В этой таблице разница в неделях между 1 и 9 января рассчитывается как 1 , поскольку между этими датами может поместиться только одна полная неделя.

Однако в предыдущей таблице разница в неделях была рассчитана как 2 , поскольку между этими двумя датами было две неполные недели.

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в SAS:

Как преобразовать DateTime в дату в SAS
Как добавить дни к дате в SAS
Как получить день недели из даты в SAS

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *