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;

本文详细介绍了SAS宏变量的作用域,包括全局变量和局部变量的定义及特性。通过示例展示了全局变量如何在宏内赋值保持其全局性质,以及如何使用%local创建局部变量。同时解释了Call symput函数在不同情况下创建变量的局部或全局性。
最低0.47元/天 解锁文章
6141

被折叠的 条评论
为什么被折叠?



