Publié le :
ETL SASHELP

Traitement Conditionnel avec IF-THEN/ELSE

Ce code est également disponible en : Deutsch English Español
En attente de validation
Ce script SAS© est composé de deux étapes DATA qui opèrent séquentiellement sur le jeu de données `sashelp.cars`. La première étape `DATA` crée un nouveau jeu de données nommé `cars2` en sélectionnant les colonnes 'Make', 'Model', 'Type', 'MSRP' et en ajoutant une colonne `Cost_Group`. Cette `Cost_Group` est déterminée par des tranches de prix de la colonne `MSRP` (Manufacturing Suggested Retail Price) à l'aide d'instructions `IF-THEN/ELSE IF-THEN/ELSE`. La seconde étape `DATA`, qui porte le même nom `cars2`, écrase le jeu de données créé précédemment. Elle crée une nouvelle variable `CarType` (longueur 6 caractères) basée sur la `MSRP`: 'Basic' si la `MSRP` est inférieure à 60000, sinon 'Luxury'. Les colonnes 'Make', 'Model', 'MSRP' et 'CarType' sont conservées. Le script illustre également la syntaxe et l'utilisation de la clause `LENGTH` pour définir la taille des variables caractères.
Analyse des données

Type : SASHELP


Les deux étapes DATA utilisent le jeu de données standard `sashelp.cars` comme source d'entrée, qui est un jeu de données d'exemple fourni avec SAS.

1 Bloc de code
DATA STEP Data
Explication :
Ce bloc DATA crée un nouveau jeu de données nommé `cars2` à partir de `sashelp.cars`. Il évalue la valeur de `MSRP` pour assigner une `Cost_Group` numérique (1, 2, 3 ou 4) en utilisant une série de conditions `IF-THEN/ELSE IF-THEN/ELSE`. Seules les variables spécifiées dans l'instruction `KEEP` sont conservées dans le jeu de données final.
Copié !
1DATA cars2;
2 SET sashelp.cars;
3 IF MSRP<20000 THEN Cost_Group=1;
4 ELSE IF MSRP<40000 THEN Cost_Group=2;
5 ELSE IF MSRP<60000 THEN Cost_Group=3;
6 ELSE Cost_Group=4;
7 keep Make Model Type MSRP Cost_Group;
8RUN;
2 Bloc de code
DATA STEP Data
Explication :
Ce bloc DATA remplace le jeu de données `cars2` précédemment créé. Il définit d'abord la longueur de la nouvelle variable caractère `CarType` à 6. Ensuite, il assigne la valeur 'Basic' à `CarType` si la `MSRP` est inférieure à 60000, et 'Luxury' dans tous les autres cas. Les variables 'Make', 'Model', 'MSRP' et la nouvelle variable `CarType` sont conservées.
Copié !
1DATA cars2;
2 SET sashelp.cars;
3 LENGTH CarType $ 6;
4 IF MSRP<60000 THEN CarType="Basic";
5 ELSE CarType="Luxury";
6 keep Make Model MSRP CarType;
7RUN;
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.