我想用宏做循環PROC IML內像這樣:DO循環的SAS-IML
%Let Tab1=FirstTable;
%Let Tab2=SecondTable;
%Let Tab3=ThirdTable;
*&Tab1-3 have been initialised as sas datasets;
proc iml;
* This works;
use &Tab1;
read all into Mat3;
print Mat3;
* This doesn't work;
%Macro Define_mx;
%do i=1 %to 2;
use &Tab&i;
read all into Mat&i ;
%end;
%Mend Define_mx;
%Define_mx;
*The two matrixes have not been initialised;
print Mat1;
print Mat2;
quit;
在現實中,我將不得不像初始化50點矩陣所以do循環是必要的。 我不明白爲什麼循環無法看到&選項卡&我作爲一個宏變量。 我也嘗試了使用substr來連接變量名稱的正常(非宏)do循環的解決方法,但它也不起作用。我在這裏錯過了什麼?
Tabs上的雙重amperstand ...我是個白癡。 – Pane
太棒了!請提交您的解決方案作爲答案並接受它。這絕對是一個非常常見的錯誤,值得在StackOverflow中作爲一個解決方案:) – Joe