Publié le :
ETL SASHELP

Exécution d'une boucle DO itérative

Ce code est également disponible en : Deutsch English Español
En attente de validation
Le programme lit les deux premiers enregistrements de la table `sashelp.shoes`. Pour chaque enregistrement lu, il exécute une boucle `DO` trois fois (pour `Year` de 1 à 3). Dans la boucle, il augmente la valeur de `ProjectedSales` de 5% et écrit un nouvel enregistrement dans la table `forecast` à chaque itération grâce à l'instruction `OUTPUT`. Finalement, il ne conserve que certaines colonnes et applique un format monétaire à `ProjectedSales`. Les instructions `PUTLOG` aident à suivre l'exécution dans le journal SAS©.
Analyse des données

Type : SASHELP


Les données proviennent de la table `sashelp.shoes`. Le script ne lit que les deux premières observations (option obs=2).

1 Bloc de code
DATA STEP Data
Explication :
Ce bloc de code est une étape DATA qui crée la table `forecast`. Il commence par lire les deux premières observations de `sashelp.shoes` en renommant la colonne `Sales`. Une boucle `DO` est utilisée pour itérer trois fois pour chaque observation d'entrée. À chaque itération, la variable `ProjectedSales` est recalculée (augmentée de 5%) et un nouvel enregistrement est explicitement écrit dans la table de sortie avec l'instruction `OUTPUT`. Après la boucle, l'instruction `KEEP` sélectionne les colonnes à conserver et `FORMAT` applique un format monétaire à `ProjectedSales`.
Copié !
1DATA forecast;
2 putlog 'Top of DATA Step ' Year= _N_=;
3 SET sashelp.shoes(obs=2 rename=(Sales=ProjectedSales));
4 DO Year = 1 to 3;
5 ProjectedSales=ProjectedSales*1.05;
6 OUTPUT;
7 putlog 'Value of Year written to table: ' Year=;
8 END;
9 putlog 'Outside of DO Loop: ' Year=;
10 keep Region Product Subsidiary Year ProjectedSales;
11 FORMAT ProjectedSales dollar10.;
12RUN;
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.