Le script initialise un macro-variable et un fileref pour la sortie ODS. Il crée ensuite le jeu de données `my_data` à partir de données en ligne (`datalines`). Une étape `PROC SQL` est utilisée pour calculer la somme totale (`bartotal`) de `AMOUNT` pour chaque `CATEGORY`. Un deuxième `DATA STEP` calcule le pourcentage (`catpct`) de chaque `AMOUNT` par rapport à son `bartotal` correspondant et applique un format. Les destinations ODS HTML et ODS Graphics sont configurées pour générer un fichier HTML avec le graphique. Enfin, `PROC SGPLOT` est utilisée pour créer un graphique à barres horizontales empilées à 100%, stylisé avec des couleurs personnalisées, un effet 3D ('sheen') et des attributs d'axe spécifiques. L'output est généré dans un fichier HTML et les destinations ODS sont refermées.
Analyse des données
Type : CREATION_INTERNE
Les données source `my_data` sont créées directement dans le script SAS à l'aide de l'instruction `datalines`, permettant une exécution autonome sans dépendances externes.
1 Bloc de code
Déclarations Globales
Explication : Définit une macro-variable `name` pour le nom de fichier et un fileref `odsout` pointant vers le répertoire courant pour les sorties ODS.
Copié !
%let name=bar6;
/*
Set your current-working-directory (to read/write files), if you need to ...
%let rc=%sysfunc(dlgcdir('c:\someplace\public_html'));
*/
filename odsout '.';
1
%let name=bar6;
2
3
/*
4
Set your current-working-directory (to read/write files), if you need to ...
Explication : Crée un jeu de données SAS nommé `my_data` en utilisant des données fournies en ligne via l'instruction `datalines`, avec les variables `CATEGORY`, `SERIES` (caractère) et `AMOUNT`.
Copié !
data my_data;
input CATEGORY SERIES $ 3-11 AMOUNT;
datalines;
1 Series A 5.0
2 Series A 6.8
3 Series A 9.2
1 Series B 6.5
2 Series B 6.9
3 Series B 5.6
1 Series C 2.3
2 Series C 3.1
3 Series C 2.3
;
run;
1
DATA my_data;
2
INPUT CATEGORY SERIES $ 3-11 AMOUNT;
3
DATALINES;
4
1 Series A 5.0
5
2 Series A 6.8
6
3 Series A 9.2
7
1 Series B 6.5
8
2 Series B 6.9
9
3 Series B 5.6
10
1 Series C 2.3
11
2 Series C 3.1
12
3 Series C 2.3
13
;
14
RUN;
3 Bloc de code
PROC SQL Data
Explication : Utilise `PROC SQL` pour modifier le jeu de données `my_data`. Il recalcule `my_data` en ajoutant une nouvelle colonne `bartotal`, qui est la somme de `AMOUNT` pour chaque `CATEGORY`. La clause `GROUP BY` assure que `bartotal` est calculé par catégorie.
Copié !
proc sql;
create table my_data as
select *, sum(amount) as bartotal
from my_data
group by category;
quit; run;
1
PROC SQL;
2
create TABLE my_data as
3
select *, sum(amount) as bartotal
4
from my_data
5
group BY category;
6
QUIT; RUN;
4 Bloc de code
DATA STEP Data
Explication : Un deuxième `DATA STEP` lit le jeu de données `my_data` (modifié par `PROC SQL`) et calcule une nouvelle variable `catpct` représentant le pourcentage de `AMOUNT` par rapport à `bartotal`. Un format `percent6.0` est appliqué à `catpct`.
Copié !
data my_data; set my_data;
format catpct percent6.0;
catpct=amount/bartotal;
run;
1
DATA my_data; SET my_data;
2
FORMAT catpct percent6.0;
3
catpct=amount/bartotal;
4
RUN;
5 Bloc de code
ODS HTML
Explication : Ferme la destination ODS LISTING. Ouvre la destination ODS HTML, spécifie le fichier de sortie HTML (`bar6.htm`), le titre de la page et le style `htmlblue`. Configure `ODS GRAPHICS` pour l'exportation d'images PNG avec des dimensions spécifiques, et définit deux titres pour le graphique.
title2 color=gray33 ls=0.5 h=17pt "With 3D Shading";
6 Bloc de code
PROC SGPLOT
Explication : Génère un graphique à barres horizontales empilées à 100% à l'aide de `PROC SGPLOT`. Le jeu de données `my_data` est utilisé. L'option `hbar` crée les barres, `response=catpct` indique la variable à représenter, `stat=sum` aggrège les valeurs, et `group=series` empile les barres par `SERIES`. `dataskin=sheen` applique un effet visuel 3D. Les axes X et Y sont configurés avec des attributs de style et d'affichage personnalisés.
dataskin=sheen /* <--- basically, added this line! */
7
outlineattrs=(color=black) nostatlabel;
8
xaxis
9
values=(0 to 1BY .2)
10
labelattrs=(size=16pt weight=bold color=gray33)
11
valueattrs=(size=16pt weight=bold color=gray33)
12
offsetmax=0 grid minor minorcount=1;
13
yaxis
14
labelattrs=(size=16pt weight=bold color=gray33)
15
valueattrs=(size=16pt weight=bold color=gray33)
16
display=(noticks);
17
RUN;
7 Bloc de code
ODS HTML
Explication : Termine l'exécution des procédures (`quit`). Ferme la destination ODS HTML et réactive la destination ODS LISTING.
Copié !
quit;
ODS HTML CLOSE;
ODS LISTING;
1
QUIT;
2
ODS HTML CLOSE;
3
ODS LISTING;
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.
SAS et tous les autres noms de produits ou de services de SAS Institute Inc. sont des marques déposées ou des marques de commerce de SAS Institute Inc. aux États-Unis et dans d'autres pays. ® indique un enregistrement aux États-Unis. WeAreCAS est un site communautaire indépendant et n'est pas affilié à SAS Institute Inc.
Ce site utilise des cookies techniques et analytiques pour améliorer votre expérience.
En savoir plus.