report - break statement und Summen nicht über alle Variablen

hallo,

mein Problem ist, dass ich mit proc report und dem break / ol summarize Summen bilde.

Nun hab ich die Aufgabe, dass einige meiner definierten Variablen NICHT in der Summenzeile auftauchen sollen. Anstelle der Summe soll also da ein Missing sein.

Meine Recherche ergab, dass es wohl möglich ist. Nur hab ich es nicht verstanden, wie break, rbreak oder compute zusammenhängen müssen, damit es klappt - hat jemand eine prinzipielle Lösung parat?

Schöne Grüsse
Dirk Engfer

Beispieldaten

Können Sie mal einen Data Step, der ein paar passende Beispieldaten erzeugt, hier reinstellen?

Variablentyp

hallo Herr Mangold,

eine variable mit prozentwerten sollte nicht aufsummiert werden - erzwungen durch break / ol summarize.

da ich aber ohne gruppen arbeite, gab es nicht die möglichkeit, mit compute after xyz; zu arbeiten.

ich hab jetzt die allersimpleste methode gewählt und die prozent-variablen in character-variablen überführt, die dann ja nicht mehr aufsummiert werden können. ich muss dann aber damit leben, dass unterhalb dieser spalten keine linie mehr geprinted wird, so wie es bei den aufzusummierenden spalten der fall ist. mal sehen, was meine statistiker dazu sagen...

Wenn es speziell um berechnete Prozentwerte geht...

...und diese im PROC REPORT über BREAK- bzw. RBREAK-Anweisung auch die Prozentwerte für die Zwischensummen- bzw. Summenzeile darstellen sollen, sollte es so funktionieren:

PROC REPORT DATA=TEST;
COLUMNS VAR1 VAR2 VAR3 VARPROZ;
DEFINE VAR1 / GROUP;
DEFINE VAR2 / SUM F=COMMAX16.0;
DEFINE VAR3 / SUM F=COMMAX16.0;
DEFINE VARPROZ / COMPUTED F=COMMAX6.2 "BERECHNET %";
COMPUTE VARPROZ;
VARPROZ = VAR2.SUM/VAR3.SUM*100;
ENDCOMP;
BREAK AFTER VAR1 / SUMMARIZE PAGE;
RBREAK AFTER / SUMMARIZE DOL DUL;
RUN;

Funktioniert auch, wenn VAR2 und VAR3 Makrovariablen sind.
Ich hatte mal probiert, die berechnete Variable als Prozent zu formatieren. Dann werden Character-Werte draus und ich habe es wieder verworfen. Mit COMMAX-Formatierung klappt es prima.

Gutes Gelingen!
Friederike Grohmenn