Benutzer:Fortwengel/SAS Format3

Aus SAS-Wiki
< Benutzer:Fortwengel(Weitergeleitet von SAS Format3)
Wechseln zu: Navigation, Suche

3 Die Anweisung FORMAT

Formate werden mit Hilfe der Anweisung FORMAT in einem Daten- oder einem Prozedurschritt einer Variablen zugewiesen. Die ursprünglichen Werte der Variablen werden dadurch nicht verändert, aber die Erscheinungsform der Werte an das Format angepasst. Die allgemeine Syntax dieser lokalen Anweisung FORMAT lautet:

 Format variablenname formatname.;

Für unsere Beispieldatei können wir mit der Prozedur PRINT eine besser lesbare Liste erzeugen, wenn wir ein Datumsformat verwenden, hier DDMMYYP10., „P“ für den Punkt zur Abtrennung, im Unterschied zum Standardtrennzeichen „/“. Außerdem wenden wir gleich noch zwei weitere Formate an: $5. für die Variable Vorname und COMMAX10.2 für die Größe.

 Var name vorname groesse gebdatum;
 Format vorname $5. groesse COMMAX10.2 gebdatum DDMMYYP10.;
 Run;


Im Ausgabefenster sieht das Ergebnis dann wie folgt aus:

SAS-Format30.JPG






In der Online-Hilfe finden Sie über das Menü Help > SAS Help and Documentation unter SAS Products > Base SAS > SAS 9.2 Language Reference: Dictionary … > Dictionary of Language Elements > Formats bzw. Informats die Liste aller zur Verfügung stehenden Formate und Informate. Tabelle:

3.1 Formate im Daten- oder Prozedurschritt zuweisen?

Die Zuweisung von Informaten kann nur im Datenschritt erfolgen, wenn Daten in SASTabellen geschrieben werden. Daher können sowohl die ATTRIB- als auch die INFORMAT-Anweisung nur im Datenschritt stehen, genau wie INPUT. Die FORMATAnweisung dagegen kann sowohl im Daten- als auch im Prozedurschritt ausgeführt werden. In obigem Beispiel hatten wir FORMAT im PROC PRINT-Schritt eingesetzt. Die Variablen Vorname, Groesse und Gebdatum wurden in der angegebenen Form ausgegeben. Würden wir den Prozedurschritt ohne die Anweisung FORMAT wiederholen, kämen wieder die alten, unformatierten Werte zum Vorschein. Denn die Formatierung wurde nur im ersten, nicht aber im zweiten Prozedurschritt durchgeführt. Möchte man die Formatierung permanent setzen, muss die Zuweisung im Datenschritt erfolgen. Entweder gleich im Datenschritt, mit dem die Tabelle klasse angelegt wird:

  Data klasse;
  Informat Name Vorname $20. Gebdaten Ddmmyy10.;
  Format vorname $5. Gebdaten Ddmmyy10.;
  Input Name Vorname Geschlecht Groesse Note Gebdatum; ...

Oder in einem separaten Datenschritt:

  Data klasse;
  Set klasse;
  Format vorname $5. Gebdaten Ddmmyy10.;
  Run;

Damit wird das Format fest in der SAS Tabelle abgelegt und ist für jeden anschließenden Daten- und Prozedurschritt verfügbar.

Anzeige der Variablen-Eigenschaften im Properties-Fenster des SAS Explorer












Anzeige der Variablen-Eigenschaften im Properties-Fenster des SAS Explorer

Kontrollieren kann man die Eintragung im Properties-Fenster des SAS-Explorers. (Dazu im SAS-Explorer die Bibliothek Work öffnen, mit der rechten Maustaste auf das Symbol der Tabelle klasse klicken und View Columns auswählen.)


3.2 Klassenbildung mit Formaten

Die Formate können wir aber nicht nur für Listenberichte einsetzen, sondern auch zur Bildung von Klassen. Für die Vorbereitung des KSFE-Tagungsbüros sollten die Buchstaben festgelegt werden, nach denen die drei Schalter bestimmt werden, möglichst gleichmäßig. Es sollte also eine Klassierung der angemeldeten Konferenzteilnehmer nach dem Anfangsbuchstaben deren Nachnamen vorgenommen werden. Auszählen, auch kumulativ, erledigt die Prozedur FREQ, klassieren können wir mit dem passenden Format, und alles in einem Prozedurschritt:

  Proc Freq Data=work.klasse;
  Tables name;
  Format name $1.;
  Run;


Im Ausgabefenster erhalten wir:

SAS-Format32b.jpg








Weitere Anwendungen können im deutschsprachigen SAS-Wiki nachgelesen werden unter de.saswiki.org, Suche nach Format.

Die bislang verwendeten Formate sind alles SAS-eigene Formate. Für die Kodierung der Variable Geschlecht (1 für weiblich, 2 für männlich) liegt leider kein passendes Format vor. Dieses muss erst mit der Prozedur FORMAT definiert werden.