SAS宏变量生成的方法:
%let %global %input %into(sql) %local %macro Symput symputn %windows
全局变量包括:
1 除syspbuff外的所有自动生成的变量
2 所有宏外生成的变量
3 %global定义的变量
4 Call symput生成的变量(这个最后一段详细解释)
局部变量包括:
1 所有的宏参数
2 %local 定义的变量
3 在宏内由%do %let等生成的变量
1 全局变量在宏内赋值,赋值能成功,且该变量依然为全局变量:
例:
%let new=inventry;
%macro name1;
%let new=report;
%mend name1;
New的值为report,且依然为全避变量。
2 在宏内用%local可强行生成局部变量:
程序:
%let new=inventry;
%macro name1;
%local new;
&new =report;
%put &new;
%mend name1;
%let %global %input %into(sql) %local %macro Symput symputn %windows
全局变量包括:
1 除syspbuff外的所有自动生成的变量
2 所有宏外生成的变量
3 %global定义的变量
4 Call symput生成的变量(这个最后一段详细解释)
局部变量包括:
1 所有的宏参数
2 %local 定义的变量
3 在宏内由%do %let等生成的变量
1 全局变量在宏内赋值,赋值能成功,且该变量依然为全局变量:
例:
%let new=inventry;
%macro name1;
%let new=report;
%mend name1;
New的值为report,且依然为全避变量。
2 在宏内用%local可强行生成局部变量:
程序:
%let new=inventry;
%macro name1;
%local new;
&new =report;
%put &new;
%mend name1;