Ce programme commence par créer un jeu de données 't1' avec des valeurs codées en dur. Il trie ensuite ces données par la variable 'x'. Une étape Data Step suivante ('t2') utilise la fonction LAG pour créer une nouvelle variable 'z' contenant la valeur précédente de 'y'. Enfin, une dernière étape ('t3') applique une logique conditionnelle complexe utilisant des comparaisons entre la valeur actuelle et les valeurs retardées pour modifier les variables.
Analyse des données
Type : CREATION_INTERNE
Les données sont créées directement dans le code via l'instruction CARDS dans l'étape data t1.
1 Bloc de code
DATA STEP Data
Explication : Création de la table 't1' avec deux variables numériques x et y, alimentée par des données internes (CARDS).
Copié !
data t1;
input x y;
cards;
1 5
2 6
3 6
7 9
8 10
11 12
;
run;
1
DATA t1;
2
INPUT x y;
3
CARDS;
4
15
5
26
6
36
7
79
8
810
9
1112
10
;
11
RUN;
2 Bloc de code
PROC SORT
Explication : Tri de la table 't1' par ordre croissant de la variable 'x'.
Copié !
proc sort data=t1; by x; run;
1
PROC SORTDATA=t1; BY x; RUN;
3 Bloc de code
DATA STEP Data
Explication : Création de la table 't2' à partir de 't1'. La fonction LAG(y) est utilisée pour récupérer la valeur de 'y' de l'observation précédente et la stocker dans 'z'.
Copié !
data t2;
set t1 end=b;
z=lag(y);
/*if x>z or b;
proc sort; by decending x;
*/
run;
1
DATA t2;
2
SET t1 END=b;
3
z=lag(y);
4
/*if x>z or b;
5
proc sort; by decending x;
6
*/
7
RUN;
4 Bloc de code
PROC PRINT
Explication : Affichage du contenu de la dernière table créée (t2) dans la sortie standard.
Copié !
proc print;run;
1
PROC PRINT;RUN;
5 Bloc de code
DATA STEP Data
Explication : Création de la table 't3' à partir de 't2'. Applique des modifications conditionnelles : si x est inférieur à z, z prend la valeur de y. Ensuite, y est mis à jour avec le maximum entre sa valeur actuelle et la valeur précédente de z.
Copié !
data t3;
set t2;
if x<z then z=y;
y=max(y,lag(z));
*if y^=z;
run;
1
DATA t3;
2
SET t2;
3
IF xTHEN z=y;
4
y=max(y,lag(z));
5
*if y^=z;
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.
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.