Ich habe etwas Code von anderswo gestohlen, um alle Kombinationen von Variablen zu erstellen. Ich brauche das, um mehrere Regressionen zu erstellen und dann das Beste zu bestimmen. Ich mag die Ausgabe, da ich dann eine Zeile verwenden kann und alle Namen der Variablen an 1 Stelle haben.SAS Alle Kombinationen mit Makrovariable
Das Array funktioniert, wenn ich die Daten manuell eingeben, aber das muss über verschiedene Daten arbeiten und selbst die Variablen auswählen, so muss ich eine Makrovariable verwenden, um die Daten einzugeben. Dies sollte kein Problem sein, dies funktioniert mit anderen Datensätzen. Kann mir jemand sagen, wo ich falsch liege?
data test(keep=my_string);
length my_string $200.;
array a[4] $ ('new1' 'new2' 'new3' 'new4');
n = dim(a);
do k=1 to n;
do j=1 to comb(n,k);
call allcomb(j,k,of a[*]);
do i = 1 to k;
if i=1 then do; my_string="";counter=0;end;
counter=counter+1;
my_string=catx(" ",my_string, a[i]);
if counter=k then output;
end;
end;
end;
run;
Dieses nächste Element funktioniert nicht. Gibt mir nur fehlende Werte - aber es weiß, es braucht 127 ... Subs ist nur eine Makrovariable mit new1-new7 drin.
rsubmit;
data xx(keep=my_string);
length my_string $200.;
array a &subs;
n = dim(a);
do k=1 to n;
do j=1 to comb(n,k);
call allcomb(j,k,of a[*]);
do i = 1 to k;
if i=1 then do; my_string="";counter=0;end;
counter=counter+1;
my_string=catx(" ",my_string, a[i]);
if counter=k then output;
end;
end;
end;
run;
endrsubmit;
Ihre Hilfe wird sehr geschätzt.
J