Comment utiliser la fonction INTNX dans SAS (avec exemples)
Vous pouvez utiliser la fonction INTNX dans SAS pour incrémenter une date d’un intervalle spécifique tel qu’un jour, une semaine, un mois, etc.
Cette fonction utilise la syntaxe de base suivante :
INTNX (intervalle, date_début, incrément)
où:
- interval : L’intervalle à ajouter à la date (jour, semaine, mois, année, etc.)
- start_date : Variable qui contient les dates de début
- incrément : Le nombre d’intervalles à ajouter
Pour soustraire un intervalle, fournissez un nombre négatif à l’argument d’incrémentation .
Les exemples suivants montrent quelques manières courantes d’utiliser la fonction INTNX en pratique avec l’ensemble de données suivant dans SAS :
/*create dataset*/
data original_data;
format date date9.;
input date :date9. sales;
datalines;
01JAN2022 50
01FEB2022 34
14MAR2022 26
01MAY2022 22
24AUG2022 27
28OCT2022 48
14NOV2022 97
04DEC2022 88
;
run;
/*view dataset*/
proc print data=original_data;
Exemple 1 : utilisez INTNX pour ajouter des jours à ce jour
Nous pouvons utiliser la fonction INTNX pour créer une nouvelle colonne appelée plus5days qui ajoute cinq jours à chaque date dans la colonne date :
/*create new dataset with column that adds 5 days to date*/
data new_data;
set original_data;
plus5days=intnx('day', date, 5);
format plus5days date9.;
run;
/*view dataset*/
proc print data=new_data;
Notez que la nouvelle colonne appelée plus5days contient les valeurs de la colonne date auxquelles sont ajoutées cinq jours.
Exemple 2 : utilisez INTNX pour soustraire des jours à la date
Vous pouvez également soustraire des jours en utilisant simplement une valeur négative dans la fonction INTNX .
Par exemple, nous pouvons utiliser le code suivant pour soustraire cinq jours à chaque valeur de la colonne date :
/*create new dataset with column that subtracts 5 days from date*/
data new_data;
set original_data;
minus5days=intnx('day', date, -5);
format minusdays date9.;
run;
/*view dataset*/
proc print data=new_data;
Notez que la nouvelle colonne appelée minus5days contient les valeurs de la colonne date avec cinq jours soustraits.
Exemple 3 : utilisez INTNX pour rechercher le premier jour du mois
Nous pouvons utiliser la fonction INTNX pour créer une nouvelle colonne appelée firstmonth qui contient le premier jour du mois pour chaque date dans la colonne date :
/*create new dataset with column that contains first day of the month*/
data new_data;
set original_data;
firstmonth=intnx('month', date, 0);
format firstmonth date9.;
run;
/*view dataset*/
proc print data=new_data;
Notez que la nouvelle colonne appelée firstmonth contient le premier jour du mois pour chaque date de la colonne date .
Exemple 4 : utilisez INTNX pour rechercher le premier jour de l’année
Nous pouvons également utiliser la fonction INTNX pour créer une nouvelle colonne appelée firstyear qui contient le premier jour de l’année pour chaque date dans la colonne date :
/*create new dataset with column that contains first day of the year*/
data new_data;
set original_data;
firstyear=intnx('year', date, 0);
format firstyear date9.;
run;
/*view dataset*/
proc print data=new_data;
Notez que la nouvelle colonne appelée firstyear contient le premier jour de l’année pour chaque date de la colonne date .
Remarque : Vous pouvez retrouver la documentation complète de la fonction SAS INTNX ici .
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans SAS :
Comment convertir DateHeure en date dans SAS
Comment convertir une variable numérique en date dans SAS
Comment calculer la différence entre deux dates dans SAS