Neues von Proc Means

Aus SAS-Wiki
Wechseln zu: Navigation, Suche

Von Grischa Pfister aus: Hans-Peter Altenburg, Carina Ortseifen, Tanja Petrowitsch, Grischa Pfister, Wilfried Schollenberger: Tipps & Tricks für den leichteren Umgang mit der SAS Software, KSFE 2007

Seit Version 8 unterstützt Proc Means verschiedene neue Anweisungen, die den Umgang mit der Prozedur wesentlich bequemer machen. Für die Klassenvariablen können verschiedene Sortierungen angegeben werden, außerdem können – wie im Beitrag von Herr Altenburg beschrieben – mit Hilfe der Type- und der Ways-Anweisung bestimmte Kombinationen der Klassenvariablen gezielt ausgewählt werden. Hier ein Beispiel für die Verwendung mehrerer Class-Anweisungen:

Proc Means data=Sashelp.Prdsale;
  Class country ;
  Class region / descending;
  Class prodtype / descending;
  Class product;
  Var actual;
Run;

Die verschiedenen Class-Anweisungen sorgen dafür, dass die Ausprägungen der Variablen auf- bzw. absteigend sortiert werden.

Die Output-Anweisung unterstützt jetzt das Erstellen sogenannter „Top/Bottom N“-Berichte, also die Selektion der besten oder schlechtesten N Beobachtungen aus einer Tabelle. Dabei dienen bestimmte Variablen als Selektionskriterium. Ausgegeben werden die gleichen oder andere Spalten. So kann z.B. die Tabelle SASHELP.CLASS herangezogen werden, um die drei schwersten Schüler bzw. Schülerinnen zu ermitteln, deren Namen und Geschlecht dann in eine Ergebnistabelle gespeichert werden. Das Programm sieht dann so aus:

Proc Summary data=Sashelp.Class;
  Output out=Work.Test 
    idgroup( max(weight) out[3] (name sex)= );
  ;
Run;

Die Idgrop-Option der Output-Anweisung steuert die Gesamtausgabe, max(weight) enthält das Selektionskriterium, out[3] gibt an, dass die ersten drei Werte gespeichert werden sollen und (name sex)= zeigt an, dass die Spalten Name und Sex in die Ergebnistabelle übernommen werden sollen. Die Ergebnis-Tabelle enthält eine Beobachtung und die Spalten Name_1, Name_2, Name_3 sowie Sex_1, Sex_2 und Sex_3. Die Rang-nummer wird dabei an den Spaltenbezeichner (= Idgroup) angehängt. Wird eine Class-Anweisung dazu genommen, enthält die Ergebnistabelle je Ausprägung der Class-Variable(n) eine Beobachtung. Mit Ways oder Types können wieder bestimmte Kombinationen selektiert werden.

Proc Summary data=Sashelp.Class;
  Output out=Work.Test 
    idgroup( max(weight) out[3] (name sex)= );
  ;
  Class sex;
Ways 1;
Run;

Neu in Version 8 ist auch die Option Chartype im Prozeduraufruf. Sie sorgt dafür, dass die _Type_ Variable als alphanumerischer String ausgegeben wird statt als numerische Spalte. Die genaue Bedeutung der Spalte erläutert Herr Altenburg im nächsten Beitrag.

Literatur

  • SAS Procedure Guide, ab Version 8, Beschreibung von Proc Means