SAS Backstage Biljana Gigić1, Andreas Deckert2

Slides:



Advertisements
Ähnliche Präsentationen
Finding the Pattern You Need: The Design Pattern Intent Ontology
Advertisements

Peter Marwedel TU Dortmund, Informatik 12
Fakultät für informatik informatik 12 technische universität dortmund Hardware/Software Partitioning Peter Marwedel Informatik 12 TU Dortmund Germany Chapter.
Aufgabenbesprechung Programming Contest. Order 7 Bo Pat Jean Kevin Claude William Marybeth 6 Jim Ben Zoe Joey Frederick Annabelle 0 SET 1 Bo Jean Claude.
Art der Arbeit (Projekt-/Studien-/Diplomarbeit/
IS: Datenbanken, © Till Hänisch 2000 CREATE TABLE Syntax: CREATE TABLE name ( coldef [, coldef] [, tableconstraints] ) coldef := name type [länge], [[NOT]NULL],
Übung zur Vorlesung Theorien Psychometrischer Tests I
G Stunde DEUTSCH 1. Unit: Family & homeFamilie & Zuhause Objectives: Phrases about date, weather and time-telling Alphabet – pronunciation and words The.
Deutsch 1 G Stunde. Montag, der 22. Oktober 2012 Deutsch 1, G Stunde Heute ist ein F- Tag Unit: Family & homeFamilie & Zuhause Objectives: Conjugations.
You need to use your mouse to see this presentation © Heidi Behrens.
Wo ist der Hund? Do not run the slide show.
Dynamische Datentypen
10. KSFE Hamburg, Februar 2006 Tipps & Tricks - für einen leichteren Umgang mit der SAS Software AXA Service AG Komprimierung von SAS-Tabellen.
Projektmanagement Ziel und Umfang eines Softwareprojektes definieren
Was mich ursprünglich von Perl überzeugt hat. Gegeben ist eine Textdatei, deren Größe unbekannt ist. Sie ist jedoch so klein, daß sie komplett in den Speicher.
Μ Version 1.0Seite 1µVision Start Debugger Set Breakpoint µVision Debugger.
MODULA-2.
How Does Fuzzy Arithmetic Work ? © Hartwig Jeschke Institut für Mikroelektronische Schaltungen und Systeme Universität Hannover
Fachdidaktik Englisch III – Classroom Management & ICT – Institut für Erziehungswissenschaft Abteilung Lehrerinnen- und Lehrerbildung Maturitätsschulen.
2. Konferenz der SAS Benutzer in Forschung und Entwicklung KSFE 1 SAS/INSIGHT interaktive Datenanalyse Iris Krammer SAS Institute GmbH CC Datamining.
Alois Schütte Advanced System Programming 2 Interprozeßkommunikation  2.1 JVM Ablaufumgebung  2.2 Java Native Interface (JNI)  Verwendung von.
Institut für Angewandte Mikroelektronik und Datentechnik Course and contest Results of Phase Selected Topics in VLSI Design (Module 24513) ©
Einfaches Erstellen von Präsentationen aus Einzelfolien heraus.
Deutsch Eins
1 Lösung Hausaufgabe 5-1 Seite 1 #!perl -w # Datei Oeffnen und Variablen initialisieren $infile = "daten5-3.txt"; $im=$iw=$sm=$sw=0; open (IN,$infile)
1 Bauhaus-Universität Weimar ArchitekturProgrammierung Generative Entwurfsmethoden Processing Grundlagen Professur Informatik in der Architektur.
Institut für Angewandte Mikroelektronik und Datentechnik Course and contest Results of Phase 4 Nils Büscher Selected Topics in VLSI Design (Module 24513)
Deutsch Eins Guten Morgen! Heute ist Donnerstag! Das Ziel: You will ask/answer questions about yourself and others – You will conjugate.
You need to use your mouse to see this presentation © Heidi Behrens.
Arbeiten in einem agilen Team mit VS & TFS 11
Alltagsleben Treffpunkt Deutsch Sixth Edition
Institut für Angewandte Mikroelektronik und Datentechnik Results of Phase 4: Layout for ST65 technology by Christoph Niemann Selected Topics.
E STUNDE Deutsch AP. Mittwoch, der 24. April 2013 Deutsch AP (E Stunde)Heute ist ein C Tag Goal: to understand authentic written text, audio material.
E STUNDE Deutsch AP. Freitag, der 19. April 2013 Deutsch AP (E Stunde)Heute ist ein G Tag Goal: to understand authentic written text, audio material and.
Deutsch 1 G Stunde. Dienstag, der 30. Oktober 2012 Deutsch 1, G Stunde Heute ist ein E- Tag Unit: Family & home Familie & Zuhause Question: Who / How.
E STUNDE Deutsch AP. Donnerstag, der 9. Mai 2013 Deutsch AP (E Stunde)Heute ist ein G Tag Goal: to understand authentic written text, audio material and.
C Tutorium – Debugging & Tracing – Knut Stolze. 2 Agenda Debugging & Debugger Tracing.
E STUNDE Deutsch AP. Dienstag, der 16. April 2013 Deutsch AP (E Stunde)Heute ist ein D Tag Goal: to understand authentic written text, audio material.
Deutsch Zwei Guten Tag! O Heute ist Montag! O Das Ziel: You will: report past events using the conversational past tense O talk.
E STUNDE Deutsch AP. Dienstag, der 23. April 2013 Deutsch AP (E Stunde)Heute ist ein B Tag Goal: to understand authentic written text, audio material.
E STUNDE Deutsch AP. Donnerstag, der 25. April 2013 Deutsch AP (E Stunde)Heute ist ein D Tag Goal: to understand authentic written text, audio material.
Deutsch 1 G Stunde. Mittwoch, der 21. November 2012 Deutsch 1, G Stunde Heute ist ein F - Tag Unit: Family & home Familie & Zuhause Goal: to talk about,
Phonics Lessons Grade 1 Adapted from: Phonics Lessons by Gay Su Pinnell & Irene C. Fountas Grade 1, page 431 caatt If you knowIt helps you know.
Numbers 1 and Time LO: Count to 12 and tell the time SC I can count to 12 in German I can count back and forwards to 12 with.
E STUNDE Deutsch AP. Donnerstag, der 11. April 2013 Deutsch AP (E Stunde)Heute ist ein A Tag Goal: to understand authentic written text, audio material.
Our next PLD session is focused on turning theory into practice by learning methodologies that will scaffold learning for second language acquisition.
DB2 UDB im z/VSE Heinz Peter Maassen – Lattwein GmbH COURSE Tagung Bad Hersfeld 2008.
Technische Universität München Alexander Neidhardt Forschungseinrichtung Satellitengeodäsie 1 Concepts for remote control of VLBI-telescopes: on the way.
Reorganisation und Administration großer SAP-DB Manfred Riemer SAP AG (z.B. MCOD-Systeme)
Center for Biotechnology Bielefeld Bioinformatics Service Netzwerk - Programmierung Kommunikation von Prozessen Signale und Pipes Alexander Sczyrba
Volume 1, Chapter 3.
© Goethe-Institut London 2017
Quiz: word order Word order rules with conjunctions
The IT–Information System
IOStreamLibrary.
Volume 1, Chapter 12.
DAS HÜPFSPIEL.
Lernziele: Wir üben das Perfekt. Wir spielen Karten auf Deutsch.
Entwicklungen, die „wir“ erreichen wollen
Kapitel 3 Lektion A Wiederholung.
Goldlöckchen und die drei Bären
Persönliche Informationen
How do you feel about your ability to read German? ©Clarcq 2015
MONTESSORI- METHOD FOR DOGS

Raphael Fischer Informatik II - Übung 05 Raphael Fischer
CSL211 Computer Architecture
Make-up Work from Montag, 30.1
 Präsentation transkript:

SAS Backstage Biljana Gigić1, Andreas Deckert2 1 Deutsches Krebsforschungszentrum / Nationales Centrum für Tumorerkrankungen (Heidelberg) 2 Institute of Public Health / Institut für Medizinische Biometrie und Informatik (Heidelberg) 16. Konferenz der SAS-Anwender in Forschung und Entwicklung (KSFE) an der Technischen Universität Dresden, Fakultät Wirtschaftswissenschaften

- 2 - Note: Invalid data... NOTE: Invalid data for Tore in line 1 19-28. RULE: ----+----1----+----2----+----3----+----4----+----5---- 1 1,Manuel,Neuer,25,keine Tore,Tor 32 Vorname=Manuel Nachname=Neuer Position=Tor Nummer=1 Spiele=25 Tore=. _ERROR_=1 _N_=1 NOTE: Invalid data for Tore in line 5 19-28. 5 5,Mats,Hummels,12,keine Tore,Abwehr 35 Vorname=Mats Nachname=Hummels Position=Abwehr Nummer=5 Spiele=12 Tore=. _ERROR_=1 _N_=5

Überblick Verarbeitungsphasen eines SAS DATA Steps LENGTH Anweisung - 3 - Überblick Verarbeitungsphasen eines SAS DATA Steps Kompilierungsphase Input Buffer Program Data Vector Beschreibender Teil Ausführungsphase LENGTH Anweisung PUTLOG Anweisung DEBUG Option MERGE Verarbeitung

Einlesen von Rohdaten - 4 - EM2012.csv data work.EM2012; 1,Manuel,Neuer,25,,Tor 2,Marcel,Schmelzer,12,,Abwehr 3,Benedikt,Höwedes,6,,Abwehr 4,Dennis,Aogo,9,,Abwehr 5,Mats,Hummels,12,,Abwehr 6,Sami,Khedira,24,1,Mittelfeld 7,Simon,Rolfes,26,2,Mittelfeld 8,Mezut,Ösil,30,8,Mittelfeld 9,Andre,Schürrle,11,5,Mittelfeld 11,Miroslav,Klose,113,63,Angriff 12,Tim,Wiese,5,,Tor 13,Thomas,Müller,25,10,Mittelfeld 14,Holger,Badstuber,18,1,Abwehr 15,Christian,Träsch,10,,Abwehr 16,Phillip,Lahm,85,4,Abwehr 17,Sven,Bender,3,,Mittelfeld 18,Toni,Kroos,24,2,Mittelfeld 19,Cacau,,21,5,Angriff 20,Jerome,Boateng,19,,Abwehr 21,Marco,Reus,3,,Mittelfeld 23,Mario,Gomez,50,21,Angriff 24,Lars,Bender,3,,Mittelfeld ,Ron-Robert,Zieler,1,0,Tor ,Arne,Friedrich,82,1,Abwehr ,Per,Mertesacker,79,1,Abwehr ,Mario,Götze,,12,2,Mittelfeld ,Ilkay,Gündogan,1,0,Mittelfeld ,Lewis,Holtby,2,0,Mittelfeld ,Lukas,Podolski,95,43,Mittelfeld ,Sebastian,Rudy,0,0,Mittelfeld ,Bastian,Schweinsteiger,90,23,Mittelfeld data work.EM2012; infile 'x:\EM2012.csv' dsd; input Nummer Vorname $ Nachname $ Spiele Tore Position $; run; proc print data=work.EM2012 (obs=6) noobs; title 'Nationalmannschaft 2012'; 1 Listenorientiertes Einlesen von Rohdaten: SAS Help Inhalt  SAS Products  Base SAS  Step-by-Step Programming with Base SAS Software  Getting your Data into Shape  Starting with Raw Data: The Basics

Verarbeitungsphasen des SAS DATA Steps Flow of Action in the Data Step - 5 - compiles SAS statements (includes syntax checking) COMPILATION PHASE Verarbeitungsphasen des SAS DATA Steps  creates an input buffer a program data vector descriptor information   begins with a DATA statement (counts iterations) EXECUTION PHASE  sets variable values to missing in the program data vector  data-reading statement: is there a record to read? closes data set; Goes on the next DATA or PROC step   NO  YES  reads an input record  executes additional executable statements  writes an observation to the SAS data set  returns to the beginning of the DATA step Abbildung 1: SAS Datastep Verarbeitung [1]

Kompilierung - 6 - Input Buffer PDV data work.EM2012; infile 'x:\EM2012.csv' dsd; input Nummer Vorname $ Nachname $ Spiele Tore Position $; run; proc print data=work.EM2012 (obs=6) noobs; title 'Nationalmannschaft 2012'; Input Buffer 1 2 3 4 5 6 7 8 9 PDV Nummer N 8

Kompilierung - 6 - Input Buffer PDV data work.EM2012; infile 'x:\EM2012.csv' dsd; input Nummer Vorname $ Nachname $ Spiele Tore Position $; run; proc print data=work.EM2012 (obs=6) noobs; title 'Nationalmannschaft 2012'; Input Buffer 1 2 3 4 5 6 7 8 9 PDV Nummer N 8 Vorname $ 8

Kompilierung - 6 - Input Buffer PDV data work.EM2012; infile 'x:\EM2012.csv' dsd; input Nummer Vorname $ Nachname $ Spiele Tore Position $; run; proc print data=work.EM2012 (obs=6) noobs; title 'Nationalmannschaft 2012'; Input Buffer 1 2 3 4 5 6 7 8 9 PDV Nummer N 8 Vorname $ 8 Nachname $ 8 Spiele N 8 Tore N 8 Position $ 8 _N_ N 8 _ERROR_ N 8 1

Kompilierung - 6 - Beschreibender Teil work.EM2012 data work.EM2012; infile 'x:\EM2012.csv' dsd; input Nummer Vorname $ Nachname $ Spiele Tore Position $; run; proc print data=work.EM2012 (obs=6) noobs; title 'Nationalmannschaft 2012'; Beschreibender Teil work.EM2012 Nummer N 8 Vorname $ 8 Nachname $ 8 Spiele N 8 Tore N 8 Position $ 8

Verarbeitungsphasen des SAS DATA Steps Flow of Action in the Data Step - 7 - compiles SAS statements (includes syntax checking) COMPILATION PHASE Verarbeitungsphasen des SAS DATA Steps  creates an input buffer a program data vector descriptor information   begins with a DATA statement (counts iterations) EXECUTION PHASE  sets variable values to missing in the program data vector  data-reading statement: is there a record to read? closes data set; Goes on the next DATA or PROC step   NO  YES Input Buffer 1 2  1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 1 , M a n u e l , N e u e r , 2 5 , , T o r reads an input record PDV  Nummer N 8 Vorname $ 8 Nachname $ 8 Spiele N 8 Tore N 8 Position $ 8 _N_ N 8 _ERROR_ N 8 executes additional executable statements 1 Manuel Neuer 25 . Tor 1  writes an observation to the SAS data set work.EM2012 Nummer N 8 Vorname $ 8 Nachname $ 8 Spiele N 8 Tore N 8 Position $ 8  returns to the beginning of the DATA step 1 Manuel Neuer 25 . 25

Ausführung Initialisierung PDV - 8 - Input Buffer PDV 1 2 3 1 2 3 4 5 1,Manuel,Neuer,25,,Tor 2,Marcel,Schmelzer,12,,Abwehr 3,Benedikt,Höwedes,6,,Abwehr 4,Dennis,Aogo,9,,Abwehr 5,Mats,Hummels,12,,Abwehr 6,Sami,Khedira,24,1,Mittelfeld ... data work.EM2012; infile 'x:\EM2012.csv' dsd; input Nummer Vorname $ Nachname $ Spiele Tore Position $; run; Initialisierung PDV Input Buffer 1 2 3 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 PDV Nummer N 8 Vorname $ 8 Nachname $ 8 Spiele N 8 Tore N 8 Position $ 8 _N_ N 8 _ERROR_ N 8 . . . 1

Ausführung - 8 - Input Buffer PDV 1 2 3 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 1,Manuel,Neuer,25,,Tor 2,Marcel,Schmelzer,12,,Abwehr 3,Benedikt,Höwedes,6,,Abwehr 4,Dennis,Aogo,9,,Abwehr 5,Mats,Hummels,12,,Abwehr 6,Sami,Khedira,24,1,Mittelfeld ... data work.EM2012; infile 'x:\EM2012.csv' dsd; input Nummer Vorname $ Nachname $ Spiele Tore Position $; run; Input Buffer 1 2 3 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 PDV Nummer N 8 Vorname $ 8 Nachname $ 8 Spiele N 8 Tore N 8 Position $ 8 _N_ N 8 _ERROR_ N 8 . . . 1

Ausführung - 10 - Input Buffer PDV 1 , M a n u e l , N e u e r , 2 5 , 1,Manuel,Neuer,25,,Tor 2,Marcel,Schmelzer,12,,Abwehr 3,Benedikt,Höwedes,6,,Abwehr 4,Dennis,Aogo,9,,Abwehr 5,Mats,Hummels,12,,Abwehr 6,Sami,Khedira,24,1,Mittelfeld ... data work.EM2012; infile 'x:\EM2012.csv' dsd; input Nummer Vorname $ Nachname $ Spiele Tore Position $; run; Input Buffer 1 2 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 1 , M a n u e l , N e u e r , 2 5 , , T o r PDV Nummer N 8 Vorname $ 8 Nachname $ 8 Spiele N 8 Tore N 8 Position $ 8 _N_ N 8 _ERROR_ N 8 . . . 1

Ausführung - 10 - Input Buffer PDV 1 , M a n u e l , N e u e r , 2 5 , 1,Manuel,Neuer,25,,Tor 2,Marcel,Schmelzer,12,,Abwehr 3,Benedikt,Höwedes,6,,Abwehr 4,Dennis,Aogo,9,,Abwehr 5,Mats,Hummels,12,,Abwehr 6,Sami,Khedira,24,1,Mittelfeld ... data work.EM2012; infile 'x:\EM2012.csv' dsd; input Nummer Vorname $ Nachname $ Spiele Tore Position $; run; Input Buffer 1 2 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 1 , M a n u e l , N e u e r , 2 5 , , T o r PDV Nummer N 8 Vorname $ 8 Nachname $ 8 Spiele N 8 Tore N 8 Position $ 8 _N_ N 8 _ERROR_ N 8 1 Manuel Neuer 25 . Tor 1

Ausführung Impliziter OUTPUT; Impliziter RETURN; - 10 - Input Buffer 1,Manuel,Neuer,25,,Tor 2,Marcel,Schmelzer,12,,Abwehr 3,Benedikt,Höwedes,6,,Abwehr 4,Dennis,Aogo,9,,Abwehr 5,Mats,Hummels,12,,Abwehr 6,Sami,Khedira,24,1,Mittelfeld ... data work.EM2012; infile 'x:\EM2012.csv' dsd; input Nummer Vorname $ Nachname $ Spiele Tore Position $; run; Impliziter OUTPUT; Impliziter RETURN; Input Buffer 1 2 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 1 , M a n u e l , N e u e r , 2 5 , , T o r PDV Nummer N 8 Vorname $ 8 Nachname $ 8 Spiele N 8 Tore N 8 Position $ 8 _N_ N 8 _ERROR_ N 8 1 Manuel Neuer 25 . Tor 1

- 11 - Ausführung Die erste Beobachtung wurde vom PDV in die neue SAS Datei transferiert. work.EM2012 Nummer N 8 Vorname $ 8 Nachname Spiele N 8 Tore N 8 Position $ 8 1 Manuel Neuer 25 . Tor

Reinitialisierung PDV - 12 - Ausführung 1,Manuel,Neuer,25,,Tor 2,Marcel,Schmelzer,12,,Abwehr 3,Benedikt,Höwedes,6,,Abwehr 4,Dennis,Aogo,9,,Abwehr 5,Mats,Hummels,12,,Abwehr 6,Sami,Khedira,24,1,Mittelfeld ... data work.EM2012; infile 'x:\EM2012.csv' dsd; input Nummer Vorname $ Nachname $ Spiele Tore Position $; run; Reinitialisierung PDV Input Buffer 1 2 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 1 , M a n u e l , N e u e r , 2 5 , , T o r PDV Nummer N 8 Vorname $ 8 Nachname $ 8 Spiele N 8 Tore N 8 Position $ 8 _N_ N 8 _ERROR_ N 8 . . . 2

Ausführung - 12 - Input Buffer PDV 1 , M a n u e l , N e u e r , 2 5 , 1,Manuel,Neuer,25,,Tor 2,Marcel,Schmelzer,12,,Abwehr 3,Benedikt,Höwedes,6,,Abwehr 4,Dennis,Aogo,9,,Abwehr 5,Mats,Hummels,12,,Abwehr 6,Sami,Khedira,24,1,Mittelfeld ... data work.EM2012; infile 'x:\EM2012.csv' dsd; input Nummer Vorname $ Nachname $ Spiele Tore Position $; run; Input Buffer 1 2 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 1 , M a n u e l , N e u e r , 2 5 , , T o r PDV Nummer N 8 Vorname $ 8 Nachname $ 8 Spiele N 8 Tore N 8 Position $ 8 _N_ N 8 _ERROR_ N 8 . . . 2

Ausführung - 13 - Input Buffer PDV 2 , M a r c e l , S c h m e l z e r 1,Manuel,Neuer,25,,Tor 2,Marcel,Schmelzer,12,,Abwehr 3,Benedikt,Höwedes,6,,Abwehr 4,Dennis,Aogo,9,,Abwehr 5,Mats,Hummels,12,,Abwehr 6,Sami,Khedira,24,1,Mittelfeld ... data work.EM2012; infile 'x:\EM2012.csv' dsd; input Nummer Vorname $ Nachname $ Spiele Tore Position $; run; Input Buffer 1 2 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 2 , M a r c e l , S c h m e l z e r , 1 2 , PDV Nummer N 8 Vorname $ 8 Nachname $ 8 Spiele N 8 Tore N 8 Position $ 8 _N_ N 8 _ERROR_ N 8 . . . 2

Ausführung - 14 - Input Buffer PDV 2 , M a r c e l , S c h m e l z e r 1,Manuel,Neuer,25,,Tor 2,Marcel,Schmelzer,12,,Abwehr 3,Benedikt,Höwedes,6,,Abwehr 4,Dennis,Aogo,9,,Abwehr 5,Mats,Hummels,12,,Abwehr 6,Sami,Khedira,24,1,Mittelfeld ... data work.EM2012; infile 'x:\EM2012.csv' dsd; input Nummer Vorname $ Nachname $ Spiele Tore Position $; run; Input Buffer 1 2 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 2 , M a r c e l , S c h m e l z e r , 1 2 , PDV Nummer N 8 Vorname $ 8 Nachname $ 8 Spiele N 8 Tore N 8 Position $ 8 _N_ N 8 _ERROR_ N 8 2 Marcel Schmelze 12 . Abwehr 2

Ausführung Impliziter OUTPUT; Impliziter RETURN; - 14 - Input Buffer 1,Manuel,Neuer,25,,Tor 2,Marcel,Schmelzer,12,,Abwehr 3,Benedikt,Höwedes,6,,Abwehr 4,Dennis,Aogo,9,,Abwehr 5,Mats,Hummels,12,,Abwehr 6,Sami,Khedira,24,1,Mittelfeld ... data work.EM2012; infile 'x:\EM2012.csv' dsd; input Nummer Vorname $ Nachname $ Spiele Tore Position $; run; Impliziter OUTPUT; Impliziter RETURN; Input Buffer 1 2 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 2 , M a r c e l , S c h m e l z e r , 1 2 , PDV Nummer N 8 Vorname $ 8 Nachname $ 8 Spiele N 8 Tore N 8 Position $ 8 _N_ N 8 _ERROR_ N 8 2 Marcel Schmelze 12 . Abwehr 2

- 15 - Ausführung Die zweite Beobachtung wurde vom PDV in die neue SAS Datei transferiert. work.EM2012 Nummer N 8 Vorname $ 8 Nachname Spiele N 8 Tore N 8 Position $ 8 1 Manuel Neuer 25 . Tor 2 Marcel Schmelze 12 . Abwehr

Wiederholung bis zum Ende der Rohdaten-Datei - 16 - Ausführung 1,Manuel,Neuer,25,,Tor 2,Marcel,Schmelzer,12,,Abwehr 3,Benedikt,Höwedes,6,,Abwehr 4,Dennis,Aogo,9,,Abwehr 5,Mats,Hummels,12,,Abwehr 6,Sami,Khedira,24,1,Mittelfeld ... data work.EM2012; infile 'x:\EM2012.csv' dsd; input Nummer Vorname $ Nachname $ Spiele Tore Position $; run; Wiederholung bis zum Ende der Rohdaten-Datei Input Buffer 1 2 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 2 , M a r c e l , S c h m e l z e r , 1 2 , PDV Nummer N 8 Vorname $ 8 Nachname $ 8 Spiele N 8 Tore N 8 Position $ 8 _N_ N 8 _ERROR_ N 8 2 Marcel Schmelze 12 . Abwehr 2

Verarbeitungsphasen des SAS DATA Steps Flow of Action in the Data Step - 17 - compiles SAS statements (includes syntax checking) COMPILATION PHASE Verarbeitungsphasen des SAS DATA Steps  creates an input buffer a program data vector descriptor information  1,Manuel,Neuer,25,,Tor 2,Marcel,Schmelzer,12,,Abwehr 3,Benedikt,Höwedes,6,,Abwehr 4,Dennis,Aogo,9,,Abwehr 5,Mats,Hummels,12,,Abwehr 6,Sami,Khedira,24,1,Mittelfeld ...  begins with a DATA statement (counts iterations) EXECUTION PHASE  sets variable values to missing in the program data vector  data-reading statement: is there a record to read? data work.EM2012; infile 'x:\EM2012.csv' dsd; input Nummer Vorname $ Nachname $ Spiele Tore Position $; run; proc print data=work.EM2012 (obs=6) noobs; title 'Nationalmannschaft 2012'; closes data set; Goes on the next DATA or PROC step   NO  YES  reads an input record  executes additional executable statements  writes an observation to the SAS data set  returns to the beginning of the DATA step

LENGTH Statement data work.EM2012; infile 'x:\EM2012.csv' dsd; - 18 - LENGTH Statement data work.EM2012; infile 'x:\EM2012.csv' dsd; length Vorname $ 18 Nachname $ 12 Position $ 10; input Nummer Vorname $ Nachname $ Spiele Tore Position $; run; proc print data=work.EM2012 (obs=6) noobs; title 'Nationalmannschaft 2012'; work.EM2012 (mit LENGTH Anweisung) work.EM2012 (ohne LENGTH Anweisung) Beschreibender Teil work.EM2012 Vorname $ 18 Nachname $ 12 Position $ 10 Nummer N 8 Spiele N 8 Tore N 8

- 19 - PUTLOG Statement ...ermöglicht unter anderem das Schreiben des aktuellen oder eines bestimmten Inhaltes des Program Data Vectors im Log. data work.EM2012; infile 'x:\EM2012.csv' dsd; length Vorname $ 18 Nachname $ 12 Position $ 10; input Nummer Vorname $ Nachname $ Spiele Tore Position $; putlog _ALL_; run; Ein Auszug aus dem SAS Log: Vorname=Manuel Nachname=Neuer Position=Tor Nummer=1 Spiele=25 Tore=. _ERROR_=0 _N_=1 Vorname=Marcel Nachname=Schmelzer Position=Abwehr Nummer=2 Spiele=12 Tore=. _ERROR_=0 _N_=2 Vorname=Benedikt Nachname=Höwedes Position=Abwehr Nummer=3 Spiele=6 Tore=. _ERROR_=0 _N_=3 Vorname=Dennis Nachname=Aogo Position=Abwehr Nummer=4 Spiele=9 Tore=. _ERROR_=0 _N_=4 Vorname=Mats Nachname=Hummels Position=Abwehr Nummer=5 Spiele=12 Tore=. _ERROR_=0 _N_=5 Vorname=Sami Nachname=Khedira Position=Mittelfeld Nummer=6 Spiele=24 Tore=1 _ERROR_=0 _N_=6

- 20 - Note: Invalid data... 1,Manuel,Neuer,25,keine Tore,Tor 2,Marcel,Schmelzer,12,,Abwehr 3,Benedikt,Höwedes,6,,Abwehr 4,Dennis,Aogo,9,,Abwehr 5,Mats,Hummels,12,keine Tore,Abwehr 6,Sami,Khedira,24,1,Mittelfeld ... data work.EM2012; infile 'x:\EM2012.csv' dsd; input Nummer Vorname $ Nachname $ Spiele Tore Position $; run; proc print data=work.EM2012 (obs=6) noobs; title 'Nationalmannschaft 2012'; NOTE: Invalid data for Tore in line 1 19-28. RULE: ----+----1----+----2----+----3----+----4----+----5---- 1 1,Manuel,Neuer,25,keine Tore,Tor 32 Vorname=Manuel Nachname=Neuer Position=Tor Nummer=1 Spiele=25 Tore=. _ERROR_=1 _N_=1 NOTE: Invalid data for Tore in line 5 19-28. 5 5,Mats,Hummels,12,keine Tore,Abwehr 35 Vorname=Mats Nachname=Hummels Position=Abwehr Nummer=5 Spiele=12 Tore=. _ERROR_=1 _N_=5

DEBUG Option Interaktive Schnittstelle zum DATA Step - 21 - DEBUG Option Interaktive Schnittstelle zum DATA Step Kann nicht mit einem PROC Step verwendet werden Ermitteln von logischen Fehlern Schrittweise Ausführung von SAS DATA Steps Prüfen des Wertes einer oder mehrerer Variablen im PDV data work.EM2012 / DEBUG; infile 'x:\EM2012.csv' dsd; length Vorname $ 18 Nachname $ 12 Position $ 10; input Nummer Vorname $ Nachname $ Spiele Tore Position $; run; 1 Data Step Debugger-Dokumentation: SAS Help Inhalt  SAS Products  Base SAS  Base SAS 9.3 Utilities: Reference  DATA Step Debugger

DEBUG Befehle STEP (Schrittweise Ausführung von SAS DATA Steps) - 22 - DEBUG Befehle STEP (Schrittweise Ausführung von SAS DATA Steps) EXAMINE (Prüfen des Wertes einer oder mehrerer Variablen) WATCH (Änderung der Werte einer oder mehrerer Variablen beobachten) DESCRIBE (Metadaten ausgeben) QUIT (Debugger-Session beenden) ...

- 23 -

- 24 -

BY-Anweisung erzeugt zwei temporäre Variablen im PDV. - 25 - MERGE Backstage Verknüpfung von work.EM08 und work.EM12 über die Variable Nachname zu work.EM. Beide SAS Dateien sind nach Nachname sortiert. work.EM08 work.EM12 Nachname Position Spiele Klose Angriff 81 Kuranyi 50 Nachname Spiele Klose 113 Kroos 24 data work.EM; merge work.EM08 work.EM12; by Nachname; run; BY-Anweisung erzeugt zwei temporäre Variablen im PDV. _N_ _ERROR_ Nachname Position Spiele FIRST. Nachname LAST. Nachname 1

MERGE Backstage Initialisierung PDV - 26 - Nachname Position Spiele work.EM08 work.EM12 Nachname Position Spiele Klose Angriff 81 Kuranyi 50 Nachname Spiele Klose 113 Kroos 24 data work.EM; merge work.EM08 work.EM12; by Nachname; run; Initialisierung PDV _N_ _ERROR_ Nachname Position Spiele FIRST. Nachname LAST. Nachname 1 . . .

MERGE Backstage JA - 27 - Nachname Position Spiele Klose Angriff 81 work.EM08 work.EM12 Nachname Position Spiele Klose Angriff 81 Kuranyi 50 Nachname Spiele Klose 113 Kroos 24 data work.EM; merge work.EM08 work.EM12; by Nachname; run; Stimmen die Werte der BY-Variablen überein? JA _N_ _ERROR_ Nachname Position Spiele FIRST. Nachname LAST. Nachname 1 . 1 1

MERGE Backstage - 28 - Nachname Position Spiele Klose Angriff 81 work.EM08 work.EM12 Nachname Position Spiele Klose Angriff 81 Kuranyi 50 Nachname Spiele Klose 113 Kroos 24 data work.EM; merge work.EM08 work.EM12; by Nachname; run; Einlesen einer Beobachtung aus work.EM08 und work.EM12 _N_ _ERROR_ Nachname Position Spiele FIRST. Nachname LAST. Nachname 1 Klose Angriff 113 1 1

MERGE Backstage Impliziter OUTPUT; Impliziter RETURN; - 29 - Nachname work.EM08 work.EM12 Nachname Position Spiele Klose Angriff 81 Kuranyi 50 Nachname Spiele Klose 113 Kroos 24 data work.EM; merge work.EM08 work.EM12; by Nachname; run; Impliziter OUTPUT; Impliziter RETURN; _N_ _ERROR_ Nachname Position Spiele FIRST. Nachname LAST. Nachname 1 Klose Angriff 113 1 1

MERGE Backstage NEIN - 30 - Nachname Position Spiele Klose Angriff 81 work.EM08 work.EM12 Nachname Position Spiele Klose Angriff 81 Kuranyi 50 Nachname Spiele Klose 113 Kroos 24 data work.EM; merge work.EM08 work.EM12; by Nachname; run; Stimmen die Werte der BY-Variablen überein? NEIN _N_ _ERROR_ Nachname Position Spiele FIRST. Nachname LAST. Nachname 2 Klose Angriff 113 1 1

MERGE Backstage NEIN - 31 - Nachname Position Spiele Klose Angriff 81 work.EM08 work.EM12 Nachname Position Spiele Klose Angriff 81 Kuranyi 50 Nachname Spiele Klose 113 Kroos 24 data work.EM; merge work.EM08 work.EM12; by Nachname; run; Ist einer der Nachnamen gleich dem Nachnamen im PDV? NEIN _N_ _ERROR_ Nachname Position Spiele FIRST. Nachname LAST. Nachname 2 Klose Angriff 113 1 1

Reinitialisierung PDV - 32 - MERGE Backstage work.EM08 work.EM12 Nachname Position Spiele Klose Angriff 81 Kuranyi 50 Nachname Spiele Klose 113 Kroos 24 data work.EM; merge work.EM08 work.EM12; by Nachname; run; Reinitialisierung PDV _N_ _ERROR_ Nachname Position Spiele FIRST. Nachname LAST. Nachname 2 . . .

MERGE Backstage - 33 - Nachname Position Spiele Klose Angriff 81 work.EM08 work.EM12 Nachname Position Spiele Klose Angriff 81 Kuranyi 50 Nachname Spiele Klose 113 Kroos 24 data work.EM; merge work.EM08 work.EM12; by Nachname; run; Beobachtung aus work.EM12 einlesen _N_ _ERROR_ Nachname Position Spiele FIRST. Nachname LAST. Nachname 2 Kroos 24 1 1

MERGE Backstage Impliziter OUTPUT; Impliziter RETURN; - 34 - Nachname work.EM08 work.EM12 Nachname Position Spiele Klose Angriff 81 Kuranyi 50 Nachname Spiele Klose 113 Kroos 24 data work.EM; merge work.EM08 work.EM12; by Nachname; run; Impliziter OUTPUT; Impliziter RETURN; _N_ _ERROR_ Nachname Position Spiele FIRST. Nachname LAST. Nachname 2 Kroos 24 1 1

MERGE Backstage EOF NEIN - 35 - Nachname Position Spiele Klose Angriff work.EM08 work.EM12 Nachname Position Spiele Klose Angriff 81 Kuranyi 50 Nachname Spiele Klose 113 Kroos 24 EOF data work.EM; merge work.EM08 work.EM12; by Nachname; run; Ist der Nachname gleich dem Nachnamen im PDV? NEIN _N_ _ERROR_ Nachname Position Spiele FIRST. Nachname LAST. Nachname 3 Kroos 24 1 1

Reinitialisierung PDV - 36 - MERGE Backstage work.EM08 work.EM12 Nachname Position Spiele Klose Angriff 81 Kuranyi 50 Nachname Spiele Klose 113 Kroos 24 EOF data work.EM; merge work.EM08 work.EM12; by Nachname; run; Reinitialisierung PDV _N_ _ERROR_ Nachname Position Spiele FIRST. Nachname LAST. Nachname 3 . . .

MERGE Backstage EOF - 37 - Nachname Position Spiele Klose Angriff 81 work.EM08 work.EM12 Nachname Position Spiele Klose Angriff 81 Kuranyi 50 Nachname Spiele Klose 113 Kroos 24 EOF data work.EM; merge work.EM08 work.EM12; by Nachname; run; Beobachtung aus work.EM08 einlesen _N_ _ERROR_ Nachname Position Spiele FIRST. Nachname LAST. Nachname 3 Kuranyi Angriff 50 1 1

MERGE Backstage EOF Impliziter OUTPUT; Impliziter RETURN; - 38 - work.EM08 work.EM12 Nachname Position Spiele Klose Angriff 81 Kuranyi 50 Nachname Spiele Klose 113 Kroos 24 EOF data work.EM; merge work.EM08 work.EM12; by Nachname; run; Impliziter OUTPUT; Impliziter RETURN; _N_ _ERROR_ Nachname Position Spiele FIRST. Nachname LAST. Nachname 3 Kuranyi Angriff 50 1 1

MERGE Backstage EOF EOF - 39 - Nachname Position Spiele Klose Angriff work.EM08 work.EM12 Nachname Position Spiele Klose Angriff 81 Kuranyi 50 Nachname Spiele Klose 113 Kroos 24 EOF EOF data work.EM; merge work.EM08 work.EM12; by Nachname; run; work.EM Nachname Position Spiele Klose Angriff 113 Kroos 24 Kuranyi 50 _N_ _ERROR_ Nachname Position Spiele FIRST. Nachname LAST. Nachname 3 Kuranyi Angriff 50 1 1

- 40 - Literatur [1] http://www.dfb.de/index.php?id=128 (letzer Zugriff: 21. Februar 2012) [2] SAS Help [3] SAS® Certification Prep Guide: Base Programming for SAS®9