Les données utilisées ('test') sont créées directement dans le script via une étape DATA et l'instruction DATALINES. Il n'y a pas de dépendance à des sources de données externes ou aux bibliothèques SAS par défaut comme SASHELP pour les données d'entrée.
1 Bloc de code
DATA STEP Data
Explication : Ce bloc DATA STEP crée un jeu de données nommé 'test'. Il définit une variable 'date', lui applique les formats INFORMAT (pour la lecture) et FORMAT (pour l'affichage) 'date9.', puis la peuple avec des valeurs de date spécifiées via l'instruction DATALINES. Ce jeu de données sert d'exemple pour tester les fonctions FCMP.
Copié !
data test;
input date;
informat date date9.;
format date date9.;
datalines;
31DEC2016
01JAN2017
15FEB2017
15FEB2016
08JAN2017
09JAN2017
25DEC2017
31DEC2017
01JAN2018
05JAN2017
05APR2017
09JUL2017
10NOV2017
31DEC2017
15MAR2017
;
run;
1
DATA test;
2
INPUT date;
3
informat date date9.;
4
FORMAT date date9.;
5
DATALINES;
6
31DEC2016
7
01JAN2017
8
15FEB2017
9
15FEB2016
10
08JAN2017
11
09JAN2017
12
25DEC2017
13
31DEC2017
14
01JAN2018
15
05JAN2017
16
05APR2017
17
09JUL2017
18
10NOV2017
19
31DEC2017
20
15MAR2017
21
;
22
RUN;
2 Bloc de code
PROC FCMP
Explication : Cette procédure PROC FCMP définit une fonction utilisateur nommée 'BeginMonth'. La fonction prend un argument 'DateDay' (une date SAS numérique) et utilise la fonction INTNX de SAS pour calculer la date du début du mois ('b') correspondant à 'DateDay', sans décalage ('0'). La fonction est stockée dans le catalogue 'work.cat_function.test' et renvoie le premier jour du mois.
Explication : Cette procédure PROC FCMP définit une fonction utilisateur nommée 'EndMonth'. Similaire à 'BeginMonth', elle prend un argument 'DateDay' et utilise INTNX pour calculer la date de fin du mois ('e') correspondant à 'DateDay', sans décalage. La fonction est également stockée dans le catalogue 'work.cat_function.test' et renvoie le dernier jour du mois.
Explication : Ce bloc DATA STEP lit le jeu de données 'test' existant. Il ajoute deux nouvelles variables, 'FirstDay' et 'LastDay', et leur applique le format 'date9.'. Ensuite, il appelle les fonctions FCMP 'BeginMonth' et 'EndMonth' définies précédemment, en leur passant la variable 'date' pour calculer le premier et le dernier jour de chaque mois, respectivement. Les résultats sont stockés dans les nouvelles variables du jeu de données 'test'.
Copié !
data test;
set test;
format FirstDay lastDay DATE9.;
FirstDay=BeginMonth(date);
LastDay=EndMonth(date);
run;
1
DATA test;
2
SET test;
3
FORMAT FirstDay lastDay DATE9.;
4
FirstDay=BeginMonth(date);
5
LastDay=EndMonth(date);
6
RUN;
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.
Informations de Copyright : Creation date : 14/04/2017 (fr)
Last update : 14/04/2017 (fr)
Author(s) : Nicolas DUPONT
SAS et tous les autres noms de produits ou de services de SAS Institute Inc. sont des marques déposées ou des marques de commerce de SAS Institute Inc. aux États-Unis et dans d'autres pays. ® indique un enregistrement aux États-Unis. WeAreCAS est un site communautaire indépendant et n'est pas affilié à SAS Institute Inc.
Ce site utilise des cookies techniques et analytiques pour améliorer votre expérience.
En savoir plus.