groupBy
Description
L'action simple.groupBy permet de construire des groupes de traitement (BY groups) en fonction des combinaisons de valeurs des variablesColonnes d'une table SAS contenant des données spécifiques (numériques ou caractères). Elles possèdent des attributs comme le nom, le type, la longueur, l'étiquette et le format d'affichage. spécifiées. C'est l'équivalent distribué et survitaminé d'un classique PROC SORTLa PROC SORT est une procédure SAS permettant de réorganiser les observations d'une table selon l'ordre croissant ou décroissant d'une ou plusieurs variables, tout en supprimant les doublons. combiné à une instruction BY, mais taillé pour la puissance du moteur in-memoryTechnique stockant les données directement dans la RAM pour un accès ultra-rapide, permettant des analyses massives et calculs complexes en temps réel sans les latences liées aux disques durs. de SAS Viya ! Parfait pour agréger de très grands volumes de données sans transpirer.
Paramètres Clés
| Nom du paramètre | Description |
|---|---|
| table | Spécifie la table d'entrée contenant les données à analyser. |
| inputs | Spécifie les variables d'entrée utilisées pour créer les groupes (vos fameuses variables BY). |
| aggregator | La fonction d'agrégation à appliquer sur la variable de poids (MAX, MEAN, MIN, N, SUM). Par défaut, c'est SUM. |
| weight | La variable numérique utilisée comme poids pour calculer le score du groupe. |
| descending | Si positionné à true, trie les niveaux des variables de groupe par ordre décroissant (parce qu'on aime parfois commencer par la fin). |
| includeMissing | Si positionné à true (valeur par défaut), inclut les valeurs manquantes dans la détermination des groupes distincts. |
| resultLimit | Spécifie le nombre maximum de groupes distincts à retourner . |
| casOut | Spécifie les options de la table de sortie (comme le nom, la caslib, et si on l'écrase ou on la promeut) où seront stockés les résultats. |
Préparation des données
Création d'une table de ventes pour les tests
Nous allons créer une petite table de ventes directement en mémoire CAS pour pouvoir illustrer la puissance de l'action groupBy.
| 1 | DATA casuser.ventes; INPUT region $ produit $ montant; DATALINES; Nord Pommes 100 Nord Poires 50 Sud Pommes 75 Sud Poires 120 Nord Pommes 50 ; RUN; |
Exemples d'utilisation
Groupement simple par région et produit avec somme
Cet exemple regroupe les données par 'region' et 'produit', en calculant la somme des montants pour chaque groupe.
| 1 | PROC CAS; SIMPLE.groupBy / TABLE={name="ventes", caslib="casuser"}, inputs={"region", "produit"}, aggregator="SUM", weight="montant", casOut={name="ventes_groupees", caslib="casuser", replace=true}; RUN; QUIT; |
Résultat Attendu :
Groupement détaillé avec tri décroissant, moyenne et limite
Ici, nous allons calculer la moyenne des montants, trier les variables du groupe par ordre décroissant, inclure les valeurs manquantes, limiter la sortie aux 10 premiers résultats et promouvoir la table en mémoire globale (pour que tout le monde en profite).
| 1 | PROC CAS; SIMPLE.groupBy / TABLE={name="ventes", caslib="casuser"}, inputs={"region", "produit"}, aggregator="MEAN", weight="montant", descending=true, includeMissing=true, resultLimit=10, casOut={name="ventes_moyennes", caslib="casuser", replace=true, promote=true}; RUN; QUIT; |