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; 

Função INTCK no SAS

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

Add a Comment

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