L'action mdSummary calcule des statistiques descriptives multidimensionnelles (MDS) pour les variables numériques. Ces statistiques sont calculées sur la base des combinaisons de valeurs de variables de classification. Le principal avantage de l'action mdSummary est qu'elle combine en un seul passage de données plusieurs opérations qui nécessiteraient autrement de multiples passages. Cette action est très utile pour des requêtes de type OLAP (Online Analytical Processing) sur de grandes quantités de données.
| Paramètre | Description |
|---|---|
| attributes | Spécifie les attributs des variables. |
| descending | Si défini à True, les niveaux formatés des variables sont organisés en ordre décroissant. |
| groupByLimit | Spécifie le nombre maximal de niveaux dans un ensemble de regroupement. Lorsque le serveur atteint ce nombre, il s'arrête et ne renvoie pas de résultat. |
| includeMissing | Si défini à True, les valeurs manquantes sont incluses dans la détermination des valeurs de regroupement. |
| inputs | Spécifie les variables d'entrée pour l'analyse. |
| orderByGbyRaw | Si défini à True, l'ordre des variables de regroupement est basé sur les valeurs brutes des variables, et non sur les valeurs formatées. |
| returnValidSet | Si défini à True, les ensembles de regroupement dont la taille ne dépasse pas la limite spécifiée sont renvoyés. |
| sets | Spécifie les spécifications des ensembles. Permet de définir plusieurs agrégations avec différents groupes et filtres en une seule passe. |
| subSet | Spécifie les statistiques descriptives à générer, comme MEAN (moyenne), N (nombre), STD (écart-type), etc. |
| table | Spécifie la table CAS d'entrée pour l'analyse. |
| weight | Spécifie une variable numérique dont les valeurs pondèrent les valeurs des variables d'analyse. |
Ce code SAS crée une table en mémoire nommée 'CARS' dans la caslib 'casuser'. Cette table contient des informations sur différents modèles de voitures, y compris leur origine, type, prix (MSRP) et consommation (MPG_City). Ces données serviront à illustrer le fonctionnement de l'action 'mdSummary'.
| 1 | DATA casuser.cars; |
| 2 | LENGTH Origin $ 8 Type $ 8 Model $ 25; |
| 3 | INFILE DATALINES delimiter=','; |
| 4 | INPUT Origin $ Type $ Model $ MSRP MPG_City; |
| 5 | DATALINES; |
| 6 | Asia,SUV,Acura MDX,36945,17 |
| 7 | Asia,Sedan,Acura RSX,23820,24 |
| 8 | Asia,Sedan,Acura RL,43755,18 |
| 9 | Europe,Sedan,Audi A4,25940,20 |
| 10 | Europe,Wagon,Audi A4 Avant,30940,18 |
| 11 | Europe,Sedan,BMW 325i,28495,19 |
| 12 | USA,Sedan,Cadillac CTS,30835,18 |
| 13 | USA,SUV,Dodge Durango,26985,13 |
| 14 | USA,Truck,Ford F-150,22375,14 |
| 15 | ; |
| 16 | RUN; |
Cet exemple calcule les statistiques de base (moyenne, min, max) pour la variable 'MSRP' (prix de vente suggéré), regroupées par 'Origin' et 'Type' de véhicule.
| 1 | PROC CAS; |
| 2 | SIMPLE.mdSummary / |
| 3 | TABLE={caslib='casuser', name='cars'}, |
| 4 | subSet={'mean', 'min', 'max'}, |
| 5 | inputs={{name='MSRP'}}, |
| 6 | sets={{ |
| 7 | groupBy={'Origin', 'Type'} |
| 8 | }}; |
| 9 | RUN; |
Cet exemple plus avancé utilise l'action 'mdSummary' pour effectuer deux analyses distinctes en une seule passe. Le premier ensemble calcule la moyenne du 'MSRP' et de 'MPG_City' pour chaque 'Origin'. Le second ensemble calcule les mêmes statistiques mais uniquement pour les véhicules de type 'Sedan', regroupés par 'Origin'. Les résultats pour chaque ensemble sont triés par ordre décroissant de la moyenne du MSRP.
| 1 | PROC CAS; |
| 2 | SIMPLE.mdSummary / |
| 3 | TABLE={caslib='casuser', name='cars'}, |
| 4 | subSet={'mean', 'min', 'max'}, |
| 5 | inputs={{name='MSRP'}, {name='MPG_City'}}, |
| 6 | sets={ |
| 7 | { |
| 8 | groupBy={'Origin'}, |
| 9 | orderBy={{name='_Mean_', order='descending'}} |
| 10 | }, |
| 11 | { |
| 12 | groupBy={'Origin'}, |
| 13 | where='Type="Sedan"', |
| 14 | orderBy={{name='_Mean_', order='descending'}} |
| 15 | } |
| 16 | }; |
| 17 | RUN; |