Come utilizzare la funzione intck in sas (con esempi)


È possibile utilizzare la funzione INTCK in SAS per calcolare rapidamente la differenza tra due date in SAS.

Questa funzione utilizza la seguente sintassi di base:

INTCK (intervallo, data di inizio, dati di fine, metodo)

Oro:

  • interval : Intervallo da calcolare (giorno, settimana, mese, trimestre, anno, ecc.)
  • data di inizio : la data di inizio
  • data di fine : la data di fine
  • metodo : conta gli intervalli utilizzando un metodo discreto o continuo

L’esempio seguente mostra come utilizzare questa funzione nella pratica.

Esempio: utilizzo della funzione INTCK per calcolare la differenza tra le date in SAS

Supponiamo di avere il seguente set di dati in SAS che contiene due variabili di 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; 

Possiamo utilizzare il seguente codice per calcolare la differenza tra i valori delle variabili start_date e end_date in giorni, settimane, mesi, trimestri e anni:

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

Funzione INTCK in SAS

Le cinque nuove variabili mostrano la differenza tra start_date e end_date in giorni, settimane, mesi, trimestri e anni.

Tieni presente che possiamo utilizzare l’argomento ‘ c ‘ nella funzione INTCK per calcolare solo la differenza in giorni, settimane, mesi, trimestri e anni interi:

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

Notare la differenza tra questa tabella e la tabella precedente.

In questa tabella, la differenza in settimane tra il 1° gennaio e il 9 gennaio viene calcolata come 1 poiché tra queste date può rientrare solo una settimana intera.

Tuttavia, nella tabella precedente, la differenza in settimane è stata calcolata pari a 2 poiché tra queste due date rientrano due settimane parziali.

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre attività comuni in SAS:

Come convertire DateTime fino ad oggi in SAS
Come aggiungere giorni fino ad oggi in SAS
Come ottenere il giorno della settimana dalla data in SAS

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *