Publié le :
Contrôle de Flux CREATION_INTERNE

Exemple : Instruction SELECT WHEN

Ce code est également disponible en : Deutsch English Español
L'instruction SELECT WHEN vous permet de traiter de manière conditionnelle une ou plusieurs instructions dans un groupe d'instructions en fonction de la valeur d'une seule variable catégorielle. Un groupe d'instructions entre les instructions SELECT et END est appelé un groupe SELECT. Les groupes SELECT contiennent des instructions WHEN qui identifient les instructions SAS© exécutées lorsqu'une condition particulière est vraie. L'instruction END et au moins une instruction WHEN sont requises lors de la spécification de l'instruction SELECT. L'utilisation d'un groupe SELECT est plus efficace que l'utilisation d'une série d'instructions IF-THEN lorsque vous avez une longue série de conditions mutuellement exclusives. Un grand nombre de conditions rend un groupe SELECT plus efficace que les instructions IF-THEN/ELSE car le temps CPU est réduit. Les groupes SELECT facilitent également la lecture et le débogage du programme. Une instruction OTHERWISE facultative spécifie une instruction à exécuter si aucune condition WHEN n'est remplie. Par exemple, si vos données contiennent des données manquantes ou invalides. Dans les instructions nulles utilisées dans une instruction OTHERWISE, l'instruction SELECT WHEN empêche SAS© d'émettre un message d'erreur.
Analyse des données

Type : CREATION_INTERNE


Les exemples utilisent des données de la librairie SASHELP (sashelp.shoes).

1 Bloc de code
DATA STEP
Explication :
Cet exemple crée un nouveau jeu de données 'shoes' à partir de `sashelp.shoes`. Il filtre les données pour inclure uniquement les régions 'Canada', 'Pacific' et 'Asia'. Ensuite, il utilise l'instruction SELECT WHEN pour appliquer des remises différentes aux ventes en fonction de la région : 10% pour le Canada, 9% pour le Pacifique et 7% pour l'Asie. Enfin, `PROC PRINT` affiche le contenu du jeu de données modifié.
Copié !
1DATA shoes;
2 SET sashelp.shoes(where=(Region='Canada' or Region='Pacific' or Region='Asia'));
3 keep Region Sales Product;
4 select(Region);
5 when('Canada') sales = sales * .10;
6 when('Pacific') sales = sales * .09;
7 when('Asia') sales = sales * .07;
8 END;
9RUN;
10PROC PRINT DATA=shoes; 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.
Informations de Copyright : Copyright © SAS Institute Inc. All Rights Reserved


Banner
Le Conseil de l'Expert
Expert
Simon
Expert SAS et fondateur.
« Si vous avez de nombreuses conditions, placez les valeurs les plus fréquentes en haut de la liste des clauses WHEN. Même dans un groupe SELECT, cela permet d'accélérer statistiquement le branchement logique et d'optimiser encore davantage vos traitements. »