Publié le :
Reporting SASHELP

Analyse et reporting sur les données de voitures

Ce code est également disponible en : Deutsch Español
En attente de validation
Ce script illustre plusieurs techniques de base en SAS©. Il commence par créer des sous-ensembles de la table `sashelp.cars` avec `PROC SQL`. Ensuite, il calcule des valeurs agrégées comme la moyenne de la consommation d'essence et le prix par cheval-vapeur. Une macro-variable est utilisée pour rendre le choix de la colonne de consommation dynamique. Le script compte également le nombre de marques de voitures et stocke ce nombre dans une macro-variable. Finalement, il produit un rapport tabulaire avec `PROC PRINT` et un diagramme en barres avec `PROC SGPLOT` pour visualiser les résultats.
Analyse des données

Type : SASHELP


Le script utilise exclusivement la table 'sashelp.cars', qui est une table de données standard fournie avec SAS.

1 Bloc de code
PROC SQL Data
Explication :
Crée une nouvelle table 'example1' contenant uniquement les colonnes 'make' et 'mpg_highway' de la table 'sashelp.cars'.
Copié !
1PROC SQL;
2create TABLE example1 as
3 select make, mpg_highway
4 from sashelp.cars;
5QUIT;
2 Bloc de code
PROC SQL Data
Explication :
Crée une table 'example2' en sélectionnant les colonnes 'make' et 'mpg_highway' pour les voitures d'origine américaine ('USA') à partir de 'sashelp.cars'.
Copié !
1PROC SQL;
2create TABLE example2 as
3 select make, mpg_highway
4 from sashelp.cars
5 where origin="USA";
6QUIT;
3 Bloc de code
PROC SQL Data
Explication :
Crée la table 'example3' qui calcule la consommation moyenne sur autoroute ('avg_mpg') pour chaque marque ('make') de voiture d'origine américaine.
Copié !
1PROC SQL;
2create TABLE example3 as
3 select make, avg(mpg_highway) as avg_mpg
4 from sashelp.cars
5 where origin="USA"
6 group BY make;
7QUIT;
4 Bloc de code
PROC SQL Data
Explication :
Crée la table 'example5' calculant le prix moyen par cheval-vapeur ('avg_ppp') pour chaque marque américaine. Le résultat est formaté en dollars et trié par ordre décroissant.
Copié !
1PROC SQL;
2create TABLE example5 as
3 select make, avg(msrp/horsepower) as avg_ppp
4 FORMAT dollar10.2 label="Price per pony"
5 from sashelp.cars
6 where origin = "USA"
7 group BY make
8 order BY avg_ppp desc;
9QUIT;
5 Bloc de code
PROC SQL Data
Explication :
Définit une macro-variable 'mpgVar' pour choisir la colonne de consommation. Ensuite, ce bloc PROC SQL crée la table 'work.example4' en calculant la consommation moyenne par marque, en utilisant la macro-variable. Il compte également le nombre de marques distinctes et stocke le résultat dans la macro-variable 'howMany'. L'option 'noprint' empêche l'affichage des résultats de la requête.
Copié !
1%let mpgVar = mpg_city; /* or mpg_highway */
2 
3PROC SQL noprint;
4create TABLE work.example4 as
5 select make,
6 avg(&mpgVar) as avg_mpg FORMAT 4.2
7 from sashelp.cars
8 where origin="USA"
9 group BY make
10 order BY avg_mpg desc;
11 
12 select count(distinct make) into :howMany
13 from sashelp.cars
14 where origin="USA";
15QUIT;
6 Bloc de code
PROC PRINT
Explication :
Génère un rapport tabulaire à partir de la table 'work.example4'. Le titre du rapport est dynamique et affiche le nombre de marques analysées (valeur de '&howMany'). Le rapport affiche la marque et sa consommation moyenne, avec des libellés personnalisés.
Copié !
1title "Analyzed %sysfunc(trim(&howMany)) values of Make";
2PROC PRINT DATA=work.example4
3 label noobs;
4 var make avg_mpg;
5 label avg_mpg="Average &mpgVar";
6RUN;
7 Bloc de code
PROC SGPLOT
Explication :
Crée un diagramme en barres verticales pour visualiser la consommation moyenne ('avg_mpg') pour chaque marque ('make') à partir de la table 'work.example4'. Les axes du graphique sont étiquetés pour plus de clarté.
Copié !
1title; /* clear title */
2ods graphics / width=600 height=400;
3PROC SGPLOT DATA=work.example4;
4 vbar make / response=avg_mpg;
5 xaxis label="Make";
6 yaxis label="Average &mpgVar";
7RUN;
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.