Le script commence par définir une variable macro et un fileref. Il crée ensuite un jeu de données nommé 'my_data' à partir d'instructions DATALINES. Une étape PROC SQL est utilisée pour enrichir 'my_data' en calculant le total des montants par catégorie ('bartotal'). Une seconde étape DATA STEP calcule le pourcentage de chaque montant par rapport à son 'bartotal' ('catpct') et formate cette nouvelle variable. Enfin, le script configure les destinations ODS (HTML et graphique PNG) et utilise PROC SGPLOT pour générer un graphique à barres empilées de 100%, illustrant ces pourcentages avec des personnalisations esthétiques pour les axes et les couleurs.
Analyse des données
Type : CREATION_INTERNE
Le jeu de données principal 'my_data' est créé directement dans le script via une instruction DATALINES, ce qui en fait une source de données interne au code.
1 Bloc de code
Macro Variable / Fileref
Explication : Définit la variable macro 'name' utilisée pour le nom de fichier de sortie et le 'fileref' 'odsout' pointant vers le répertoire courant pour les sorties ODS.
Copié !
%let name=col5;
filename odsout '.';
1
%let name=col5;
2
filename odsout '.';
2 Bloc de code
DATA STEP Data
Explication : Crée le jeu de données SAS 'my_data' en lisant les données brutes fournies directement dans le script ('datalines') avec les variables CATEGORY, SERIES 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
Explication : Modifie le jeu de données 'my_data' en ajoutant une nouvelle colonne 'bartotal', qui représente la somme des 'AMOUNT' pour chaque 'CATEGORY' à l'aide d'une requête SQL.
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
Explication : Modifie le jeu de données 'my_data' en calculant 'catpct', le pourcentage de 'AMOUNT' par rapport à 'bartotal', et applique un format de pourcentage à cette nouvelle variable.
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
Explication : Ferme la destination ODS LISTING par défaut. Ouvre la destination ODS HTML, spécifie le chemin de sortie, le nom du fichier HTML et le style. Configure les options ODS GRAPHICS pour l'image PNG générée. Définit les titres principaux du graphique avec des options de style et de couleur.
Copié !
ODS LISTING CLOSE;
ODS HTML path=odsout body="&name..htm"
(title="SGplot 100% Stacked Bar")
style=htmlblue;
ods graphics / imagefmt=png imagename="&name"
width=800px height=600px noborder imagemap;
title1 color=gray33 ls=0.5 h=23pt "100% Stacked Bar";
title2 color=gray33 ls=0.5 h=17pt "Compares the percent each value";
title3 color=gray33 ls=0.5 h=17pt "to a total across categories";
title2 color=gray33 ls=0.5 h=17pt "Compares the percent each value";
11
title3 color=gray33 ls=0.5 h=17pt "to a total across categories";
6 Bloc de code
PROC SGPLOT
Explication : Génère un graphique à barres empilées de 100% en utilisant le jeu de données 'my_data'. Les barres représentent 'CATEGORY', la hauteur est basée sur 'catpct', et les empilements sont définis par 'SERIES'. Le code personnalise les légendes, les couleurs des données, les attributs des barres (largeur, contour) et l'apparence des axes X et Y (labels, valeurs, grille).
Explication : Termine les procédures actives. Ferme la destination ODS HTML, enregistrant ainsi le fichier HTML et les images associées. Réactive ensuite 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.