Come calcolare la differenza tra due date in sas
È 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, anno, ecc.)
- data di inizio : la data di inizio
- data di fine : la data di fine
- metodo : se contare gli intervalli completi (‘D’ = No (predefinito), ‘C’ = Sì)
L’esempio seguente mostra come utilizzare questa funzione nella pratica.
Esempio: 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 14AUG2022
;
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 e mesi:
/*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;
Le tre nuove variabili mostrano la differenza tra start_date e end_date in giorni, settimane e mesi.
Tieni presente che possiamo utilizzare l’argomento ‘ c ‘ nella funzione INTCK per calcolare solo la differenza in giorni, settimane e mesi 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 ');
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 normalizzare i dati in SAS
Come sostituire i caratteri in una stringa in SAS
Come sostituire i valori mancanti con zero in SAS
Come rimuovere i duplicati in SAS