Publié le :

Exemples: Traitement des 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 dans SAS© est une fonctionnalité puissante permettant de traiter les données de manière sélective. En utilisant l'instruction BY dans une étape DATA, vous pouvez organiser les observations en groupes basés sur les valeurs d'une ou plusieurs variables. Cela facilite l'exécution d'opérations spécifiques (calculs, agrégations, etc.) pour chaque groupe de données, améliorant ainsi l'efficacité et la clarté du code. La procédure SORT est généralement utilisée avant le traitement des groupes BY pour trier les données selon les variables BY, car cela est une exigence fondamentale. L'option OUT= de PROC SORT permet de créer un nouveau jeu de données trié, bien que dans certains exemples, le jeu de données original puisse être remplacé. Le document explore des cas d'utilisation avec une seule variable BY, plusieurs variables BY et l'option GROUPFORMAT pour la gestion des formats personnalisés.
Analyse des données

Type : CREATION_INTERNE


Les exemples utilisent des données générées via des datalines, assurant leur autonomie.

1 Bloc de code
DATA STEP / PROC SORT Data
Explication :
Cet exemple montre comment regrouper des données en utilisant une seule variable BY, `zipCode`, dans une étape DATA. Le jeu de données `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 arrange les codes postaux ayant les mêmes valeurs en groupes. La figure montre cinq groupes BY qui sont créés.
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 Data
Explication :
Cet exemple montre les résultats du traitement du jeu de données `zip` avec deux variables BY, State et City. La figure montre trois groupes BY. Le jeu de données est affiché avec les variables BY State et City imprimées à gauche pour une lecture facile. La position des variables BY dans les observations n'affecte pas la façon dont les valeurs sont regroupées et ordonnées.

Les observations sont organisées de telle sorte que les observations pour l'Arizona apparaissent en premier. Les observations au sein de chaque valeur de State sont organisées par ordre de la valeur de City. Chaque groupe BY a une combinaison unique de valeurs pour les variables State et City. Par exemple, la valeur BY du premier groupe BY est `AZ Tucson`, et la valeur BY du deuxième groupe BY est `FL Lakeland`.
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 Data
Explication :
Cet exemple utilise la procédure FORMAT, l'option GROUPFORMAT et l'instruction FORMAT pour créer et imprimer un jeu de données simple. Le jeu de données TEST en entrée est trié par valeurs croissantes. Le jeu de données NEWTEST est organisé par les valeurs formatées de la variable Score. L'exemple utilise l'option GROUPFORMAT et l'instruction FORMAT pour créer et imprimer un jeu de données simple.

Idées clés :
- Le traitement des groupes BY dans l'étape DATA à l'aide de l'option GROUPFORMAT est le même que le traitement des groupes BY avec des valeurs formatées dans les procédures SAS. L'utilisation de l'option GROUPFORMAT est utile lorsque vous définissez vos propres formats pour afficher des données regroupées.
- L'utilisation de l'option GROUPFORMAT dans l'étape DATA garantit que les groupes BY que vous utilisez pour créer un jeu de données correspondent aux groupes BY dans les étapes PROC qui rapportent des données groupées et formatées. GROUPFORMAT détermine également comment les variables FIRST.variable et LAST.variable sont attribué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
Simon
Expert SAS et fondateur.
« Si vous travaillez sur des volumes massifs, utilisez l'option OUT= de la PROC SORT. Cela vous permet de conserver votre table originale "brute" et de créer une version triée de travail. Cela évite de corrompre l'ordre d'origine de vos données si celui-ci a une importance historique ou technique »