simple

groupBy

##set_simple

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.

Syntaxe Officielle
proc cas;
simple.groupBy /
table={name="nom_table", caslib="casuser"}
inputs={"var1", "var2"}
weight="var_poids"
aggregator="SUM"
descending=false
includeMissing=true
casOut={name="table_sortie", replace=true};
quit;

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.

1DATA 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.

1PROC 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 :
Une table CAS nommée 'ventes_groupees' contenant les combinaisons uniques de région et produit, avec la somme des montants (par ex: Nord-Pommes = 150) associée à chaque groupe.
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).

1PROC 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;
Résultat Attendu :
Une table globale 'ventes_moyennes' triée par ordre décroissant des groupes, contenant la moyenne des montants pour les 10 premières combinaisons, y compris les éventuelles valeurs manquantes. La table est promue et prête à être consommée par SAS Visual Analytics.