proc tabulate - Unterdrückung von Spalten
Hallo,
ich erstell mir grad eine Risentabelle, hätt aber der Übersichtlichkeit halber gern nur ein paar Spalten ausgewiesen.
So schaut die Tabelle aus:
proc tabulate MISSING data=rvza out=dco_Tab1;
format GESCHL sex. bdl bdl. dco dco.;
class GESCHL bj_kre bdl dco;
table ((all GESCHL)*(bj_kre)),((all bdl)*(dco)*(pctn));
where 1983<=bj_kre<=2006 and icd10_3<'D00' and icd10_3~='C44' and ((STDGROB=7 and KRETOD~=.) or STDGROB~=7);
run;
Die Variable "dco" hat zwei Ausprägungen und daher bekomm ich zwei Spalten, deren Prozent sich auf 100 addieren. Wenn ich ins where "dco=1" reinschreib, bleibt zwar nur eine Spalte, die hat dann logischerweise aber 100%. Wer kann mir sagen wie/ob ich die Spalte für die zweite Ausprägung unterdrücken kann.
Danke, M
- Anmelden oder Registrieren um Kommentare zu schreiben

DROP?
Hallo,
einzelne Spalten lassen sich mit DROP doch in der Ausgabedatei (SAS, nicht die HTML-Ausgabe) löschen.
DATA = rvza
OUT = dco_Tab1 (DROP = Spalte);
FORMAT
GESCHL sex.
bdl bdl.
dco dco.
;
CLASS GESCHL bj_kre bdl dco;
TABLE
((all GESCHL)*(bj_kre)),
((all bdl)*(dco)*(pctn))
;
WHERE 1983 <= bj_kre <= 2006 & icd10_3 < 'D00' & icd10_3~='C44' & ((STDGROB = 7 & KRETOD ~= .) | STDGROB ~= 7);
RUN;
War das so gemeint?
Ledier nein
Hallo,
es geht nicht um die Datei, sondern um die Tabelle die ich in der Ausgabe (Results Viewer - SAS Output) bekomme.
Die Datei hab ich eigentlich nur erstellt, weil ich mir gedacht habe, ich könnte mir dann daraus eine entsprechende Tabelle erzeugen - hab ich aber auch nicht geschafft.
LG, M
Spalten oder Zeilen unterdrücken in Tabulate
Hallo,
dies geht meines Wissens nach nur über einen Umweg. Ich habe ein kleines Beispiel geschrieben, dass bestimmt entsprechend angepasst werden kann.
DATA Test;
INPUT A B $;
CARDS;
1 a
2 a
1 a
2 b
1 a
2 b
1 a
2 a
1 a
2 a
1 a
2 b
1 b
2 a
1 b
2 a
RUN;
/*Ausgabe unterdrücken*/
ODS _ALL_ CLOSE;
/*gewünschte Tabelle erstellen*/
PROC TABULATE
DATA = Test
OUT = Test1
;
CLASS A B ;
TABLE
A,
B*ROWPCTN
;
RUN;
/*Ausgabe wieder anstellen z. B. HTML*/
ODS HTML;
/*Filtern der Ausgabedatei*/
DATA Test2;
SET Test1;
WHERE B ='a';
KEEP A B PCTN_10;
RUN;
/*Die Klassendefinitionen wiederholen sich*/
/*Die Spalte(n) mit den Werten als Variablen definieren*/
/*Jetzt statt der Statistiken die entsprechenden Werte als Variable*/
/*Die Variable wie die entsprechende Statistik benennen ="RowPctN" */
/*Als Statistik MAX wählen, da jeder Wert in der Kategorie ja nur einmal vorkommt*/
/*Die Ausgabe von MAX mit ="" unterdrücken*/
PROC TABULATE
DATA = Test2
;
CLASS A B;
VAR PCTN_10;
TABLE A,B*PCTN_10="RowPctN"*MAX="";
RUN;
ODS HTML CLOSE;
Ich hoffe es hilft weiter
Jan
Danke
Hallo Jan,
ich hab das oben nicht wirklich verstanden, aber nach all deinen Antworten auf meine anderen Fragen hab ich jetzt einen für mich guten Weg gefunden. Ich schreib mir einen Datensatz raus und mach dann aus dem die Tabelle :)
LG, Monika