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

Aggiungi un commento

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