Comment calculer la différence entre deux dates dans SAS



Vous pouvez utiliser la fonction INTCK dans SAS pour calculer rapidement la différence entre deux dates dans SAS.

Cette fonction utilise la syntaxe de base suivante :

INTCK (intervalle, date de début, données de fin, méthode)

où:

  • interval : Intervalle à calculer (jour, semaine, mois, année, etc.)
  • date de début : La date de début
  • date de fin : La date de fin
  • méthode : s’il faut compter les intervalles complets (‘D’ = Non (par défaut), ‘C’ = Oui)

L’exemple suivant montre comment utiliser cette fonction dans la pratique.

Exemple : calculer la différence entre les dates dans SAS

Supposons que nous ayons l’ensemble de données suivant dans SAS qui contient deux variables de date :

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

Nous pouvons utiliser le code suivant pour calculer la différence entre les valeurs des variables start_date et end_date en jours, semaines et mois :

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

Les trois nouvelles variables montrent la différence entre start_date et end_date en jours, semaines et mois.

Notez que nous pouvons utiliser l’argument ‘ c ‘ dans la fonction INTCK pour calculer uniquement la différence en jours, semaines et mois complets :

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

Notez la différence entre ce tableau et le tableau précédent.

Dans ce tableau, la différence en semaines entre le 1er janvier et le 9 janvier est calculée comme étant 1 puisqu’une seule semaine entière peut s’insérer entre ces dates.

Cependant, dans le tableau précédent, la différence en semaines a été calculée à 2 puisqu’il y avait deux semaines partielles qui s’inscrivaient entre ces deux dates.

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans SAS :

Comment normaliser les données dans SAS
Comment remplacer des caractères dans une chaîne dans SAS
Comment remplacer les valeurs manquantes par zéro dans SAS
Comment supprimer les doublons dans SAS

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *