私は以下の変数を持っています:A_Bldg B_Bldg C_Bldg D_Bldg
。 でそれらを掛け、その結果を新しい変数Sale_i
に保存したいと思います。たとえば、A_Bldg * INTSF = Sale_A
,B_Bldg * INTSF = Sale_B
などとなります。変数をループして結果を格納するマクロSAS
私のコードは次のとおりです。
%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);
これは、リスト内の最後の文字である、Sale_D
を生成します。 Sales A-C
を表示させるにはどうすればよいですか?最初の4行のコードは、テキストA〜Dをループすることができるためです。私は配列でそれをすることを考えましたが、A-Dインジケータに基づいて変数を選択する方法はわかりませんでした。ご協力いただきありがとうございます!
これは機能しました。ご協力いただきありがとうございます! – user3910919