Publié le :
ETL CREATION_INTERNE

Simulation de données et transformation via Array

Ce code est également disponible en : Deutsch English Español
En attente de validation
Ce script génère d'abord un jeu de données de test (wbh) contenant des combinaisons simulées d'âge et de race via des boucles imbriquées. Il effectue ensuite une transformation avancée dans une étape DATA en utilisant un ARRAY et l'instruction RETAIN pour manipuler les données horizontalement (type pivot) et calculer des sommes, avec une réinitialisation des variables au changement de groupe d'âge.
Analyse des données

Type : CREATION_INTERNE


Les données sont entièrement générées par le code via des boucles DO imbriquées, aucune source externe n'est requise.

1 Bloc de code
DATA STEP Data
Explication :
Création du jeu de données 'wbh' par simulation. Deux boucles imbriquées génèrent des observations pour 10 âges et 8 races, calculant une variable 'n' comme produit des deux.
Copié !
1DATA wbh;
2 DO age=1 to 10;
3 DO race=1 to 8;
4 n=age*race;
5 OUTPUT;
6 END;
7 END;
8RUN;
2 Bloc de code
PROC PRINT
Explication :
Affichage du contenu de la table 'wbh' générée précédemment.
Copié !
1PROC PRINT;RUN;
3 Bloc de code
DATA STEP Data
Explication :
Transformation des données. Utilisation d'un tableau 'a' (variables m1-m8) avec RETAIN pour conserver les valeurs entre les itérations. La boucle 'do i=1 to 8' réinitialise les valeurs à manquant (.) au début de chaque groupe d'âge (first.age). La valeur 'n' est assignée à l'index correspondant à la 'race', et une somme totale 'totn' est calculée.
Copié !
1DATA test; SET wbh; BY age race;
2 array a(8) m1-m8;
3 retain m1-m8;
4 DO i=1 to 8;
5 IF first.age THEN DO;
6 a(i)=.;
7 END;
8 END;
9 
10 a(race)=n;
11 totn=sum(of m1-m8);
12RUN;
4 Bloc de code
PROC PRINT
Explication :
Affichage du résultat final contenu dans la table 'test'.
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.