SAS Tutorial: Erstellen von Kategorien mit PROC FORMAT

28. Februar 2008 von: Blink 7

Bei der Durchführung die Analyse der Daten einer Kohorte Bevölkerung ist es oft wünschenswert, Merkmale kategorisieren kann viele Werte. Alter, Einkommen und eine Kreditkarte der Gäste sind Beispiele für Attribute, die Bevölkerung in den "Eimer genommen werden kann, und einfach analysiert auf einer breiten Basis Kategorien (ohne Rückgriff auf lineare oder logistische Regression). Während Variablen können schnell kodiert mit IF-Anweisungen werden, bietet SAS-Format Verfahren eine elegante und tragbare Lösung.

Voraussetzungen

  • SAS v9.x oder SAS Enterprise Guide 4.x
  • Grundlegende Kenntnisse des SAS Data Step
  • Basic Know-how zum Laden und Ausführen von SAS Programmen
  • Basic Know-how zum Laden und Speichern von SAS Datensätze
  • Der Zugang zu lesen SAS / write Dateibereich

Downloads

Das Szenario

tutorial004-01.jpg

Die zur Verfügung gestellten Datensatz enthält grundlegende Informationen über eine beliebige Gruppe von Menschen. Betrachtet man die Datenmenge, gibt es drei Säulen, die die Vornamen, Nachnamen und das Alter der jeweiligen Person. Nehmen wir an, dass einige Performance-Analyse auf die Bevölkerung vorgesehen durchgeführt wird - werden Kategorisierung nach Alter könnte für anspruchsvolle Trends nützlich sein.

Take 1 - Kategorisierung mit dem IF-Anweisung

Angenommen, Sie möchten im Alter von 10's: 10-19, 20-29, 30-39 und 40 + zu kategorisieren. Die eingegebenen Daten können in das SAS Data geladen und mit dem if-Anweisung um eine kategorisierte Variable erstellen verlängert. Insbesondere können wir wie folgt vor:

  • Erstellen Sie einen neuen Datensatz, mit dem zur Verfügung gestellten Daten als Quelle
  • Erstellen Sie eine Kategorie Variable
  • Kategorisieren der Zeit, indem die Ergebnisse in der Kategorie Variablen

Öffnen Sie die SAS-Programm cat1.sas (die mit SAS Enterprise Guide 4 kann alternativ die Kategorisierung Projekt-Datei, und doppelklicken Sie auf den Code cat1 Symbol der SAS Project Designer-Fenster geöffnet).

tutorial004-02.jpg

Wie Sie im obigen Screenshot sehen können, erstellt der Code eines neuen Datensatzes aufgerufen catv1 in der Arbeit hinzugefügt.

  • Die Standard-Eingang mit dem nameage Daten festgesetzt in dieser Anleitung vorgesehenen
  • Ein 16-Zeichen-Variable namens age_category wird erstellt, um die wörtliche Kategorisierung der Variable Alter halten
  • Ein IF / ELSEIF bedingten Struktur wird verwendet, um den Eimer-Kategorisierung für das Alter der Teilnehmer in den einzelnen Datensätzen zu berechnen

Nach dem DATA-Schritt wird eine PROC PRINT ausgegeben, um die Ausgabe der catv1 Anzeige

tutorial004-03.jpg

Das Ausführen des cat1 Code ausgeben sollte, wie oben gezeigt zu produzieren

Take 2 - Kategorisierung mittels Benutzerdefinierte Formate

Mit IF / ELSIF Erklärungen sind einfach und wahrscheinlich ausreichend, wenn Sie nur eine Variable ... wissen, dass Sie nie das gleiche Kategorisierung verwenden werden in einem anderen Teil des Codes oder immer die gleiche Kategorisierung mit unterschiedlichen Variablen zu kategorisieren sind. Wenn Sie diesen Bedingungen nicht garantieren, dann werden Sie in der Kopie geklebt werden integrieren Codierung Falle. Jede "Änderungen", um die Kategorisierung müssen manuell konfiguriert für jede Variable in jedem Teil des Codes - eine zeitaufwändige und fehleranfällige Prozess.

Glücklicherweise bietet SAS die FORMAT-Prozedur, die benutzt werden, um zentralisierte Kategorisierungen für Zeichen-oder numerische Eingabe erstellt werden können. Vorteile bei der Verwendung der FORMAT-Verfahren gehören die folgenden:

  1. Formate können eine beliebige Anzahl von Variablen in mehreren SAS-Programme angewendet werden
  2. Änderungen an Formaten wird jedem Zielvariable das nächste Mal ihre Zuordnung Code angewendet werden ausgeführt
  3. Flexibilität, um die Formate im Programm-Code einbinden oder erstellen Sie in sich geschlossene Programme
  4. Formate können mit vorübergehenden oder dauerhaften SAS-Bibliotheken gespeichert werden

In diesem Sinne, let's Rework diesen Code, indem anstelle der bedingten Struktur mit einem FORMAT Verfahren. Öffnen Sie die SAS-Programm cat2.sas, um den Code.

tutorial004-04.jpg

Die FORMAT Verfahren beginnt mit einem PROC FORMAT-Anweisung und endet mit einem RUN-Anweisung (Groß-und Kleinschreibung). Innerhalb dieser Struktur die VALUE-Anweisung kann benutzt werden, um ein Format zu definieren. Mehrere VALUE-Anweisungen können in einem FORMAT Verfahren erteilt werden.

In diesem Fall haben wir definiert ein Format namens agecat. Dieses Format wird numerische Eingabe Werte in Text umzuwandeln-basierte Kategorien. (Anmerkung: die Texteingabe Werte zu konvertieren Ort, ein $ vor dem Format Name - $ agecat).

Single Input-Werte oder Bereiche von Eingabewerten zugeordnet Format Werte über einfache Gleichungen. In diesem Fall reicht der Eingabewerte (zB 10-19) zugeordnet sind einzigen Text-basierte, formatierte Werte.

Das Schlüsselwort hohe bedeutet die größtmögliche Wert im Datensatz. Dieses Schlüsselwort ist im Wesentlichen ein catch-all für Werte über dem Anfang des Bereichs. Im Hinblick auf dieses Benutzers Format, jede Eingabe-Wert über 40 angewendet werden, zugewiesen werden formatierte Wert '40 + '. Ebenso kann das Stichwort niedrig benutzt werden, um die Daten möglichst niedrigen Wert darstellen und könnte in einem Bottom verwendet werden Ende catch-all-Kategorie.

Unsere benutzerdefiniertes Format können nun alle numerischen Variablen werden über die PUT-Anweisung angewendet werden. Als Folge der Daten Schritt nicht mehr erforderlich bedingte Anweisungen kompliziert und zuweisen können kategorisiert Werte age_category in einer einzigen Zeile.

Nur um die Flexibilität der Nutzer zu demonstrieren Formate, eine neue Variable namens age_in_5 wurde ebenfalls erstellt. Diese Variable zeigt, was jeder Altersgruppe gehören wird bis 5 Jahren. Beachten Sie, dass die Zuweisung zu age_category identisch ist mit der Ausnahme, dass 5 Jahren war es, das Alter hat vor der Formatierung.

Nach dem DATA-Schritt wird eine PROC PRINT ausgegeben, um die Ausgabe der catv2 Anzeige

tutorial004-05.jpg

Das Ausführen des cat2 Code ausgeben sollte, wie oben gezeigt zu produzieren

Abgelegt unter: Entwicklung, Tutorials
Tags:

Kommentare

4 Responses to "SAS Tutorial: Erstellen von Kategorien mit PROC FORMAT"
  1. PatzZ sagt:

    thanks man

  2. beginer sagt:

    DANKE, wirklich gut und hilfreich

  3. Tobias sagt:

    Großartig! Genau das, was ich gesucht habe!

Lassen Sie eine Antwort

Captcha
Geben Sie die Buchstaben den Sie oben sehen.