Le programme lit les données du jeu de données SASHELP.QUAKES, qui contient des informations sur les tremblements de terre. Il effectue plusieurs transformations sur les données : il initialise une nouvelle variable textuelle 'Depth_Cat' pour stocker des catégories de profondeur, arrondit la variable 'Magnitude' à une décimale, et tente de catégoriser la 'Depth' en 'Shallow', 'Intermediate' ou 'Deep'. Cependant, en raison de l'implémentation séquentielle des instructions 'IF' sans clauses 'ELSE IF', la variable 'Depth_Cat' sera finalement définie sur 'Deep' pour toute observation où la profondeur est inférieure ou égale à 700, écrasant les assignations précédentes. La table résultante 'work.earthquakes' contient toutes les variables d'origine plus les nouvelles variables 'Depth_Cat' et 'Magnitude' modifiée.
Analyse des données
Type : SASHELP
Les données sont lues à partir du jeu de données 'quakes' qui fait partie de la bibliothèque standard 'SASHELP' fournie avec SAS. Ce n'est pas une source de données externe au sens où elle devrait être gérée ou chargée manuellement par le script.
1 Bloc de code
DATA STEP Data
Explication : Ce bloc de code est un DATA STEP qui crée un nouveau jeu de données nommé 'work.earthquakes'. Il lit toutes les observations du jeu de données source 'sashelp.quakes'.
1. `length Depth_Cat $ 12;`: Définit la longueur de la nouvelle variable caractère 'Depth_Cat' à 12 caractères.
2. `Magnitude=round(Magnitude, .1);`: Arrondit la variable numérique 'Magnitude' à la première décimale.
3. `if Depth<70 then Depth_Cat="Shallow";`: Tente de catégoriser la profondeur. Si 'Depth' est inférieure à 70, 'Depth_Cat' est définie sur 'Shallow'.
4. `if Depth<300 then Depth_Cat="Intermediate";`: Si 'Depth' est inférieure à 300, 'Depth_Cat' est définie sur 'Intermediate'.
5. `if Depth<=700 then Depth_Cat="Deep";`: Si 'Depth' est inférieure ou égale à 700, 'Depth_Cat' est définie sur 'Deep'.
**Remarque importante sur la logique de catégorisation :** En raison de l'utilisation d'instructions `IF` séquentielles sans clauses `ELSE IF`, les conditions sont évaluées indépendamment. Cela signifie que si une profondeur est, par exemple, de 50 (donc < 70, < 300 et <= 700), 'Depth_Cat' sera d'abord 'Shallow', puis écrasée par 'Intermediate', puis écrasée à nouveau par 'Deep'. Par conséquent, pour toutes les profondeurs <= 700, 'Depth_Cat' se retrouvera finalement avec la valeur 'Deep'. Pour une catégorisation mutuellement exclusive, l'utilisation de `IF...THEN ELSE IF...` serait nécessaire.
Copié !
data work.earthquakes;
set sashelp.quakes;
length Depth_Cat $ 12;
Magnitude=round(Magnitude, .1);
if Depth<70 then Depth_Cat="Shallow";
if Depth<300 then Depth_Cat="Intermediate";
if Depth<=700 then Depth_Cat="Deep";
run;
1
DATA work.earthquakes;
2
SET sashelp.quakes;
3
LENGTH Depth_Cat $ 12;
4
Magnitude=round(Magnitude, .1);
5
IF Depth<70THEN Depth_Cat="Shallow";
6
IF Depth<300THEN Depth_Cat="Intermediate";
7
IF Depth<=700THEN Depth_Cat="Deep";
8
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.
SAS et tous les autres noms de produits ou de services de SAS Institute Inc. sont des marques déposées ou des marques de commerce de SAS Institute Inc. aux États-Unis et dans d'autres pays. ® indique un enregistrement aux États-Unis. WeAreCAS est un site communautaire indépendant et n'est pas affilié à SAS Institute Inc.
Ce site utilise des cookies techniques et analytiques pour améliorer votre expérience.
En savoir plus.