Как использовать функцию 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;
Пять новых переменных показывают разницу между 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