Как рассчитать разницу между двумя датами в SAS

Как рассчитать разницу между двумя датами в SAS

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

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

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

куда:

  • interval : Интервал для расчета (день, неделя, месяц, год и т. д.)
  • Дата начала : Дата начала
  • Дата окончания : Дата окончания
  • method : считать ли полные интервалы («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

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.