Programmierung. C. Ortseifen 1. Literatur. Das Datenanalysesystem SAS. Kursaufbau. Weitere Literatur

Ähnliche Dokumente
Das Datenanalysesystem SAS

C. Ortseifen 1. Kursaufbau. Das Datenanalysesystem SAS. Literatur. Weitere Literatur

Das Datenanalysesystem SAS

Unterlagen zu: Das Datenanalysesystem SAS SS 2000

7. Globale Einstellungen

Unterlagen zu: Das Datenanalysesystem SAS SS 2000

SAS-Online Dokumentation: zu finden über Internetsuche nach sas online documentation

Dateneingabe und Transformation Übersicht

Unterlagen zu: Das Datenanalysesystem SAS SS 2000

Von SAS nach SPSS und umgekehrt

Einführung in SPSS Wintersemester 2000/2001

Probleme beim Projekt-Speichern

3. Bestehende Dateien

1 Univariate Statistiken

PROC NPAR1WAY. zum Durchführen des U-Tests für zwei unverbundene Stichproben (für quantitative nicht-normalverteilte Merkmale)

Häufigkeiten, Mittelwerte Korrelationen u.a.m.

Einführung in SPSS Wintersemester 2000/2001

PROC MEANS. zum Berechnen statistischer Maßzahlen (für quantitative Merkmale)

SAS Format: Fallen und Tricks

KSFE 4. Konferenz der SAS -Anwender

THEMA: SAS CERTIFIED BASE PROGRAMMER FOR SAS 9 DIE VORBEREITUNG BRINGT S! KARIN GROSS

4. Datumsvariablen u.a.m

Einführung in SPSS Wintersemester 2000/2001

Abfragen (Queries, Subqueries)

SAS-Umgebung. Dr. Carina Ortseifen Universitätsrechenzentrum. 17. KSFE 2013 Ulm. 17. KSFE 2013 Ulm: Carina Ortseifen Der Datenschritt 1

6.4 Der Kruskal-Wallis Test

Übersicht der wichtigsten MySQL-Befehle

Mehrere Datensätze zu einem Datensatz zusammenführen

Algorithmen und ihre Programmierung

SAS-Kurs: SS 09. Helmut Küchenhoff, Cornelia Oberhauser, Monia Mahling, Vroni Fensterer, Sara Wadle. 8. Juni 2009

SAS-Kurs: Sommer 2010

Effektives Arbeiten mit SAS

SAS-Benutzertreff am URZ

Übereinstimmungsmaße in der PROC FREQ Option AGREE bei nichtsymmetrischen Tabellen eine Macro-Lösung

ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski.

SAS-Tipp #6: Schneller als Proc Summary

Makrofunktion zur Übernahme von Abfragekriterien aus externen Quellen, z.b. einer Excel Datei, in SAS Code (PROC SQL)

MySQL-Befehle. In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben.

7 Vergleich mehrerer verbundener Stichproben 7.1 Friedman Rang-Varianzanalyse

Deskriptive Statistiken

Übersicht Shell-Scripten

Wie kann ich die Ausgabe als Excel speichern?

Statistik IV Übung mit Stata 10. Statistik IV. 3. Datenaufbereitung II und erste Auswertungen. Göttingen 27. Mai Dozent: Jürgen Leibold

Einfaktorielle Varianzanalysen

Übung zur Vorlesung: Mikroökonometrie. Mi. 9:45-11:15 Uhr PC-Pool und Barbara Hanel

Import von Text-Dateien. Einzelne Wörter einlesen.

Statistik mit MAXQDA Stats

Basis-Kurs Statistik und SPSS für Mediziner Lösungen. SPSS-Übung Dateneingabe und -aufbereitung

Jede Kombination von 7 Spalten erzeugen

Einführung LänderInformationsSystem für Anlagen LIS-A Version Auswertungen

Sozialwissenschaftliche Fakultät der Universität Göttingen. Sommersemester 2009, Statistik mit SPSS

Spalten aufsummieren?!

12 BG EDV Access / Inf-SQL1 Theodor-Heuss-Schule Wetzlar

32 Verschiedenes Datendatei-Informationen, Codebuch. Fortsetzung der Seiten in der 8. Auflage

Möglichkeiten der SAS Software für die Analyse großer Datentabellen

Wie erreiche ich was?

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

1.1 Datenbanken Tabellen SQL und die Befehlseingabe Beispieldatenbank 36

Einführung in SPSS. Sitzung 2: Datenbereinigung und Datenmanagement. Knut Wenzig. 4. Dezember 2006

SQL Data Manipulation Language (DML) und Query Language (QL)

Umbenennung von Spaltennamen über Schleife(n)

Einführung in SPSS für Windows

Daten aus SPSS-18 Proc Format...

Copyr i g ht 2014, SAS Ins titut e Inc. All rights res er ve d. What s New im SAS Enterprise Guide 7.

Sozialwissenschaftliche Fakultät der Universität Göttingen. Sommersemester 2009, Statistik mit SPSS

Kurzanleitung für SPSS Statistics 22

SAS-Treff am URZ 14. März 2003

SURFJGGDWD IODHFKH SORW\[ ]FWRS \HOORZFWH[W EODFN

Schritt für Schritt-Einführung in die Prozedur Tabulate

Oracle 10g Einführung

Inhaltsverzeichnis HÄUFIGKEITSTABELLEN... 1

SQL. SQL SELECT Anweisung SQL-SELECT SQL-SELECT

Xpert - Europäischer ComputerPass. Peter Wies. Tabellenkalkulation (mit Excel 2010) 1. Ausgabe, 5. Aktualisierung, Juli 2013

Hallo Jessi, wenn ich das. DATA aufg3_b; vari='<.0001'; IF &wil_two_test. le vari THEN pwert=0.0001;

Einführung in SPSS. Sitzung 2: Datenbereinigung und Datenmanagement. Knut Wenzig. 9. Dezember 2004

Einführung in MATLAB

NICHT TRIVIAL: MAKROVARIABLEN - GLOBAL ODER LOKAL

Erzeugung und Veränderung von Tabellen

Kurzanleitung zur Erstellung eines Reports von ClassiX aus

Einführung in SPSS. Sitzung 2: Datenbereinigung und Datenmanagement. Knut Wenzig. 15. Dezember 2005

3 Query Language (QL) Einfachste Abfrage Ordnen Gruppieren... 7

4.1 Aufbau und Eingabe von Formeln

Datenbank und Tabelle mit SQL erstellen

Stopp-Listen. Die Funktion von Stopp-Listen. Das Fenster zur Verwaltung der Stopp-Listen

Handbuch ky2help Version 4. Grundlagen und Administration. Version 1.7 KYBERNA AG T F

Tabellenkalkulation. Tabellenkalkulation

1.5 Berechnung von Rangzahlen

7. Einführung in C++ Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt

SQL-Sprachvielfalt. Peter Willadt (Ludwig-Erhard-Schule) SQL-Befehle / 47

Erste Schritte in etab

Transkript:

Literatur Das Datenanalysesystem SAS Einführung in die Blockkurs, SS 2005 Dr. Carina Ortseifen, URZ Heidelberg Kursunterlagen (über URZ-Homepage Software > Statistik > Kurse > SAS anklicken) SAS Online-Hilfe (Hilfe-Menü) SAS Online-Doku im WWW http://support.sas.com/documentation/ onlinedoc/index.html SAS Language, Reference, SAS Procedures Guide, SAS/STAT, SAS/FSP, SAS/INSIGHT, SAS Makros Kursaufbau Montag, 18.07. Freitag, 22.07.2005 Kurs 09:00-12:00 R 118 Pause 12:00 13:00 Kurs 13:00-16:00 R 118 Weitere Literatur Das SAS-Anwenderhandbuch im Netz www.urz.uni-heidelberg.de/statistik/sas-ah Dort im Kapitel 5: Carina Ortseifen: Der SAS-Kurs Weitere Lehrbücher über die URZ-Homepage www.urz.uni-heidelberg.de: Software > Statistik > SAS > Weitere Hinweise/Literatur > Lehrbücher zu SAS C. Ortseifen 1

Warum sind Sie heute hier? Aus welchen Gründen haben Sie sich für den Besuch dieses Kurses entschieden? Was wollen Sie hier alles lernen? Warum haben Sie sich für die SAS-Software entschieden? Es gibt doch auch SPSS. Voraussetzungen Gültige Benutzerkennung fürs URZ und Besuch des Kurses Das Datenanalysesystem SAS Einführung mit dem SAS Enterprise Guide oder gleichwertige Kenntnisse Teilnahmebescheinigung bei regelmäßiger Anwesenheit (80 %) Themen 1. Die Oberfläche von SAS Version 9 2. SAS-Tabellen: Datenschritt I 3. SAS-Basisprozeduren Print, Sort 4. Statistik am Beispiel von Means und Ttest 5. Tabellen verknüpfen: Datenschritt II 6. Schleifenprogrammierung: Datenschritt III 7. Weitere SAS/Base Prozeduren: Transpose, Tabulate 8. Output Delivery System (Ods) 9. SAS-Makroprogrammierung 10. Weitere SAS Prozeduren: Fsedit, Insight Begriffe SAS-Tabelle Variable, Beobachtung, Wert Format, Informat, Label (Etikett) Bibliothek Datenschritt Prozedurschritt Anweisung, global, lokal C. Ortseifen 2

Themen 1. Die Oberfläche von SAS Version 9 2. SAS-Tabellen: Datenschritt I 3. SAS-Basisprozeduren Print, Sort 4. Statistik am Beispiel von Means und Ttest 5. Tabellen verknüpfen: Datenschritt II 6. Schleifenprogrammierung: Datenschritt III 7. Weitere SAS/Base Prozeduren: Transpose, Tabulate 8. Output Delivery System (Ods) 9. SAS-Makroprogrammierung 10. Weitere SAS Prozeduren: Fsedit, Insight Menüleiste SAS- Explorer Kommando -zeile Editorfenster (Code) Symbolleiste (Tools) Protokollfenster (Log) Ausgabefenster (Output) SAS Version 9 Installiert ist: SAS 9.1.3 Englisch und Deutsch Programmierumgebung (Code-Fenster) mit Windows-Elementen: Menüleiste Icons Editor-, Log- und Outputfenster Explorer und Resultfenster Arbeitsweise SAS-Programme in den Editor laden (oder neu schreiben), ausführen und Ergebnisse betrachten Programm ausführen über Menü (Run > Submit), Icon, Funktionstaste F3, RM Submit All oder Kommando Submit Hilfe zu einzelnen Prozeduren Kommando help Prozedurname Beispiel: help Print C. Ortseifen 3

Bibliotheken verwalten (Libname) über den SAS Explorer Doppelklick auf Explorer zeigt die aktuellen Bibliotheken an. Zurück mit Rechte Maustaste (RM) - auf einer Bibliothek: Anzeige der Eigenschaften, Löschen u.a.m. - auf Libraries: Anlegen einer neuen Bibliothek Neue SAS-Bibliothek anlegen Name der Bibliothek Ordner- Angabe Schalter für permanente Bibliotheken SAS-Bibliotheken sind (Unter-) Ordner, die SAS-Tabellen enthalten. Um nicht immer den gesamten Pfad schreiben zu müssen, vergibt SAS Kürzel für die Ordner: Bibliotheksname (oder libref). Zur Definition Anweisung Libname Fenster: Neue Bibliothek im Explorer SAS/EG vergibt eigene Bibliotheksnamen. (Anzeige zur Ziehen der Tabelle ins Code-F.) SAS Explorer Ähnlich wie Windows-Explorer viele Funktionalitäten auf rechter Maustaste (RM) Anzeige und Bearbeiten von Tabellen, Bibliotheken und Katalogen Erzeugen neuer Bibliotheken, Filerefs, Tabellen und Katalogen Kopieren und Export von Dateien C. Ortseifen 4

Menü View (Ansicht) Zum Ändern der Explorer Darstellung (Explorer Fenster ist das aktive Fenster.): View > Show tree öffnet Baumstruktur, die Drill-Down erlaubt, um einzelne Dateien zu öffnen Variablenfenster (auch über RM > View columns) Anzeige der Variablen samt Eigenschaften Name, Etikett, Ausgabe- und Einleseformat können über das RM-Menü geändert werden View > Details zeigt Details der Bibliotheken, Dateien.. an. Tabelleninformationen Tabelle anklicken, RM > Properties liefert: Allgemeine Optionen Details Indizes Spalten (= Variablenfenster) Eintragungen, die sich ändern lassen, haben Popup-Menü. Tabellenansicht und zurück Doppelklick auf die Tabelle öffnet sie mit dem Viewtable Tabelle umbenennen: Tabelle markieren, RM > Rename Mit View > Up one level kehrt man eine Ebene im Explorer zurück (oder dem Icon ). C. Ortseifen 5

Tabellen kopieren Mittels Drag and Drop können Tabellen von einer Bibliothek in eine andere kopiert werden. Beispiel: SPSS-Transportfile O:\KURS\SAS\Daten\iris.por (apps auf "winfile") Umbenennen geht über RM Rename Themen 1. Die Oberfläche von SAS Version 9 2. SAS-Tabellen: Datenschritt I 3. SAS-Basisprozeduren Print, Sort 4. Statistik am Beispiel von Means und Ttest 5. Tabellen verknüpfen: Datenschritt II 6. Schleifenprogrammierung: Datenschritt III 7. Weitere SAS/Base Prozeduren: Transpose, Tabulate 8. Output Delivery System (Ods) 9. SAS-Makroprogrammierung 10. Weitere SAS Prozeduren: Fsedit, Insight Erzeugen von SAS-Tabellen: Wie und wo liegen die Daten vor? Zeit für die Übungen zu Kapitel 1 SAS Tabelle EG: Einfügen > Daten Datenschritt mit Set Prozedur SQL Anmerkung: EG: Enterprise Guide Nicht EG: nur mit normalem SAS ausführbar ohne: im Code-Fenster vom EG Fremdformat von anderer Anwendung (Excel) EG: Daten einfügen EG: Extras > Daten importieren ASCII-Datei (Rohwerte) EG: Extras > Daten importieren Datenschritt mit Infile Auf dem Papier Datenschritt mit Datalines (oder Cards) Nicht EG: Prozedur Fsedit mit Option New= C. Ortseifen 6

Aufbau von SAS-Programmen Globale Anweisungen Datenschritte Prozedurschritte LIBNAME lib 'C:\'; Data lib.abc; Set lib.abc; y=x+10; Proc Freq Data=lib.abc; TABLES a*b; Meldungen im Protokollfenster Note Hinweis zur Abfolge des Programms (Dauer, welche Datei(en) wurde(n) angelegt/gelöscht) Warning SAS ist auf einen behebbaren Fehler gestoßen. Der Daten- oder Prozedurschritt wurde vollständig ausgeführt. Error Der Fehler konnte nicht behoben werden. Der Programmschritt wurde abgebrochen. SAS-Anweisungen Daten- und Prozedurschritte bestehen aus Anweisungen. Anweisungen werden durch ein Schlüsselwort eingeleitet (z.b. Data, Proc, Run, Title) und enden mit einem Semikolon (;). Proc Sort... ; Optionen wählen Aktionen aus oder ändern Voreinstellungen ab. Proc Print Data=sasuser.adressen; Programm1.sas Data sasuser.adressen; Input name $ vorname $ ort $ alter; Datalines; Meier Hans Walldorf 25 Schulze Karin Mannheim 27 Müller Horst Nußloch 31 Was macht dieses Programm, wenn man es ausführt? Was ist die Aufgabe des Datenschritts? Was tun die einzelnen Anweisungen? C. Ortseifen 7

Programm2.sas Data kurs.neu; Set sasuser.adressen; gruppe=1; land= D ; If alter<30 Then typ= junior ; Else typ= senior ; Was macht dieses Programm? Was ist die Aufgabe des Datenschritts? Was tun die einzelnen Anweisungen? Die Anweisung Data ist die erste Anweisung im Datenschritt. Dem Schlüsselwort Data folgt der Name der zukünftigen SAS-Tabelle. Data sasuser.adressen; Data kurs.neu; Data work.firma; Aufgabe des Datenschritts ist die Erzeugung von SAS-Tabellen 1. Entweder aus Rohwerten/ASCII-Dateien: Input + Datalines + Datenwerte Input + Cards + Datenwerte Infile + Input (Datalines und Cards sind synonyme Anweisungen.) oder 2. aus vorhandenen SAS-Tabellen: Set Ende des Datenschritts Der Datenschritt ist beendet, wenn ein neuer Daten- oder Prozedurschritt beginnt d.h. Data- oder Proc-Anweisung, eine Run-Anweisung auftritt oder nach den Datenzeilen nach einer Datalinesoder Cards-Anweisung C. Ortseifen 8

Anweisungen und Zuweisungen Jede Anweisung beginnt mit einem Schlüsselwort (Data, Set, Run) und endet mit einem Semikolon (;). Bei einer Zuweisung steht links vom Gleichheitszeichen der Name der neuen Variablen, rechts die Rechenvorschrift. Zuweisungen im SAS EG mit Extras > Abfragen > > Auswählen, Neu Programm2 - Die Zuweisung Data kurs.neu; Set sasuser.adressen; gruppe=1; land= D ; If alter<30 Then typ= junior ; Else typ= senior ; Es werden zwei neue Variablen, gruppe und land, gebildet durch Zuweisung eines konstanten Wertes - für alle Beobachtungen in der SAS-Tabelle. Anweisung Set bezeichnet die SAS-Tabelle, die in die neue kopiert wird. Diese Tabelle muss existieren. Die Tabelle in der Data-Anweisung kann mit der in der Set-Anweisung übereinstimmen: Data kurs.neu; Set kurs.neu; alter_klasse=alter/10; Programm2 - Bedingte Zuweisung Data kurs.neu; Set sasuser.adressen; gruppe=1; land= D ; If alter<30 Then typ= junior ; Else typ= senior ; Der Wert der Variable typ wird in Abhängigkeit von einer Bedingung bestimmt (hier abhängig vom Alter). C. Ortseifen 9

Hinweis Die Anweisungen im Datenschritt werden von oben nach unten für jede einzelne Beobachtung der SAS-Tabelle ebenfalls sequentiell von oben nach unten abgearbeitet. Vorsicht! Was passiert hier: Data kurs.neu; Set sasuser.adressen; If alter>=30 Then alter=2; If alter<30 Then alter=1; Zuweisung von Konstanten Numerische Variablen Variable=Wert; x=3; y=0.2; z=.; Text- (Alphanumerische, Character-) Variablen Variable='Zeichenkette'; oder Variable="Zeichenkette"; status='ohne Befund'; sex="männlich"; wort=''; wort=' '; Programm3 Data kurs.neu; Set kurs.neu; If typ= senior Then Delete; Welche SAS-Tabelle wird erzeugt? Wird sie aus Rohwerten oder einer SAS-Tabelle erzeugt? Wie heißt diese? Was macht die Anweisung Delete? Arithmetische Operatoren Addition + a=b+c; a=b-10; a=10+20; Subtraktion - a=b-c; a=b-10; a=20-10; Multiplikation * a=b*c; a=b*10; a=10*20; Division / a=b/c; a=b/2; a=5/2; Potenzierung ** a=b**c; a=b**2; a=3**2; Es gilt dabei: Punkt- vor Strichrechnung. C. Ortseifen 10

SAS-Funktionen Funktionsname(Argument<,Argument2<,..>>) Arithmetische Funktionen Sqrt(x) y=sqrt(x); y=sqrt(2); Exp(x) y=exp(x); y=exp(0); Quantilfunktionen, z.b. t-verteilung Funktionen Verwendung der Funktionen ausschließlich im Datenschritt (oder Prozedur SQL): Data work.meinedatei; Set urz.iris; sum1=sl+sw+pl+pw; * "zu Fuß" ; sum2=sum(sl,sw,pl,pw); * Funktion ; Tinv(alf,df) x=tinv(0.05,10); SAS-Funktionen (2) Wahrscheinlichkeitsfunktionen, z.b. t- Verteilung Probt(x,df,<nc>) Stichprobenfunktionen Mean(x,y) Std(x,y,z) p=probt(1.96,10); y=mean(a,b,c); y=std(1,2,3); Vorteil der Funktionen meistens schneller im Vergleich zur 'Zu Fuß'- Methode, zum anderen können sie adäquat mit fehlenden Werten umgehen (vgl. Aufgabe 10). Vollständige Liste der verfügbaren Funktionen SAS Language Guide oder Hilfe > SAS Hilfe und Dokumentation > SAS Produkte > Base SAS > SAS Language Dictionary > Dictionary of Language Elements > Functions and CALL Routines C. Ortseifen 11

Data eins; a=1; b=2; c=3; Eine Übung für alle Data zwei; Set eins; a=4; Data drei; a=1; a=2; a=3; Data vier; Fragen 1. Welche SAS-Tabellen werden erzeugt? 2. Wie viele Variablen haben diese? 3. Wieviele Beobachtungen? 4. Welche Werte? Programm1.sas Data sasuser.adressen; Input name $ vorname $ ort $ alter; Datalines; Meier Hans Walldorf 25 Schulze Karin Mannheim 27 Müller Horst Nußloch 31 Hans Müller Walldorf 25 Jutta Schreiner Mannheim 31 Uwe Schulz Nussloch 19 Jens Pfluger. 24 Hans Müller Walldorf 25 Jutta Schreiner Mannheim 31 Uwe Schulz Nussloch 19 Hans Müller Walldorf 25 Jutta Schreiner Mannheim 31 Uwe Schulz 19 Jens Pfluger 24 St. Ilgen Hans Müller Walldorf 25 Jutta Schreiner Mannheim 31 Uwe Schulz Nussloch 19 Jens Pfluger Heidelberg 24 Liste/frei Spalten (1-5) Format (:$10.) INFILE + Rohwert-Typen Hans Müller Walldorf 25 Jutta Schreiner Mannheim 31 Uwe Schulz Nussloch 19 Jens Pfluger Heidelberg 24 Mehrere Zeilen pro Beobachtung (#1, /) Mehrere Beobachtungen pro Zeile (@@) Hans Müller Walldorf 25 Jutta Schreiner Mannheim 31 Uwe Schulz Jens Pfluger Heidelberg 24 Liste/Format + MISSOVER Hans Müller Walldorf Jutta Schreiner Mannheim Uwe Schulz Nussloch Jens Pfluger Heidelberg Spalten + PAD Zum Programm1.sas Datenwerte stehen in einer Liste durch Leerzeichen getrennt. => Listengesteuert Die Anweisung Input definiert die vier Variablen: Name, Vorname usw.. Alphanumerische Variablen werden durch $ (nach dem Variablennamen) gekennzeichnet. Nach der Anweisung Datalines (inkl. ;) folgen die Datenwerte. beendet den Datenschritt. C. Ortseifen 12

Hinweise zur Liste Zwischen zwei Datenwerten muss (mindestens) ein Leerzeichen stehen. Werte von Textvariablen (z.b. die Namen) dürfen nicht länger als 8 Zeichen sein und kein Leerzeichen enthalten. Fehlende Werte müssen durch einen Punkt gekennzeichnet werden. Hans Müller Walldorf 25 Jutta Schreiner Mannheim 31 Uwe Schulz Nussloch 19 Jens Pfluger. 24 Hans Müller Walldorf 25 Jutta Schreiner Mannheim 31 Uwe Schulz Nussloch 19 Hans Müller Walldorf 25 Jutta Schreiner Mannheim 31 Uwe Schulz 19 Jens Pfluger 24 St. Ilgen Hans Müller Walldorf 25 Jutta Schreiner Mannheim 31 Uwe Schulz Nussloch 19 Jens Pfluger Heidelberg 24 Liste/frei Spalten (1-5) Format (:$10.) INFILE + Rohwert-Typen Hans Müller Walldorf 25 Jutta Schreiner Mannheim 31 Uwe Schulz Nussloch 19 Jens Pfluger Heidelberg 24 Mehrere Zeilen pro Beobachtung (#1, /) Mehrere Beobachtungen pro Zeile (@@) Hans Müller Walldorf 25 Jutta Schreiner Mannheim 31 Uwe Schulz Jens Pfluger Heidelberg 24 Liste/Format + MISSOVER Hans Müller Walldorf Jutta Schreiner Mannheim Uwe Schulz Nussloch Jens Pfluger Heidelberg Spalten + PAD Anweisung Datalines (Cards) ist eine Anweisung des Datenschritts teilt dem SAS-System mit, dass im Anschluss die Datenwerte folgen ist die letzte Anweisung des Datenschritts Die Datenwerte werden durch ein Semikolon beendet, das in einer neuen Zeile stehen muss. Spaltengesteuertes Einlesen ist angezeigt, wenn Textwerte Leerzeichen enthalten: Data sasuser.adressen; Input name $ 1-10 vorname $ 11-16 wohnort $ 17-26 alter 28-29; Datalines; Meier Hans St. Leon 25 van SchulzKarin Heidelberg 27 Karl Helmut 51 C. Ortseifen 13

Hinweise zu Spalten Die Position der Variablen wird als Bereich von-bis angegeben. Keine Leerzeichen zwischen Werten notwendig Die Datenwerte müssen exakt in Spalten positioniert sein. Die Spalten müssen so breit angelegt sein, daß der längste Wert Platz hat. Formatgesteuertes Einlesen ist angezeigt bei Textwerten länger als 8 Zeichen oder anderen Nicht-Standardwerten, wie Datumsangaben und Zahlen mit Kommas: Format Data kurs.firma; Input name :$50. gebdatum :Ddmmyy10. zahl1 :Comma10.2 zahl2 :Commax10.2; Datalines; Meier 01.01.1960 10,000.00 12,45 Leuthäuser-Schnarrenberger. 1.00 13,50 Karl 29.02.2000 1,000,000 100,50 Zahl, Text bis zu... Zeichen Rohwert-Typen Rohwert-Typen Hans Müller Walldorf 25 Hans Müller Walldorf 25 Hans Müller Walldorf 25 Jutta Schreiner Mannheim 31 Jutta Schreiner Mannheim 31 Jutta Schreiner Mannheim 31 Uwe Schulz Nussloch 19 Uwe Schulz 19 Uwe Schulz Nussloch 19 Jens Pfluger. 24 Jens Pfluger St. Ilgen 24 Jens Pfluger Heidelberg 24 Liste/frei Spalten (1-5) Format (:$10.) Hans Müller Walldorf 25 Hans Müller Walldorf 25 Hans Müller Walldorf 25 Jutta Schreiner Mannheim 31 Jutta Schreiner Mannheim 31 Jutta Schreiner Mannheim 31 Uwe Schulz Nussloch 19 Uwe Schulz 19 Uwe Schulz Nussloch 19 Jens Pfluger. 24 Jens Pfluger St. Ilgen 24 Jens Pfluger Heidelberg 24 Liste/frei Spalten (1-5) Format (:$10.) Hans Müller Walldorf 25 Jutta Schreiner Mannheim 31 Uwe Schulz Nussloch 19 Hans Müller Walldorf 25 Jutta Schreiner Mannheim 31 Uwe Schulz Nussloch 19 Jens Pfluger Heidelberg 24 Mehrere Zeilen pro Beobachtung (#1, /) Mehrere Beobachtungen pro Zeile (@@) Hans Müller Walldorf 25 Jutta Schreiner Mannheim 31 Uwe Schulz Nussloch 19 Hans Müller Walldorf 25 Jutta Schreiner Mannheim 31 Uwe Schulz Nussloch 19 Jens Pfluger Heidelberg 24 Mehrere Zeilen pro Beobachtung (#1, /) Mehrere Beobachtungen pro Zeile (@@) INFILE + Hans Müller Walldorf 25 Jutta Schreiner Mannheim 31 Uwe Schulz Jens Pfluger Heidelberg 24 Liste/Format + MISSOVER Hans Müller Walldorf Jutta Schreiner Mannheim Uwe Schulz Nussloch Jens Pfluger Heidelberg Spalten + PAD INFILE + Hans Müller Walldorf 25 Jutta Schreiner Mannheim 31 Uwe Schulz Jens Pfluger Heidelberg 24 Liste/Format + MISSOVER Hans Müller Walldorf Jutta Schreiner Mannheim Uwe Schulz Nussloch Jens Pfluger Heidelberg Spalten + PAD C. Ortseifen 14

Werte in externen Dateien Anstelle der Anweisung Datalines verwendet man dann INFILE vor Input Data kurs.klasse; Infile 'd:\klasse.dat'; Input name $ alter; Direkt von einem Meßgerät, mit einem externem Editor erfaßt oder z.b. WinWord (Umwandlung in Ascii (als 'nur Text') nicht vergessen!) Zeit für die Übungen zu Kapitel 2 PAD und MISSOVER sind Optionen der Anweisung INFILE Infile 'd:\text.dat Pad; Infile 'd:\text.dat Missover; Allgemein Infile Pfad\Datei <Missover> <Pad>; Themen 1. Die Oberfläche von SAS Version 9.1 (8.2) 2. SAS-Tabellen: Datenschritt I 3. SAS-Basisprozeduren Print, Sort 4. Statistik am Beispiel von Means und Ttest 5. Tabellen verknüpfen: Datenschritt II 6. Schleifenprogrammierung: Datenschritt III 7. Weitere SAS/Base Prozeduren: Transpose, Tabulate 8. Output Delivery System (Ods) 9. SAS-Makroprogrammierung 10. Weitere SAS Prozeduren: Fsedit, Insight C. Ortseifen 15

Prozedur Print Darstellen der Datenwerte einer SAS-Tabelle im Ausgabefenster Der einfachste Aufruf Proc Print Data=sasuser.adressen; gibt die SAS-Tabelle sasuser.adressen vollständig mit allen Variablen und Beobachtungen aus. Anweisung Var Sollen nicht alle Variablen ausgegeben oder die Variablen in anderer Reihenfolge dargestellt werden, verwendet man die Anweisung Var. Proc Print Data=sasuser.adressen; Var name alter; Einschränkungen / Änderungen Nur bestimmte Variablen Anweisung Var Nur bestimmte Beobachtungen / Teilmenge Dateioptionen Obs= und Firstobs= Anweisung Where Beobachtungen in einer anderen Reihenfolge Prozedur Sort Listen getrennt nach bestimmten Gruppen Anweisung By Variablenbereiche Benennung einzelner Variablen: Var name alter; mit geänderter Reihenfolge: Var wohnort alter name; Gleicher Präfix und numerische Endung: Var tag1-tag5; Variablenbereiche innerhalb der Datei: Var name--alter; C. Ortseifen 16

Variablen ausschließen - Drop= Sollen alle Variablen bis auf wenige dargestellt werden, verwendet man die Dateioption Drop=: Proc Print Data=sasuser.adressen(Drop=sex); Die Dateioptionen folgen dem Tabellennamen in Klammern: (Drop=Variable Variablenliste) Firstobs=, Obs= Die Dateioptionen folgen in Klammern dem Tabellennamen: Proc Print Data=sasuser.adressen(Firstobs=11 Obs=15); Firstobs= Nummer der ersten Beobachtung, die verarbeitet wird Obs= Nummer der letzten Beobachtung, die verarbeitet wird Firstobs <= Obs Teilmengen Normalerweise werden Prozedurschritte für alle Beobachtungen ausgeführt. Bei großen Tabellen testet man den Prozedurschritt zunächst mit wenigen Fällen. Manchmal teilt man die Beobachtungen auf und führt Prozedurschritte nur für ausgewählte Beobachtungen aus. Einsatz der Dateioptionen Obs= und Firstobs= Anweisung Where! Where-Anweisung Beschränkung auf Untergruppen durch Formulierung einer logischen Bedingung, die von den Beobachtungen erfüllt werden muss. Proc Print Data=sasuser.adressen; Where alter>15; Where ist eine lokale Anweisung, die für fast jede Prozedur verwendet werden kann. C. Ortseifen 17

Logische Bedingungen Numerische Variablen Where wert=1; Where wert>1; Textvariablen Where id= DORLE ; Where ort in('hd','ma','ka'); Vergleichsoperatoren = eq gleich ^= ne ungleich > gt größer < lt kleiner >= ge größer oder gleich <= le kleiner in in der Liste enthalten oder gleich Weitere Operatoren Between-And Where x between 1 and 5; Contains Where a contains 'Dr.'; Is null Is missing Like Genaue Hinweise und Beispiele im SAS-Anwenderhandbuch im Netz unter dem Stichwort Selektion Kombinierte Bedingungen Kombination Where sex=1 and alter>20; Where alter<20 or wohnort="heidelberg"; Logische Operatoren & and sowohl als auch or mindestens eins von beiden ^ not nicht (oder auch ~) Klammern können die Lesbarkeit erhöhen Where (sport>2 or sport=.) and alter>20; Andere Reihenfolge der Fälle Um die Beobachtungen (=Zeilen) der SAS- Tabelle in einer anderen Reihenfolge darzustellen, muß die Tabelle zunächst mit der Prozedur Sort sortiert werden. Anschließend kann die sortierte Tabelle mit der Prozedur Print im Ausgabefenster angezeigt werden. 1. Proc Sort... ; 2. Proc Print...; C. Ortseifen 18

Prozedur Sort Sortieren erfolgt nach bestimmten Kriterien, die mit der BY-Anweisung formuliert werden. Proc Sort Data=sasuser.adressen; By alter; sortiert die Beobachtungen nach Alter (in aufsteigender Reihenfolge) Prozedur erzeugt keine Ausgabe. Sortierung in neuer Tabelle Soll eine SAS-Tabelle zwar sortiert, das Resultat aber in einer neuen Tabelle gespeichert werden, um die Ausgangstabelle nicht zu verändern, setzt man die Option Out= ein. Proc Sort Data=sasuser.adressen Out=kurs.sp; By alter; Mehrfache Sortierkriterien Beispiel: Telefonbuch Innerhalb einer By-Gruppe wird weiter nach dem nächsten Kriterium sortiert: Proc Sort Data=sasuser.adressen; By wohnort alter name; Die Reihenfolge der Variablen entscheidet über die Anordnung der Beobachtungen. Getrennte Liste Anweisung By Mit einem Prozeduraufruf erhält man getrennte Listen für Untergruppen. Die Anweisung By benennt die Variable(n), die die Untergruppen definiert. Voraussetzung: SAS-Tabelle ist nach der oder den BY-Variablen sortiert. Proc Print Data=sasuser.adressen; Var name alter; By sport; C. Ortseifen 19

Häufiger Fehler mit By ERROR: Data Set... is not sorted in ascending sequence. The current by-group has Min. =... and the next by-group has Min. =... Abhilfe: Einen Prozedur SORT-Schritt vorneweg ausführen. Beispiele Title1 Experiment von Fisher ; Title2 Vergleich von 3 Irisarten'; Footnote Umfang: je 50 Blüten ; Proc Print Data=kurs.iris; Proc Sort Data=sasuser.adressen; By sport; Proc Print Data=sasuser.adressen;... Beschriftungen Jede Seite im Ausgabefenster kann Titel- und Fußzeilen enthalten. Standardtitel: The SAS System Eigene Titel- und Fußzeilen machen die Ergebnisdarstellungen für Außenstehende verständlicher. TITLE und FOOTNOTE sind globale Anweisungen, d.h. sie werden außerhalb von Daten- und Prozedurschritten definiert. Hinweise Es können bis zu 10 Titel- und Fußzeilen definiert werden. Als globale Anweisungen gelten sie so lange, bis sie geändert oder zurückgesetzt werden. Zurücksetzung: Title ; Footnote ; C. Ortseifen 20

Globale Einstellungen - Optionen Beim Start der SAS-Sitzung belegt das SAS- System viele Schalter vor durch Konfigurationsfile Sasv9.cfg Anweisungen, die zu Beginn der SAS-Sitzung ausgeführt werden (Datei Autoexec.sas) Nachträgliche Änderung von Einstellungen durch den Benutzer ist möglich durch Titel- und Fußzeilen Optionen (z.b. Seitennumerierung) Änderung der Einstellungen auf zwei Arten Options-Fenster: Tools > Options > System.. Anweisung Options Options Nodate Nonumber; Options Nodate Pageno=5; Options ist eine globale Anweisung. Einige globale Einstellungen Ausgabe des Datums Date Nodate SAS System Options Kommando Option Menü Tools > Options > System Anzeige der Seitennummern Number / Nonumber Verändern der Seitennummer Pageno=n C. Ortseifen 21

Spezialitäten Zum Schluß noch zwei Spezialitäten der Prozedur Print: Darstellung der Labels Berechnung von Spaltensummen Spaltensummen mit Sum Werte von numerischen Variablen können mit der Anweisung Sum spaltenweise summiert werden. Proc Print Data=sasuser.adressen; Sum alter; Die Prozedur Print und Labels Die Prozedur Print zeigt standardmäßig keine Labels an. Zur Erinnerung: Labels sieht/definiert man mit der Anweisung Label oder im Variablenfenster. Erst durch Hinzunahme der Option Label werden sie angezeigt: Proc Print Data=sasuser.adressen Label; Zusammenfassung der Syntax Proc Sort Data=SAS-Tabelle <out=sas-tabelle>; By Variable Variablenliste; Proc Print Data=SAS-Tabelle <label>; <Var Variable Variablenliste;> <sum Variable Variablenliste;> <Where Logische Bedingung;> title...; footnote...; (Drop=...) options...; C. Ortseifen 22

Literatur Prozeduren Print und Sort sind Bestandteil von SAS Base: SAS Procedures Guide Globale Anweisungen und Dateioptionen SAS Language Guide Themen 1. Die Oberfläche von SAS Version 9.1 (8.2) 2. SAS-Tabellen: Datenschritt I 3. SAS-Basisprozeduren Print, Sort 4. Statistik am Beispiel von Means und Ttest 5. Tabellen verknüpfen: Datenschritt II 6. Schleifenprogrammierung: Datenschritt III 7. Weitere SAS/Base Prozeduren: Transpose, Tabulate 8. Output Delivery System (Ods) 9. SAS-Makroprogrammierung 10. Weitere SAS Prozeduren: Fsedit, Insight Prozedur Means Zeit für die Übungen zu Kapitel 3 Means (neben Freq und Univariate) ist eine grundlegende Prozedur für die deskriptive Statistik. Sie berechnet wichtige Kennwerte (=statistische Maßzahlen), die in direktem Zusammenhang mit dem Mittelwert stehen, für quantitative Merkmale. Z.B. Mittelwert, Median, Maximum, Minimum, Standardabweichung, Konfidenzintervalle... C. Ortseifen 23

Einfachster Aufruf Proc Means Data=urz.iris; berechnet für alle numerischen Variablen (auch für blume!) die Kennwerte N Anzahl der nichtfehlenden Werte Mean Mittelwert Std Dev Standardabweichung Min/Max kleinster/größter Wert und stellt diese im Ausgabefenster in Form einer Tabelle dar. Anweisung Class Berechnung der Kennwerte getrennt für die durch die Class-Variablen definierten Gruppen Proc Means Data=urz.iris; Var sl; Class blume; Tabelle braucht nicht sortiert (nach blume) vorliegen. Anweisung Var beschränkt die Liste der Variablen, für die Kennwerte berechnet werden. Proc Means Data=urz.iris; Var sl pl sw pw; Alternative Lösung: Proc Means Data=kurs.iris(Drop=blume); Anweisung Output Übertragung der Kennwerte in eine neue SAS-Tabelle Proc Means Data=urz.iris; Var sl; Output out=iris_sl; Die Kennwerte werden im Ausgabefenster angezeigt, gleichzeitig wird die SAS-Tabelle iris_sl angelegt. C. Ortseifen 24

Mit Output erzeugte Tabelle iris_sl hat - 5 Beobachtungen für die fünf Kennwerte (N, Mean, Std, Min, Max) und - 4 Variablen _Type_, _Freq_, _Stat_ und die eigentliche Variable sl, die die Kennwerte enthält. Prozedur Ttest Vergleich von zwei Gruppen hinsichtlich deren Erwartungswerte t-test für gleiche und ungleiche Varianzen für unabhängige u. abhängige Gruppen Varianzen F-Test Option Noprint Die Option Noprint unterdrückt die Darstellung der Kennwerte im Ausgabefenster. Proc Means Data=urz.iris Noprint; Var sl; Output out=iris_sl; Das Ergebnis ist die neue SAS-Tabelle iris_sl. Zur Statistik Wie lautet die Null- und wie die Alternativhypothese für den t-test? Wie wird der Test durchgeführt? Und lautet die Testentscheidung? Und jetzt das ganze für den F-Test! C. Ortseifen 25

Beispiel: Unabhängiger t-test Teststatistik T wo s T x x ~ t 1 2 = n1 + n2 2 s 1 + 1 p n1 n2 ( n 1) s + ( n 1) s = n + n 2 2 1 1 2 2 2 2 p 1 2 x i Mittelwerte, s i Standardabweichungen, n i Fälle Testentscheidung: Wenn T >t n 1+n2-2,1-α/2 ist, wird H 0 verworfen. The TTEST Procedure Statistics Lower CL Upper CL Lower CL Upper CL Mean Mean Mean Std Dev Std Dev Variable PILLE N Std Dev Std Err CALCIUM 90 98.818 99.878 100.94 4.4124 5.0588 5.929 0.5332 1 CALCIUM 2 92 98.077 99.098 100.12 4.3045 4.9282 5.7649 0.5138 CALCIUM -0.681 0.78 2.2407 4.5264 4.9932 5.5683 0.7403 Diff (1-2) t-test mit Freiheitsgrad, Teststatistik, Irrtumswahrscheinlichkeit (=Ws. unter Nullhypothese) T-Tests Variable Method Variances DF t Value Pr > t CALCIUM Pooled Equal 180 1.05 0.2935 CALCIUM Satterthwaite Unequal 180 1.05 0.2936 F-Test Kennwerte Equality of Variances Num DF Den DF Variable Method F Value Pr > F CALCIUM Folded F 89 91 1.05 0.8039 Einfachster Aufruf Proc Ttest Data=urz.blutbild; Class pille; Var calcium; Interpretation t-test Was sagt Pr > t 0.2935 aus? Wenn Pr> t kleiner gleich dem vorgegebenen Signifikanzniveau α ist, kann die Nullhypothese H 0 abgelehnt werden. Wenn Pr> t α, dann H 0 ablehnen. C. Ortseifen 26

Abhängiger t-test Proc Ttest Data=us_sozialerhebung_91; Paired mausbild*vausbild; Zusammenfassung der Syntax Proc Means Data=SAS-Tabelle <Noprint>; <Var Variable Variablenliste;> <Output out=sas-tabelle;> <Class Variable Variablenliste;> Proc Ttest Data=SAS-Tabelle; Class Variable Variablenliste; <Var Variable Variablenliste;> <Paired Variable1*Variable2;> <Where Logische Bedingung;> <By Variable Variablenliste;> The TTEST Procedure Statistics Kennwerte Lower CL Upper CL Lower CL Upper CL Std Difference N Mean Mean Mean Std Dev Std Dev Std Dev Err mausbild - vausbild 974-0.189 0.0072 0.2031 2.9825 3.115 3.2598 0.0998 t-test mit Freiheitsgrad, Teststatistik, Irrtumswahrscheinlichkeit (=Ws. unter Nullhypothese) T-Tests Difference DF t Value Pr > t mausbild - vausbild 973 0.07 0.9426 C. Ortseifen 27