Das Skript beginnt mit der Definition einer Makrovariablen und eines Filerefs. Anschließend wird ein Datensatz namens 'my_data' aus DATALINES-Anweisungen erstellt. Ein PROC SQL-Schritt wird verwendet, um 'my_data' anzureichern, indem die Summe der Beträge pro Kategorie ('bartotal') berechnet wird. Ein zweiter DATA STEP berechnet den Prozentsatz jedes Betrags im Verhältnis zu seinem 'bartotal' ('catpct') und formatiert diese neue Variable. Schließlich konfiguriert das Skript die ODS-Ziele (HTML und PNG-Grafik) und verwendet PROC SGPLOT, um ein 100% gestapeltes Balkendiagramm zu generieren, das diese Prozentsätze mit ästhetischen Anpassungen für Achsen und Farben illustriert.
Datenanalyse
Type : CREATION_INTERNE
Der Hauptdatensatz 'my_data' wird direkt im Skript über eine DATALINES-Anweisung erstellt, was ihn zu einer internen Datenquelle des Codes macht.
1 Codeblock
Macro Variable / Fileref
Erklärung : Definiert die Makrovariable 'name' für den Ausgabedateinamen und den 'Fileref' 'odsout', der auf das aktuelle Verzeichnis für ODS-Ausgaben verweist.
Kopiert!
%let name=col5;
filename odsout '.';
1
%let name=col5;
2
filename odsout '.';
2 Codeblock
DATA STEP Data
Erklärung : Erstellt den SAS-Datensatz 'my_data', indem die direkt im Skript bereitgestellten Rohdaten ('datalines') mit den Variablen CATEGORY, SERIES und AMOUNT gelesen werden.
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;
3 Codeblock
PROC SQL
Erklärung : Modifiziert den Datensatz 'my_data' durch Hinzufügen einer neuen Spalte 'bartotal', die die Summe der 'AMOUNT' für jede 'CATEGORY' mittels einer SQL-Abfrage darstellt.
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;
4 Codeblock
DATA STEP
Erklärung : Modifiziert den Datensatz 'my_data' durch Berechnung von 'catpct', dem Prozentsatz von 'AMOUNT' im Verhältnis zu 'bartotal', und wendet ein Prozentformat auf diese neue Variable an.
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;
5 Codeblock
ODS
Erklärung : Schließt das standardmäßige ODS LISTING-Ziel. Öffnet das ODS HTML-Ziel, gibt den Ausgabepfad, den HTML-Dateinamen und den Stil an. Konfiguriert die ODS GRAPHICS-Optionen für das generierte PNG-Bild. Definiert die Haupttitel des Diagramms mit Stil- und Farboptionen.
Kopiert!
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 Codeblock
PROC SGPLOT
Erklärung : Generiert ein 100% gestapeltes Balkendiagramm unter Verwendung des Datensatzes 'my_data'. Die Balken repräsentieren 'CATEGORY', die Höhe basiert auf 'catpct', und die Stapel werden durch 'SERIES' definiert. Der Code passt Legenden, Datenfarben, Balkenattribute (Breite, Umriss) und das Aussehen der X- und Y-Achsen (Beschriftungen, Werte, Gitter) an.
Erklärung : Beendet die aktiven Prozeduren. Schließt das ODS HTML-Ziel und speichert die HTML-Datei sowie die zugehörigen Bilder. Aktiviert anschließend das ODS LISTING-Ziel wieder.
Kopiert!
quit;
ODS HTML CLOSE;
ODS LISTING;
1
QUIT;
2
ODS HTML CLOSE;
3
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.