C. Ortseifen: ODS in SAS V8 4. August 2000 SAS

Werbung
C. Ortseifen: ODS in SAS V8
4. August 2000
Das Output Delivery System (ODS)
der SAS Version 8.0
SAS-Benutzertreff
am URZ
4. August 2000
Inhalt
1.
2.
Übersicht
Erzeugung von
a.
b.
c.
3.
HTML
RTF
Output Tabellen
Literatur
1. Übersicht über ODS
Neuerung der SAS Version 8
Erweiterung der Ausgestaltungsmöglichkeiten
des SAS Outputs
Methode, um SAS Outputs in HTML oder RTF
Format zu konvertieren
Gezielter Zugriff auf einzelne Teile des Outputs
SAS-Benutzertreff am URZ
1
C. Ortseifen: ODS in SAS V8
4. August 2000
Output Objekte
Der Kern von ODS sind die Output Objekte.
Jede SAS Prozedur legt ein oder mehrere
Output Objekte an (Proc Univariate z.B. fünf
Output Objekte).
Im Result-Fenster wird für jedes Output Objekt
ein Link eingetragen
Sie bestehen aus einer Daten- und einer
Template-Komponente sowie Informationen
über die Prozedur, die den Output erzeugt hat.
Output Objekte (2)
Datenkomponente: Zahlen und Texte, aus
denen sich die Tabelle oder die Grafik
zusammensetzt.
Template: Anweisungen und Attribute, die
beschreiben, wie ODS die Daten darstellt.
ODS kombiniert die Daten mit dem Template.
Mit der Prozedur TEMPLATE können diese
Templates modifiziert werden.
Ausgabeformen
Die Output Objekte können ausgegeben
werden in Form von:
Standard SAS Listing
Listing
HTML
HTML
RTF (Experimental)
RTF
Output Data Sets
Output
PS
PRINTER
In 8.1: PDF, XML
PRINTER
In 8.2: LaTeX, PCL
PRINTER
SAS-Benutzertreff am URZ
2
C. Ortseifen: ODS in SAS V8
4. August 2000
Destinations öffnen und schließen
Öffnen einer Destination:
Schließen einer Destination:
Standard (Default):
Listing
geöffnet
die anderen
geschlossen
ods listing;
ods html <Optionen>;
ods output <action>;
ods <destination> close;
Output Objekte ein-/ausschließen
Selektion (select) und Ausschluss (exclude)
ods <Destination> <Option>;
Optionen:
select <Auswahl>
select all
select none
exclude <Auswahl>
exclude all
exclude none
Beispiele
ods html exclude all;
ods listing exclude all;
ods exclude all;
SAS-Benutzertreff am URZ
3
C. Ortseifen: ODS in SAS V8
4. August 2000
Gezielte Auswahl
ods listing select BasicMeasures;
proc univariate data=kurs.blutbild;
var alter;
run;
run
Selektion gilt nur für diesen Prozedurschritt !
Es sei denn:
ods listing select BasicMeasures (persist);
proc univariate data=kurs.blutbild;
var alter;
run;
run
Anweisung ODS SHOW
Die Einstellungen der Destinations kann man
sich mit
ods <destination> show;
anzeigen lassen.
Anweisung ODS TRACE
Jedes Output Objekt erhält einen Namen.
Mit der Anweisung ODS Trace werden diese
im Log-Fenster angezeigt.
ods trace on;
proc univariate data=kurs.iris;
var sl sw;
run;
run
ods trace off;
SAS-Benutzertreff am URZ
4
C. Ortseifen: ODS in SAS V8
4. August 2000
Output Added:
------------Name:
Moments
Label:
Moments
Template:
base.univariate.Moments
Path:
Univariate.SL.Moments
------------Output Added:
------------Name:
Label:
Template:
Path:
BasicMeasures
Basic Measures of Location and
Variability
base.univariate.Measures
Univariate.SL.BasicMeasures
Gleichnamige Output Objekte
ods listing select quantiles moments;
zeigt alle Output Objekte mit den Namen an.
ods listing select sl.moments;
zeigt nur die Momente von sl an.
2.a Destination HTML
erzeugt bis zu vier Files:
Body=
eigentliche Prozedurausgabe
(Table-Tags, Img-Tags)
Contents= Inhaltsangabe mit Links zu
einzelnen Output Objekten in Body
Page=
Links zu einzelnen Seiten in Body
Frame=
Web-Seite, die alle erzeugten Files
anzeigt
SAS-Benutzertreff am URZ
5
C. Ortseifen: ODS in SAS V8
4. August 2000
Beispiel
ods html file='body.htm'
contents='contents.htm'
frame='frame.htm';
proc means data=kurs.iris;
run;
run
ods html close;
HTML Optionen
Path=
URL=
Ordner, wo Files abgelegt werden
Suboption, in Klammern
Links über URL, statt physik. Pfad
No_top_matter, no_bottom_matter
unterdrückt HTML-Tags am Anfang
und Ende des Files
Anchor= selbstbestimmte Anker für Output
Objekte
filename web 'f:\_temp';
ods listing close;
ods html path
= 'f:\_temp'
body
= web (no_bottom_matter)
contents = 'content.htm'
frame
= 'frame.htm';
proc univariate data=kurs.iris;
var sl sw;
run;
run
ods html close;
filename web 'f:\_temp\body.htm' mod;
data _null_;
file web;
put '<h3> Kommentar nach der ersten Prozedur. </h3>';
run;
run
SAS-Benutzertreff am URZ
6
C. Ortseifen: ODS in SAS V8
4. August 2000
ods html body=web (no_top_matter no_bottom_matter);
proc freq data=kurs.iris;
tables blume;
run;
run
ods html close;
data _null_;
file web;
put '<h3> Noch ein Kommentar! </h3>';
run;
run
ods html body=web (no_top_matter);
ods html close;
HTML Optionen (2)
Newfile=
Getrennte Seiten (Files) für
jedes Output Objekt
none, output, page, proc
Page=
Mit der Option Newfile= wird
eine weitere HTML-Datei angelegt, die Links zu den Seiten
enthält.
HTML mit Styles
ods html file='body.htm'
contents='contents.htm'
frame='frame.htm'
style=Styles.Beige;
proc ...
ods html close;
Styles sind Elemente mit Attributen für Farbe,
Schriftart etc. für die HTML-Seiten.
SAS-Benutzertreff am URZ
7
C. Ortseifen: ODS in SAS V8
4. August 2000
Styles
Styles werden mit Templates in einem ODS
Template Store (Erweiterung sas7bitm)
gespeichert.
Der Template Pfad bestimmt den Ort, wo ODS
nach Styles und Templates sucht.
ods path show;
Die Prozedur TEMPLATE erlaubt, Templates
und Styles aufzulisten.
proc template; list styles; run;
Cascading Style Sheets
Der reine HTML-Text ist recht gross und
unübersichtlich. (Das ist ein Tribut an die
Lesbarkeit der HTML-Files mit beliebigen
Browsern.)
Optionen:
css
stylesheet="style.css"
Ist experimentell in V8.
Änderungen im Contents Files
1.
2.
3.
Table of Contents Label
- Style-Element ContentTitle
The XXX Procedure Label
- Style-Element ContentProcName
- Anweisung ODS Proclabel
Label für jedes Output Objekt
abhängig von Prozedur
Option Contents=
Option Description=
Option Contents_Label
SAS-Benutzertreff am URZ
8
C. Ortseifen: ODS in SAS V8
4. August 2000
1. Table of Contents
Anlegen eines neuen Styles mit Proc Template:
proc template;
define style styles.ContentsChanges;
parent=styles.default;
style ContentTitle from ContentTitle /
pretext = 'Inhaltsverzeichnis';
end;
run;
run
2. The XXX Procedure
Style-Element ContentProcName:
proc template;
define style styles.ContentsChanges;
parent=styles.default;
style ContentProcName from
ContentProcName /
pretext = 'Ergebnis der Prozedur '
posttext= '.';
end;
run;
The XXX Procedure (2)
Anweisung ODS Proclabel
ods proclabel 'UNIVARIATE ist mehr !';
!';
proc univariate data=kurs.iris;
var sl;
run;
run
SAS-Benutzertreff am URZ
9
C. Ortseifen: ODS in SAS V8
4. August 2000
3. Label für einzelne Output Objekte
Proc Tabulate, Print, Freq:
Option CONTENTS der Anweisung Proc
SAS/GRAPH Prozeduren:
Option DESCRIPTION
Andere Prozeduren:
Option CONTENTS_LABEL von Proc
Template
proc print data=kurs.iris
contents=
contents='Fishers Iris-Daten';
run;
run
proc gplot data=kurs.iris;
plot sl*sw / description=
description='Fishers IrisDaten - Plot von Sl*Sw';
run;quit
run quit;
quit
proc template;
edit base.sql;
mvar cont;
contents_label=cont;
end;
run;
run
%let cont=Kennwerte von SL;
proc sql;
select * from kurs.iris;
quit;
quit
Eigene Styles definieren
Wenn man nicht einen vorhandenen Style
kopieren möchte, sondern einen Style komplett
neu definieren will, findet man Infos auf dem
SAS Server unter
http://www.sas.com/rnd/base/topics/
style-template/style.html
SAS-Benutzertreff am URZ
10
C. Ortseifen: ODS in SAS V8
4. August 2000
2.b RTF Ausgaben
Experimental in V8 (Produktiv in V 8.1)
RTF Destination
ods rtf file='iris.rtf';
proc print data=kurs.iris;
run;
run
ods rtf close;
Besonderheiten von RTF
Word unterstützt nur 16 Farben. ODS versucht,
die Farben darauf abzubilden.
Tabellen werden horizontal angeordnet,
vertikal wird keine Rücksicht genommen. D.h.
Hinweise von Proc Tabulate auf Continuation
werden nicht unterstützt.
Grafiktyp bei RTF ist PNG.
2.c Destination OUTPUT
Erzeugung von SAS-Tabellen aus
Prozedurausgaben
(Ersatz für Anweisung OUTPUT, Option OUT=)
ods output <Option>;
Optionen:
show
clear
close
zeigt die Einstellungen
entspricht: exclude all
schließt die Destination
SAS-Benutzertreff am URZ
11
C. Ortseifen: ODS in SAS V8
4. August 2000
Erzeugung von SAS Tabellen
ods output <Output Objekt>=SAS-Tabelle;
Das Output Objekt kann man mit ODS TRACE
ausfindig machen.
Erzeugt wird eine SAS-Tabelle.
Beispiel
ods output Moments=Momente;
proc univariate data=kurs.iris;
var sl sw;
run;
run
NOTE: The data set WORK.MOMENTE has 12
observations and 7 variables.
NOTE: There were 150 observations read
from the dataset KURS.IRIS.
Gleichnamige Output Objekte
Treten mehrere gleichnamige Outputobjekte
auf (etwa für die verschiedenen Variablen),
versucht ODS, diese in eine gemeinsame
Tabelle zu verpacken. Bei Problemen erscheint
eine Warnung.
Abhilfe schafft die MATCH_ALL Option, die
lauter verschiedene Tabellen anlegt.
SAS-Benutzertreff am URZ
12
C. Ortseifen: ODS in SAS V8
4. August 2000
ods trace output;
proc glm data=kurs.iris;
model sl=sw;
quit;
quit
ods listing close;
ods output ModelAnova(match_all=mvar)=model;
proc glm data=kurs.iris;
model sl=sw;
quit;
quit
data neu;
set &mvar;
run;
run
Hinweis zu Match_All
ods output
BasicMeasures Moments (match_all)
= Momente;
erzeugt nur für die Moments getrennte
Tabellen, nicht für BasicMeasures.
4. Literatur zu ODS
A. Christmann:Einführung in ODS im SAS-Ah
(www.urz.uni-heidelberg.de/statistik/sas-ah)
L. Bryant et.all: ODS, YES! Odious, NO!
SUGI 25, 2000, Paper 149
W.F. Heffner: ODS: The Data Step Knows
SUGI 23, 1998, Paper 21
Ch. Olinger: Twisty Little Passagers. All Alike – ODS
Template Exposed.
SUGI 24, 1999, Paper 56
Ch. Olinger: ODS for Dummies
SUGI 25, 2000, Paper 64
alle unter: www.sas.com/usergroups/sugi/proceedings/
SAS-Benutzertreff am URZ
13
Herunterladen