Das Skript initialisiert eine Makrovariable und einen Fileref für die ODS-Ausgabe. Anschließend wird der Datensatz `my_data` aus Inline-Daten (`datalines`) erstellt. Ein `PROC SQL`-Schritt wird verwendet, um die Gesamtsumme (`bartotal`) von `AMOUNT` für jede `CATEGORY` zu berechnen. Ein zweiter `DATA STEP` berechnet den Prozentsatz (`catpct`) jeder `AMOUNT` im Verhältnis zu ihrem entsprechenden `bartotal` und wendet ein Format an. Die ODS HTML- und ODS Graphics-Ziele werden konfiguriert, um eine HTML-Datei mit dem Diagramm zu generieren. Schließlich wird `PROC SGPLOT` verwendet, um ein zu 100% gestapeltes horizontales Balkendiagramm zu erstellen, das mit benutzerdefinierten Farben, einem 3D-Effekt ('sheen') und spezifischen Achsenattributen gestaltet ist. Die Ausgabe wird in einer HTML-Datei generiert und die ODS-Ziele werden wieder geschlossen.
Datenanalyse
Type : CREATION_INTERNE
Die Quelldaten `my_data` werden direkt im SAS-Skript mithilfe der `datalines`-Anweisung erstellt, was eine autonome Ausführung ohne externe Abhängigkeiten ermöglicht.
1 Codeblock
Déclarations Globales
Erklärung : Definiert eine Makrovariable `name` für den Dateinamen und einen Fileref `odsout`, der auf das aktuelle Verzeichnis für ODS-Ausgaben zeigt.
Kopiert!
%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 ...
Erklärung : Erstellt einen SAS-Datensatz namens `my_data` unter Verwendung von inline bereitgestellten Daten über die `datalines`-Anweisung, mit den Variablen `CATEGORY`, `SERIES` (Zeichen) und `AMOUNT`.
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 Data
Erklärung : Verwendet `PROC SQL`, um den Datensatz `my_data` zu modifizieren. Er berechnet `my_data` neu, indem eine neue Spalte `bartotal` hinzugefügt wird, die die Summe von `AMOUNT` für jede `CATEGORY` ist. Die `GROUP BY`-Klausel stellt sicher, dass `bartotal` pro Kategorie berechnet wird.
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 Data
Erklärung : Ein zweiter `DATA STEP` liest den Datensatz `my_data` (modifiziert durch `PROC SQL`) und berechnet eine neue Variable `catpct`, die den Prozentsatz von `AMOUNT` im Verhältnis zu `bartotal` darstellt. Ein `percent6.0`-Format wird auf `catpct` angewendet.
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 HTML
Erklärung : Schließt das ODS LISTING-Ziel. Öffnet das ODS HTML-Ziel, gibt die HTML-Ausgabedatei (`bar6.htm`), den Seitentitel und den Stil `htmlblue` an. Konfiguriert `ODS GRAPHICS` für den PNG-Bildexport mit spezifischen Abmessungen und definiert zwei Titel für das Diagramm.
title2 color=gray33 ls=0.5 h=17pt "With 3D Shading";
6 Codeblock
PROC SGPLOT
Erklärung : Generiert ein zu 100% gestapeltes horizontales Balkendiagramm mithilfe von `PROC SGPLOT`. Der Datensatz `my_data` wird verwendet. Die Option `hbar` erstellt die Balken, `response=catpct` gibt die darzustellende Variable an, `stat=sum` aggregiert die Werte und `group=series` stapelt die Balken nach `SERIES`. `dataskin=sheen` wendet einen visuellen 3D-Effekt an. Die X- und Y-Achsen werden mit benutzerdefinierten Stil- und Anzeigeattributen konfiguriert.
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 Codeblock
ODS HTML
Erklärung : Beendet die Ausführung der Prozeduren (`quit`). Schließt das ODS HTML-Ziel und reaktiviert das ODS LISTING-Ziel.
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.