Publié le :

Exemples : Traiter les groupes BY dans l'étape DATA

Ce code est également disponible en : Deutsch English Español
En attente de validation
L'analyse des groupes BY est une fonctionnalité fondamentale en SAS© qui permet de segmenter et de traiter les données en fonction de valeurs uniques ou combinées de variables spécifiées. Ces exemples montrent comment la procédure SORT est utilisée pour préparer les données, suivie de l'étape DATA avec l'instruction BY pour la logique de regroupement. L'utilisation de l'option GROUPFORMAT est également détaillée pour les scénarios où les données sont regroupées en fonction de valeurs formatées, assurant une cohérence entre l'étape DATA et les procédures d'affichage.
Analyse des données

Type : CREATION_INTERNE


Tous les exemples utilisent des données générées en interne via l'instruction DATALINES, garantissant leur autonomie.

1 Bloc de code
DATA STEP / PROC SORT / PROC PRINT Data
Explication :
Cet exemple démontre comment regrouper des données en utilisant une seule variable BY, `zipCode`, dans une étape DATA. L'ensemble de données d'entrée, `zip`, contient des noms de rues, des villes, des états et des codes postaux. Les groupes sont créés en spécifiant la variable `zipCode` dans l'instruction BY. L'étape DATA organise les codes postaux ayant les mêmes valeurs en groupes.
Copié !
1DATA zip;
2INPUT zipCode State $ City $ Street $20-29;
3DATALINES;
485730 AZ Tucson Domenic Ln
585730 AZ Tucson Gleeson Pl
633133 FL Miami Rice St
733133 FL Miami Thomas Ave
833133 FL Miami Surrey Dr
933133 FL Miami Trade Ave
1033146 FL Miami Nervia St
1133146 FL Miami Corsica St
1233801 FL Lakeland French Ave
1333809 FL Lakeland Egret Dr
14;
15 
16PROC SORT DATA=zip;
17 BY zipCode;
18RUN;
19 
20DATA zip;
21 SET zip;
22 BY zipCode;
23RUN;
24 
25PROC PRINT DATA=zip noobs;
26 title 'BY-Group Uing a Single Variable: ZipCode';
27RUN;
2 Bloc de code
DATA STEP / PROC SORT / PROC PRINT Data
Explication :
Cet exemple démontre les résultats du traitement de l'ensemble de données `zip` avec deux variables BY, `State` (État) et `City` (Ville). Les observations sont arrangées de manière à ce que celles de l'Arizona apparaissent en premier. Les observations au sein de chaque valeur de `State` sont arrangées par ordre de valeur de `City`. Chaque groupe BY a une combinaison unique de valeurs pour les variables `State` et `City`.
Copié !
1DATA zip;
2INPUT State $ City $ Street $13-22 ZipCode ;
3DATALINES;
4FL Miami Nervia St 33146
5FL Miami Rice St 33133
6FL Miami Corsica St 33146
7FL Miami Thomas Ave 33133
8FL Miami Surrey Dr 33133
9FL Miami Trade Ave 33133
10FL Lakeland French Ave 33801
11FL Lakeland Egret Dr 33809
12AZ Tucson Domenic Ln 85730
13AZ Tucson Gleeson Pl 85730
14;
15 
16 
17PROC SORT DATA=zip;
18 BY State City;
19RUN;
20 
21DATA zip;
22 SET zip;
23 BY State City;
24RUN;
25PROC PRINT DATA=zip noobs;
26 title 'BY Groups with Multiple BY Variables: State City';
27RUN;
3 Bloc de code
DATA STEP / PROC FORMAT / PROC PRINT Data
Explication :
Cet exemple utilise la procédure `FORMAT`, l'option `GROUPFORMAT` et l'instruction `FORMAT` pour créer et imprimer un ensemble de données simple. L'ensemble de données d'entrée `TEST` est trié par valeurs croissantes. L'ensemble de données `NEWTEST` est organisé par les valeurs formatées de la variable `Score`. Le traitement des groupes BY dans l'étape DATA avec l'option `GROUPFORMAT` est identique au traitement des groupes BY avec des valeurs formatées dans les procédures SAS, ce qui est utile lors de la définition de formats personnalisés pour afficher des données groupées.
Copié !
1options
2linesize=80 pagesize=60;
3 
4DATA test;
5 INPUT name $ Score;
6DATALINES;
7Jon 1
8Anthony 3
9Miguel 3
10Joseph 4
11Ian 5
12Jan 6
13;
14PROC FORMAT;
15 value Range 1-2='Low'
16 3-4='Medium'
17 5-6='High';
18RUN;
19 
20DATA newtest;
21 SET test;
22 BY groupformat Score;
23 FORMAT Score Range.;
24RUN;
25 
26PROC PRINT DATA=newtest;
27 title 'Score Categories';
28 var Name Score;
29 BY Score;
30RUN;
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
Stéphanie
Spécialiste Machine Learning et IA.
« Pour optimiser vos rapports, utilisez toujours le traitement BY plutôt que de multiples clauses WHERE. Non seulement c'est plus rapide, mais cela vous permet d'utiliser les variables automatiques FIRST. et LAST. pour n'afficher, par exemple, que la ligne la plus récente ou le total cumulé de chaque groupe de manière ultra-efficac »