[軟體程式類別]:
SAS
[程式問題]:
call symput
[軟體熟悉度]:
中等
[問題敘述]:
請問我有一組數據如下,每個ID各有Q1~Q3三個變數,欄位string說明要把
哪幾個變數相加
ID Q1 Q2 Q3 string
1 3 1 2 sum(Q2,Q3)
2 1 2 3 sum(Q1,Q2,Q3)
3 4 1 3 sum(Q1,Q2)
現在希望增加一欄位score,依照
string的指示來加總可以得到如下的值
ID score
1 3
2 6
3 5
目前利用call symput程式如下,但會變成每個人的score都統一以最後一人(ID3)的
string為準,即每個人的score都是Q1+Q2
Data compute;
set data1;
call symput('sum', string);
score = ∑
Run;
ID score(錯)
1 4
2 3
3 5
想請板上高手指點一下,該怎麼修正? 謝謝
※ 編輯: edsmom (211.76.175.169), 06/16/2016 13:59:39
1F:→ paselalps: call symput得到的macro variable不能在同一個data 06/17 23:31
2F:→ paselalps: step裡面使用,有誤請指正 06/17 23:32