Como calcular a diferença entre duas datas no sas


Você pode usar a função INTCK no SAS para calcular rapidamente a diferença entre duas datas no SAS.

Esta função usa a seguinte sintaxe básica:

INTCK (intervalo, data de início, dados finais, método)

Ouro:

  • intervalo : intervalo a ser calculado (dia, semana, mês, ano, etc.)
  • data de início : a data de início
  • data de término : a data de término
  • método : se deve contar intervalos completos (‘D’ = Não (padrão), ‘C’ = Sim)

O exemplo a seguir mostra como usar esta função na prática.

Exemplo: Calcule a diferença entre datas no SAS

Digamos que temos o seguinte conjunto de dados no SAS que contém duas variáveis de data:

 /*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; 

Podemos usar o código a seguir para calcular a diferença entre os valores das variáveis start_date e end_date em dias, semanas e meses:

 /*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; 

As três novas variáveis mostram a diferença entre data_inicial e data_final em dias, semanas e meses.

Observe que podemos usar o argumento ‘ c ‘ na função INTCK para calcular apenas a diferença em dias, semanas e meses completos:

 /*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; 

Observe a diferença entre esta tabela e a tabela anterior.

Nesta tabela, a diferença de semanas entre 1º de janeiro e 9 de janeiro é calculada como 1 , pois apenas uma semana inteira pode caber entre essas datas.

No entanto, na tabela anterior, a diferença em semanas foi calculada em 2 , uma vez que houve duas semanas parciais entre estas duas datas.

Recursos adicionais

Os tutoriais a seguir explicam como executar outras tarefas comuns no SAS:

Como normalizar dados no SAS
Como substituir caracteres em uma string no SAS
Como substituir valores ausentes por zero no SAS
Como remover duplicatas no SAS

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *