?> aggregate - WeAreCAS
aggregation

aggregate

Description

L'action `aggregate` du jeu d'actions `aggregation` est un outil puissant dans SAS Viya pour effectuer des agrégations sur des variables sélectionnées. Elle permet de résumer de grands volumes de données en calculant diverses statistiques (somme, moyenne, nombre, etc.) sur des groupes de données. Cette action est particulièrement utile pour la préparation de données en vue de l'analyse, la création de rapports de synthèse ou la transformation de données transactionnelles en séries temporelles. Elle peut regrouper les données sur la base de variables catégorielles, d'intervalles de temps ou de fenêtres glissantes, offrant une grande flexibilité pour l'analyse exploratoire et la modélisation.

aggregation.aggregate / table={...} <varSpecs={{...}, {...}}> <casOut={...}> <groupByLimit=64-bit-integer> <interval="string"> <id="variable-name">;
Paramètres
ParamètreDescription
tableSpécifie la table CAS d'entrée à utiliser pour l'agrégation.
varSpecsSpécifie les variables à agréger et les paramètres de l'agrégateur (par exemple, SUM, MEAN, N).
casOutSpécifie la table CAS de sortie pour stocker les résultats de l'agrégation.
groupBySpécifie une ou plusieurs variables pour regrouper les données avant l'agrégation.
idSpécifie une variable numérique qui identifie l'horodatage associé à chaque observation, utilisée pour les agrégations temporelles.
intervalSpécifie la période de temps pour l'accumulation des observations (par exemple, 'MONTH', 'DAY', 'HOUR').
alignSpécifie l'alignement de la valeur représentative par rapport à un intervalle ou un bac (BEGINNING, MIDDLE, ENDING).
copyVarsSpécifie les variables à copier de la table d'entrée vers la table de sortie.
weightSpécifie une variable numérique dont les valeurs sont utilisées comme poids pour les variables d'analyse.
freqSpécifie une variable numérique dont les valeurs sont utilisées comme fréquence des valeurs de la variable d'analyse.
Préparation des Données
Création de la table d'exemple 'ventes_produits'

Ce code SAS crée une table CAS nommée 'ventes_produits'. Elle contient des informations sur les ventes (produit, quantité, date_vente) et servira de base pour les exemples d'agrégation.

1DATA casuser.ventes_produits;
2 informat date_vente date9.;
3 FORMAT date_vente date9.;
4 INPUT produit $ quantite date_vente;
5 DATALINES;
6 A 10 01JAN2023
7 B 15 01JAN2023
8 A 20 15JAN2023
9 C 5 15JAN2023
10 B 10 01FEB2023
11 A 5 15FEB2023
12 C 25 01MAR2023
13 ;
14 RUN;

Exemples

Cet exemple montre comment calculer la quantité totale vendue (SUM) et le nombre de transactions (N) pour chaque produit.

Code SAS® / CAS
Copié !
1PROC CAS;
2 aggregation.aggregate /
3 TABLE={name='ventes_produits', groupBy={'produit'}},
4 varSpecs={{name='quantite', agg='SUM'}, {name='quantite', agg='N'}},
5 casOut={name='ventes_agg_simple', replace=true};
6 RUN;
7 QUIT;
Résultat :
Une table de sortie 'ventes_agg_simple' est créée. Elle contient une ligne pour chaque produit avec la somme des quantités et le nombre de transactions.

Cet exemple agrège les données de ventes par mois en utilisant la variable 'date_vente'. Il calcule un ensemble complet de statistiques descriptives (SUMMARY) pour la variable 'quantite' pour chaque intervalle mensuel.

Code SAS® / CAS
Copié !
1PROC CAS;
2 aggregation.aggregate /
3 TABLE={name='ventes_produits', groupBy={'date_vente'}},
4 id='date_vente',
5 interval='MONTH',
6 varSpecs={{name='quantite', agg='SUMMARY'}},
7 casOut={name='ventes_mensuelles_details', replace=true};
8 RUN;
9 QUIT;
Résultat :
La table de sortie 'ventes_mensuelles_details' contiendra les statistiques de sommaire (moyenne, min, max, std, etc.) pour la variable 'quantite', agrégées pour chaque mois. La colonne 'date_vente' sera alignée sur le début de chaque mois.

Cet exemple agrège les données par 'produit'. Il calcule la quantité maximale (MAX) et minimale (MIN) pour la variable 'quantite'. Les colonnes de résultats sont renommées en 'Quantite_Max' et 'Quantite_Min' pour plus de clarté.

Code SAS® / CAS
Copié !
1PROC CAS;
2 aggregation.aggregate /
3 TABLE={name='ventes_produits', groupBy={'produit'}},
4 varSpecs={
5 {name='quantite', agg='MAX', columnNames={'Quantite_Max'}},
6 {name='quantite', agg='MIN', columnNames={'Quantite_Min'}}
7 },
8 casOut={name='ventes_produit_minmax', replace=true};
9 RUN;
10 QUIT;
Résultat :
La table de sortie 'ventes_produit_minmax' contiendra les colonnes 'produit', 'Quantite_Max', et 'Quantite_Min', montrant les valeurs maximale et minimale de 'quantite' pour chaque produit.

FAQ

À quoi sert l'action `aggregate` ?
Comment spécifier les variables sur lesquelles effectuer l'agrégation ?
Est-il possible de regrouper les données avant l'agrégation ?
Quels types d'agrégateurs sont disponibles ?
Comment agréger des données sur des intervalles de temps ?
Comment gérer les valeurs manquantes dans l'analyse ?
Peut-on pondérer les observations lors de l'agrégation ?
Comment enregistrer les résultats de l'agrégation dans une nouvelle table ?