aus Freq p-Wert und Häufigkeiten rausschreiben

Hallo,

jetzt wirds kompliziert. Ich hoffe, Ihr kommt mit!

Ich habe ein Makro, das über mehrere Freqs die Variable bestimmt, die in einer Vierfeldertafel mit der Variablen drpscale den niedrigsten Chiquadrat erzielt (alle Variablen sind 0/1-Variablen):

%macro cart1cut(datei,var2,varlist1=);
%let i=1;
%let var1=%scan(&varlist1, &i);
%do %while (&var1 ne);
proc freq data=&datei;
table &var1*&var2 /chisq;
output chisq;
run;

data dazu;
length wert $9;
set _last_ (keep=_PCHI_ P_PCHI);
wert="&var1";
run;

proc append base=merken data=dazu;run;

%let i=%eval(&i+1);
%let var1=%scan(&varlist1, &i);
%end;
%mend;

Dieses Macro gibt nach ein paar Nachbearbeitungen die Datei wichtig mit folgendem Inhalt aus;

wert _PCHI_ P_PCHI

mpathie 339.742 7.2634E-76

Jetzt soll mit den Daten der Ursprungsdatei baum nochmal ein Freq mpathie*drpscale ausgegeben werden, da ich die Häufigkeiten von mpathie=1 und mpathie=0 noch in die Datei wichtig haben möchte. Wie kann ich jetzt aus der Ursprungsdatei nur diese eine Variable auswählen, deren Name ja in einer ganz anderen Datei steht? Oder besteht die Möglichkeit obiges Macro so zu verändern, daß die Häufigkeiten gleich mit angegeben werden?

Uff, ich hoffe, das war halbswegs verständlich!

VG Elfriede

Hab selbst eine Lösung

Hab selbst eine Lösung gefunden! Sie ist zwar nicht schön, aber sie läuft:

%macro cart1cut(datei,var2,varlist1=,max=);
%let i=1;
%let var1=%scan(&varlist1, &i);
%do %while (&var1 ne);
proc freq data=&datei;
table &var1*&var2 /chisq out=test;
output chisq;
run;

data dazu;
length wert $9;
set _last_ (keep=_PCHI_ P_PCHI);
wert="&var1";
run;

data zwisch;
set test;
if &var1^=. and &var2=&max;
run;

proc transpose data=zwisch out=zwisch;run;

data zwisch;
set zwisch;
if _name_='COUNT';
keep col1 col2;
run;

data zwisch;
set zwisch;
rename col1=haeuf0 col2=hauef1;
run;

data dazu;
merge dazu zwisch;
run;

proc append base=merken data=dazu;run;

%let i=%eval(&i+1);
%let var1=%scan(&varlist1, &i);
%end;
%mend;

Die Ausgabe sieht dann so aus:

wert _PCHI_ P_PCHI haeuf0 hauef1

visuscale 27.674 0.00000 285 82
hba1c 50.682 0.00000 134 211
ydiab 144.306 0.00000 45 327
typdiab 20.867 0.00000 80 292
hypscale 2.637 0.10440 106 258
fette 14.127 0.00017 280 61

Wenn einer von Euch eine bessere Lösung hat, bin ich für Vorschläge sehr dankbar!

VG SAS-Fidi