SAS间接引用

SAS间接引用,sas,Sas,有人能给我举个例子,说明对宏变量的间接引用是如何工作的,以及为什么要使用它们吗?我仍然不明白,当您可以直接引用宏变量时,为什么还要使用间接引用。当您需要通过代码(通常是宏代码)生成引用时,可以使用间接引用(因为直接引用通常可以通过其他代码创建)。例如: %let n1=5; %let n2=3; %macro doit(whichn=); %put &&n&whichn..; %mend doit; %doit(whichn=1); %doit(whichn=2);

有人能给我举个例子,说明对宏变量的间接引用是如何工作的,以及为什么要使用它们吗?我仍然不明白,当您可以直接引用宏变量时,为什么还要使用间接引用。

当您需要通过代码(通常是宏代码)生成引用时,可以使用间接引用(因为直接引用通常可以通过其他代码创建)。例如:

%let n1=5;
%let n2=3;
%macro doit(whichn=);
%put &&n&whichn..;
%mend doit;

%doit(whichn=1);
%doit(whichn=2);
通常在宏循环中使用此选项,例如

%do x=1 to 2;
  %put &&n&x..;
%end;
循环通过n1和n2