Как рассчитать разницу между двумя датами в sas
Вы можете использовать функцию INTCK в SAS, чтобы быстро вычислить разницу между двумя датами в SAS.
Эта функция использует следующий базовый синтаксис:
INTCK (интервал, дата начала, конечные данные, метод)
Золото:
- интервал : интервал для расчета (день, неделя, месяц, год и т. д.).
- дата начала : дата начала
- дата окончания : Дата окончания
- метод : следует ли считать полные интервалы («D» = Нет (по умолчанию), «C» = Да)
В следующем примере показано, как использовать эту функцию на практике.
Пример: вычислить разницу между датами в 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 14AUG2022
;
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);
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 ');
run ;
/*view new dataset*/
proc print data =new_data;
Обратите внимание на разницу между этой таблицей и предыдущей таблицей.
В этой таблице разница в неделях между 1 и 9 января рассчитывается как 1 , поскольку между этими датами может поместиться только одна полная неделя.
Однако в предыдущей таблице разница в неделях была рассчитана как 2 , поскольку между этими двумя датами были две неполные недели.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в SAS:
Как нормализовать данные в SAS
Как заменить символы в строке в SAS
Как заменить пропущенные значения нулями в SAS
Как удалить дубликаты в SAS