Como usar a função intck no sas (com exemplos)
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, trimestre, ano, etc.)
- data de início : a data de início
- data de término : a data de término
- método : contar intervalos usando um método discreto ou contínuo
O exemplo a seguir mostra como usar esta função na prática.
Exemplo: usando a função INTCK para calcular 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 14AUG2023
06AUG2022 10NOV2024
;
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, meses, trimestres e anos:
/*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);
qtr_diff = intck (' qtr ', start_date, end_date);
years_diff = intck (' years ', start_date, end_date);
run ;
/*view new dataset*/
proc print data = new_data;
As cinco novas variáveis mostram a diferença entre data_inicial e data_final em dias, semanas, meses, trimestres e anos.
Observe que podemos usar o argumento ‘ c ‘ na função INTCK para calcular apenas a diferença em dias, semanas, meses, trimestres e anos 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 ');
qtr_diff = intck (' qtr ', start_date, end_date, ' c ');
years_diff = intck (' years ', 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 converter DateTime em data no SAS
Como adicionar dias atualizados no SAS
Como obter o dia da semana a partir da data no SAS