Ich habe die folgenden Variablen: A_Bldg B_Bldg C_Bldg D_Bldg
. Ich möchte sie mit multiplizieren und das Ergebnis in einer neuen Variablen speichern, Sale_i
. Zum Beispiel A_Bldg * INTSF = Sale_A
, B_Bldg * INTSF = Sale_B
und so weiter.Makro, um Variablen zu durchlaufen und Ergebnisse zu speichern SAS
Mein Code ist:
%macro loopit(mylist);
%let n=%sysfunc(countw(&mylist));
%do J = 1 %to &n;
%let i = %scan(&mylist,&J);
data test;
set data;
sale_&i. = &i._Bldg * INTSF;
run;
%end;
%mend;
%let list = A B C D;
%loopit(&list);
Dies erzeugt nur Sale_D
, die der letzte Buchstabe in der Liste ist. Wie bekomme ich Sales A-C
angezeigt? Die ersten vier Codezeilen sind so, dass ich den Text A-D durchlaufen kann. Ich dachte darüber nach, es mit Arrays zu tun, wusste aber nicht, wie ich die Variablen auf Basis der A-D-Indikatoren auswählen sollte. Danke für Ihre Hilfe!
Das hat funktioniert! Danke für Ihre Hilfe! – user3910919