proc format
Hallo,
ich hab ein Problem mit der Sortierung der Vorspalte in meinen Tabellen. Die Tabellen erstelle ich mit proc tabulate, das Format mit proc format. Es handelt sich um Variableneinträge, die aus einem Buchstaben und zwei Ziffern bestehen (C00, C01, C02 etc.). Diese will ich durch das Format gruppieren. Also z.b. C00-C10="C00-C10". other="Rest" verwende ich um alle Werte die nicht eigens ausgewiesen wurden in eine Gruppe zusammenzufassen.
Soweit so gut.
Wenn ich in der proc tabulate dieses Format der Variablen zuweise, erscheint die Gruppe "Rest" nicht am Ende der Tabelle, sondern mittendrinn (weil eben z.B. die Ausprägung C21 unter "other" fällt). Gibt es eine Möglichkeit, die Reihenfolge wie ich sie in der proc format vorgebe, in der proc tabulate zu erzwingen?
Ich hoffe meine Schilderung war soweit verständlich?
LG, M
- Anmelden oder Registrieren um Kommentare zu schreiben

Äquivalent zu MISSING?
Hallo,
ich such noch was zu dem Formaten.
Wenn nun in meiner Format-Liste Formate für die Werte C00 bis C99 vorgegeben sind, aber im Datensatz z.B. kein Eintag mit C97 ist, dann schient dieser nicht als Leerezeile auf, sondern gar nicht.
MISSING macht mir nur eine Zeile für fehlende Werte, aber nicht für "Werte die fehlen". Wie kann ich das lösen?
LG, M
Fehlende Formatwerte ausgeben
Hallo,
um fehlende Formate mit auszugeben muss man im Klassenstatement die Option PRELOADFMT verwenden und im Tabellenstatement die Option PRINTMISS.
VALUE test
1 = '1'
2 = '2'
3 = '3'
;
RUN;
DATA Test;
INPUT variable;
CARDS;
1
2
RUN;
PROC TABULATE
DATA = test
;
CLASS variable /PRELOADFMT ;
FORMAT
variable test.
;
TABLE
variable,
N
/PRINTMISS
;
RUN;
Ich hoffe, das hilft weiter
Jan
Danke
Ja genau das wars :)
Nach Format sortieren
Hallo,
wenn man das ganze mit PROC FORMAT lösen möchte, muss man die Formate zunächst einmal in der entsprechenden Reihenfolge benennen. Im obigen Fall, sofern alles mit "Cxx" beginnt und dann der "Rest" erscheint, braucht man in der Format-Anweisung nichts mehr ändern. Ansonsten könnte man den Formatnamen auch "01","02" voransetzen, um eine Sortierung zu erzwingen.
In der TABULATE-Prozedur muss dann hinter der CLASS-Variable nur "/ ORDER = FORMATTED" stehen. Beispiel:
DATA = work.auswertung;
FORMAT
Variable $fFormat.
;
CLASS Variable / ORDER = FORMATTED;
(weiterer Code);
RUN;
Hoffe das ist das, was gemeint war.
Danke
super & danke, genau das wars :)