Publié le :
ETL CREATION_INTERNE

Manipulation de données avec fonctions LAG

Ce code est également disponible en : Deutsch English Español
En attente de validation
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é !
1DATA t1;
2 INPUT x y;
3 CARDS;
4 1 5
52 6
63 6
77 9
88 10
911 12
10;
11RUN;
2 Bloc de code
PROC SORT
Explication :
Tri de la table 't1' par ordre croissant de la variable 'x'.
Copié !
1PROC SORT DATA=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é !
1DATA t2;
2 SET t1 END=b;
3 z=lag(y);
4 /*if x>z or b;
5 proc sort; by decending x;
6 */
7RUN;
4 Bloc de code
PROC PRINT
Explication :
Affichage du contenu de la dernière table créée (t2) dans la sortie standard.
Copié !
1PROC 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é !
1DATA t3;
2 SET t2;
3 IF xTHEN z=y;
4 y=max(y,lag(z));
5 *if y^=z;
6RUN;
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.