Das Programm beginnt mit der Erstellung von drei Arbeitstabellen: `class`, `shoes` und `cars`, basierend auf den entsprechenden Tabellen aus der SASHELP-Bibliothek. Die `shoes`-Tabelle wird gefiltert, um nur die Regionen 'Canada' und 'Pacific' zu behalten. Anschließend werden alle offenen ODS-Ziele geschlossen und ein neues ODS-Dokument namens `doc_results` gestartet. Mehrere Berichte werden mit `PROC REPORT` für die verschiedenen Tabellen generiert, wobei einige dynamisch über ein Makro `%loopTroughMake` erstellt werden, das über die Automarken iteriert. Eine Grafik wird ebenfalls mit `PROC SGPLOT` hinzugefügt. Schließlich wird das ODS-Dokument geschlossen, wodurch alle Ausgaben in einer einzigen Datei konsolidiert werden.
Datenanalyse
Type : SASHELP
Die Daten stammen ausschließlich aus der SASHELP-Bibliothek (Tabellen class, shoes, cars).
1 Codeblock
DATA STEP Data
Erklärung : Erstellt die Tabelle `class` in der WORK-Bibliothek, indem `sashelp.class` kopiert und eine konstante Spalte `const` hinzugefügt wird.
Kopiert!
DATA class;
SET sashelp.class;
const = 1;
RUN;
1
DATA class;
2
SET sashelp.class;
3
const = 1;
4
RUN;
2 Codeblock
PROC SORT
Erklärung : Sortiert die Tabelle `class` nach den Variablen `const` und `sex`.
Kopiert!
PROC SORT DATA=class; BY const sex;RUN;
1
PROC SORTDATA=class; BY const sex;RUN;
3 Codeblock
DATA STEP Data
Erklärung : Erstellt die Tabelle `shoes`, indem `sashelp.shoes` gefiltert wird, um nur die Regionen 'Canada' und 'Pacific' zu behalten.
Kopiert!
DATA shoes;
SET sashelp.shoes;
WHERE region in ('Canada', 'Pacific');
RUN;
1
DATA shoes;
2
SET sashelp.shoes;
3
WHERE region in ('Canada', 'Pacific');
4
RUN;
4 Codeblock
PROC SORT
Erklärung : Sortiert die Tabelle `shoes` nach `region` und `product`.
Kopiert!
PROC SORT DATA=shoes; BY region product; RUN;
1
PROC SORTDATA=shoes; BY region product; RUN;
5 Codeblock
DATA STEP Data
Erklärung : Erstellt die Tabelle `cars`, indem `sashelp.cars` kopiert und eine konstante Spalte `const` hinzugefügt wird.
Kopiert!
DATA cars;
SET sashelp.cars;
const = 1;
RUN;
1
DATA cars;
2
SET sashelp.cars;
3
const = 1;
4
RUN;
6 Codeblock
ODS
Erklärung : Schließt alle aktuell geöffneten ODS-Ziele und öffnet dann ein neues `ODS DOCUMENT`-Ziel namens `doc_results` im Schreibmodus.
Erklärung : Generiert einen tabellarischen Bericht über Schuhverkäufe (`shoes`), gruppiert nach Region (`region`). Der ODS-Label und der Titel werden zur Identifizierung in der Ausgabe definiert.
Kopiert!
ODS PROCLABEL="Table 1: By Group Report about shoes";
TITLE "Table 1: By Group Report about shoes";
PROC REPORT DATA=shoes CONTENTS="";
BY region;
COLUMN region product sales;
DEFINE region / ORDER NOPRINT;
BREAK BEFORE region / CONTENTS="" page;
RUN;
1
ODS PROCLABEL="Table 1: By Group Report about shoes";
2
TITLE "Table 1: By Group Report about shoes";
3
PROC REPORTDATA=shoes CONTENTS="";
4
BY region;
5
COLUMN region product sales;
6
DEFINE region / ORDER NOPRINT;
7
BREAK BEFORE region / CONTENTS="" page;
8
RUN;
8 Codeblock
PROC REPORT
Erklärung : Generiert einen Bericht, der die Schüler der Tabelle `class` auflistet. Ein Seitenumbruch wird vor dem Beginn des Berichts erzwungen.
Kopiert!
TITLE "Table 2: Table Class Output";
ODS PROCLABEL "Table 2: Table Class Output";
PROC REPORT DATA=class CONTENTS="";
COLUMN const name sex age height weight;
DEFINE const / ORDER NOPRINT;
BREAK BEFORE const / CONTENTS="" page;
RUN;
1
TITLE "Table 2: Table Class Output";
2
ODS PROCLABEL "Table 2: Table Class Output";
3
PROC REPORTDATA=class CONTENTS="";
4
COLUMN const name sex age height weight;
5
DEFINE const / ORDER NOPRINT;
6
BREAK BEFORE const / CONTENTS="" page;
7
RUN;
9 Codeblock
Macro
Erklärung : Definiert ein Makro `%loopTroughMake`, das einen `PROC REPORT`-Bericht für eine gegebene Automarke (`make`) generiert. Das Makro akzeptiert die Marke und eine Tabellennummer `i` als Parameter, um den Titel und das ODS-Label anzupassen.
Kopiert!
%MACRO loopTroughMake(make,i);
TITLE "Table &i: Multiple outputs - Cars for make = &make";
ODS PROCLABEL "Table &i: Multiple outputs - Cars for make = &make";
PROC REPORT DATA=cars(WHERE=(make = "&make")) nowd headline spacing=2 CONTENTS="";
COLUMN const make model type msrp;
DEFINE const / ORDER NOPRINT;
BREAK BEFORE const / CONTENTS="" page;
RUN;
TITLE;
%MEND;
1
%MACRO loopTroughMake(make,i);
2
TITLE "Table &i: Multiple outputs - Cars for make = &make";
3
ODS PROCLABEL "Table &i: Multiple outputs - Cars for make = &make";
Erklärung : Generiert einen weiteren Bericht über die Tabelle `class`, ähnlich dem zweiten Bericht, aber mit einem anderen Titel und ODS-Label.
Kopiert!
ODS PROCLABEL="Table 6: Different label";
TITLE "Table 6: Different title and label";
PROC REPORT DATA=class CONTENTS="";
COLUMN const name sex age height weight;
DEFINE const / ORDER NOPRINT;
BREAK BEFORE const / CONTENTS="" page;
RUN;
1
ODS PROCLABEL="Table 6: Different label";
2
TITLE "Table 6: Different title and label";
3
PROC REPORTDATA=class CONTENTS="";
4
COLUMN const name sex age height weight;
5
DEFINE const / ORDER NOPRINT;
6
BREAK BEFORE const / CONTENTS="" page;
7
RUN;
12 Codeblock
PROC SGPLOT
Erklärung : Erstellt ein vertikales Balkendiagramm (`VBAR`) mit `PROC SGPLOT`, das das Alter (`age`) gruppiert nach Geschlecht (`sex`) aus der Tabelle `sashelp.class` zeigt.
Kopiert!
ODS PROCLABEL="Figure 1: Class graphic";
PROC SGPLOT DATA = sashelp.class;
VBAR age / GROUP = sex;
TITLE 'Figure 1: Class overview by sex and age';
RUN;
1
ODS PROCLABEL="Figure 1: Class graphic";
2
PROC SGPLOTDATA = sashelp.class;
3
VBAR age / GROUP = sex;
4
TITLE 'Figure 1: Class overview by sex and age';
5
RUN;
13 Codeblock
ODS
Erklärung : Schließt das `ODS DOCUMENT`-Ziel, wodurch das `doc_results`-Dokument mit allen generierten Ausgaben finalisiert und gespeichert wird.
Kopiert!
ODS DOCUMENT CLOSE;
1
ODS DOCUMENT CLOSE;
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.
Urheberrechtsinformationen : Project: SMILE - SAS Macros, Intuitive Library Extension, Author: Katja Glass, License: MIT
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.