Das Skript beginnt mit der Erstellung eines Datensatzes 'my_data' mit Informationen zu Kategorien, Serien und Beträgen. Anschließend wird PROC SQL verwendet, um die Gesamtsumme der Beträge für jede Kategorie ('bartotal') zu berechnen. Ein zweiter DATA STEP wird verwendet, um den Prozentsatz jedes Betrags im Verhältnis zur Gesamtsumme seiner Kategorie ('catpct') zu berechnen und ein Prozentformat anzuwenden. Schließlich wird die ODS-Ausgabe so konfiguriert, dass eine HTML-Datei und ein PNG-Bild generiert werden. PROC SGPLOT wird verwendet, um das zu 100 % gestapelte horizontale Balkendiagramm zu erstellen, wobei 'category' auf der Y-Achse, 'catpct' als Antwort und 'series' für die Gruppierung der Balken verwendet werden. Titel und Stilattribute werden angewendet, um die Präsentation zu verbessern.
Datenanalyse
Type : CREATION_INTERNE
Die Initialdaten werden direkt im Skript über einen DATALINES-Block in einem DATA STEP erstellt. Sie werden anschließend durch weitere PROC SQL- und DATA STEP-Schritte transformiert und angereichert.
1 Codeblock
DATA STEP Data
Erklärung : Dieser DATA STEP-Block erstellt einen Datensatz namens 'my_data'. Er verwendet die 'input'-Anweisung, um drei Variablen (CATEGORY, SERIES, AMOUNT) zu definieren, und den 'datalines'-Block, um die Daten direkt in den Datensatz einzulesen.
Kopiert!
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;
2 Codeblock
PROC SQL Data
Erklärung : Diese SQL-Prozedur modifiziert den Datensatz 'my_data'. Sie berechnet die Summe der 'amount' für jede 'category', speichert diese Gesamtsumme in einer neuen Spalte 'bartotal' und erstellt den Datensatz 'my_data' mit dieser neuen Spalte neu. Dies ist ein wesentlicher Aggregationsschritt für die Prozentberechnungen.
Kopiert!
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;
3 Codeblock
DATA STEP
Erklärung : Dieser DATA STEP aktualisiert den vorhandenen Datensatz 'my_data'. Er berechnet den Prozentsatz ('catpct') jedes 'amount' im Verhältnis zum entsprechenden 'bartotal'. Eine Formatierung 'percent6.0' wird auf die neue Variable 'catpct' angewendet, um eine Prozentanzeige zu erhalten.
Kopiert!
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;
4 Codeblock
PROC SGPLOT
Erklärung : Dieser Block verwaltet die Ausgabe und Visualisierung. Die ODS-Anweisungen (Output Delivery System) werden verwendet, um eine HTML-Ausgabe und ein PNG-Bild des Diagramms zu generieren. Anschließend wird PROC SGPLOT aufgerufen, um ein zu 100 % gestapeltes horizontales Balkendiagramm zu erstellen. Es verwendet 'category' auf der Y-Achse, 'catpct' als Antwortvariable und 'series' zum Gruppieren der Balken, wodurch der proportionale Beitrag jeder Serie innerhalb jeder Kategorie angezeigt wird. Stiloptionen, Titel und Achsen werden konfiguriert, um das Erscheinungsbild des Diagramms anzupassen.
Kopiert!
ODS LISTING CLOSE;
ODS HTML path=odsout body="&name..htm"
(title="SGplot 100% Stacked Horizontal 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 Horizontal 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";
proc sgplot data=my_data noautolegend pad=(left=10% right=15%);
label catpct='PERCENT';
styleattrs datacolors=(cx9999ff cx993366 cxffffcc);
hbar category / response=catpct stat=sum
group=series /*barwidth=.6*/
outlineattrs=(color=black) nostatlabel;
xaxis
values=(0 to 1 by .2)
labelattrs=(size=16pt weight=bold color=gray33)
valueattrs=(size=16pt weight=bold color=gray33)
offsetmax=0 grid minor minorcount=1;
yaxis
labelattrs=(size=16pt weight=bold color=gray33)
valueattrs=(size=16pt weight=bold color=gray33)
display=(noticks);
run;
quit;
ODS HTML CLOSE;
ODS LISTING;
Dieses Material wird von We Are Cas "wie besehen" zur Verfügung gestellt. Es gibt keine ausdrücklichen oder stillschweigenden Garantien hinsichtlich der Marktgängigkeit oder Eignung für einen bestimmten Zweck in Bezug auf die hierin enthaltenen Materialien oder Codes. We Are Cas ist nicht verantwortlich für Fehler in diesem Material, wie es jetzt existiert oder existieren wird, noch bietet We Are Cas technischen Support dafür an.
SAS und alle anderen Produkt- oder Dienstleistungsnamen von SAS Institute Inc. sind eingetragene Marken oder Marken von SAS Institute Inc. in den USA und anderen Ländern. ® zeigt die Registrierung in den USA an. WeAreCAS ist eine unabhängige Community-Site und nicht mit SAS Institute Inc. verbunden.
Diese Website verwendet technische und analytische Cookies, um Ihre Erfahrung zu verbessern.
Mehr erfahren.