以下のSASコードを書くことによって表2を作成しようとしましたが、私が得たものは表1です。私が逃したものは分かりませんでした。非常に感謝していただきありがとうございますSAS SymputXとSymget Function
&counter = 4
data new;set set1;
total = 0;
a = 1;
do i = 1 to &counter;
call symputX('a',a);
total = total + Tem_&a.;
a = symget('a')+1;
call symputX('a',a);
end;
run;
Table 1
ID Amt Tem_1 Tem_2 Tem_3 Tem_4 total
4 500 1 4 5 900 3600
5 200 50 100 200 0 0
9 50 40 0 0 0 0
10 500 70 100 250 0 0
Table 2
ID Amt Tem_1 Tem_2 Tem_3 Tem_4 total
4 500 1 4 5 900 910
5 200 50 100 200 0 350
9 50 40 0 0 0 40
10 500 70 100 250 0 420
ありがとう、ジョー! –
@Joeおそらく、ハードコードされた上限をマクロ変数リファレンスで置き換えるか、マクロ変数リファレンスを削除する必要があります。今のところ、COUNTERが4でなければ問題が発生します。 – Tom
@tomに同意します。なぜなら、私は並列コードを表示するために元のコードからコードをずらすことではなかったからです。 – Joe