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