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