Publié le :
ETL CREATION_INTERNE

Traitement de données et création d'un nouveau jeu de données avec boucle conditionnelle

Ce code est également disponible en : Deutsch English Español
En attente de validation
Le script commence par l'exécution d'un DATA step pour créer un jeu de données temporaire nommé 'b'. Les valeurs des variables 'id', 'x1', 'x2' et 'y' sont directement intégrées dans le script à l'aide de l'instruction CARDS. Sept observations sont ainsi initialisées.
Un deuxième DATA step est ensuite mis en œuvre pour générer un nouveau jeu de données, 'newdata', en se basant sur le jeu de données 'b'. Dans ce DATA step, une boucle 'DO i=1 TO 3' est utilisée pour chaque observation de 'b'. À l'intérieur de cette boucle, une variable 'decision' est créée et sa valeur est déterminée par une instruction conditionnelle 'IF y=i THEN decision=1; ELSE decision=0;'. L'instruction 'OUTPUT' étant placée dans la boucle, chaque observation du jeu de données 'b' générera trois observations distinctes dans 'newdata', chacune correspondant à une valeur de 'i' (1, 2 ou 3) et à la valeur 'decision' calculée en conséquence.
Enfin, la procédure PROC PRINT est appelée sans spécifier de jeu de données, ce qui a pour effet d'afficher le contenu du jeu de données 'newdata' (le dernier créé) dans la sortie standard de SAS©.
Analyse des données

Type : CREATION_INTERNE


Les données du jeu de données initial 'b' sont créées en interne via l'instruction CARDS dans un DATA step. Le jeu de données 'newdata' est ensuite dérivé de 'b'. Aucune donnée externe ou de bibliothèque SASHELP n'est utilisée.

1 Bloc de code
DATA STEP Data
Explication :
Ce bloc DATA step est responsable de la création d'un jeu de données SAS temporaire nommé 'b'. Il définit quatre variables ('id', 'x1', 'x2', 'y') et les peuple avec sept observations fournies directement dans le script via l'instruction 'CARDS;'. Cette méthode est couramment utilisée pour créer de petits jeux de données de test ou d'exemple.
Copié !
1DATA b;
2 INPUT id x1 x2 y;
3 CARDS;
4 1 12 35 1
5 2 22 38 2
6 3 25 34 3
7 4 12 56 1
8 5 21 54 2
9 6 20 45 3
10 7 25 34 3
11 ;
12RUN;
2 Bloc de code
DATA STEP Data
Explication :
Ce DATA step crée un nouveau jeu de données nommé 'newdata' en lisant les observations du jeu de données 'b'. Une boucle 'DO i=1 to 3' est exécutée pour chaque observation de 'b'. À l'intérieur de la boucle, une variable 'decision' est calculée : elle vaut 1 si la valeur de 'y' est égale à l'indice de la boucle 'i', sinon elle vaut 0. L'instruction 'OUTPUT' à l'intérieur de la boucle garantit que trois observations sont écrites dans 'newdata' pour chaque observation de 'b', chacune avec une valeur 'decision' différente correspondant à l'itération de la boucle.
Copié !
1DATA newdata;
2 SET b;
3 DO i=1 to 3;
4 IF y=i THEN decision=1;
5 ELSE decision=0;
6 OUTPUT;
7 END;
8RUN;
3 Bloc de code
PROC PRINT
Explication :
Ce bloc exécute la procédure PROC PRINT. Sans spécification du jeu de données ('DATA='), PROC PRINT affiche par défaut le dernier jeu de données créé ou modifié dans la session SAS, qui est ici 'newdata'. Cette procédure est utilisée pour visualiser rapidement le contenu d'un jeu de données.
Copié !
1PROC PRINT;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.