data tempx1;
input ID;
cards;
1
2
3
4
;
run;
data tempx2;
set tempx1;
array diag{4} d1 d2 d3 d4 (1,2,3,4);
do i = 1 to 4;
if diag[i] = ID then diag[i] = 1; else diag[i] = 0;
end;
drop i;
run;
我想要1在數組的對角線上,我在這裏做錯了什麼?如何根據SAS中的另一個變量修改數組值?
感謝您的及時幫助!雖然我已經簡化了我的問題,但你說什麼初始值只能設置一次纔有意義。我的初始值實際上並不是像1,2,3這樣的好孩子,而是一些不規則的數字或字符串,所以我創建一個宏變量並首先使用類似於您添加的代碼的方式設置diag [i]的值,並且然後做比較。問題解決了!這裏的教訓是關於初始值只設置一次!!謝謝! – Joven