Comment utiliser la fonction INTCK dans SAS (avec exemples)



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, trimestre, année, etc.)
  • date de début : La date de début
  • date de fin : La date de fin
  • méthode : Compter les intervalles en utilisant une méthode discrète ou continue

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

Exemple : Utilisation de la fonction INTCK pour 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 14AUG2023
06AUG2022 10NOV2024
;
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, mois, trimestres et années :

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

Fonction INTCK dans SAS

Les cinq nouvelles variables montrent la différence entre start_date et end_date en jours, semaines, mois, trimestres et années.

Notez que nous pouvons utiliser l’argument ‘ c ‘ dans la fonction INTCK pour calculer uniquement la différence en jours, semaines, mois, trimestres et années 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');
    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;

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 convertir DateHeure en date dans SAS
Comment ajouter des jours à ce jour dans SAS
Comment obtenir le jour de la semaine à partir de la date dans SAS

Ajouter un commentaire

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