Как рассчитать разницу между двумя датами в 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

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

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