我想用宏做循环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