/*方式一*/
%let x=5; %let y=test;
%put &x &y;/*方式二*/
data _null_; call symput('x',5);
call symput('y','test');
run;
%put &x &y;/*方式三*/ /*若有多条记录,只取第一条的值*/
proc sql noprint;
select min(weight),max(weight) into:minw,:maxw
from sashelp.class;
quit;
%put &minw &maxw;/*根据创建多个宏变量并赋值,超过记录数范围的不会创建*/
proc sql noprint;
select name, age into :name1 - :name99999999,:age1 - :age99999999 from sashelp.class;
quit;
%put &sqlobs;
%put &name1 &age1;
%put &name2 &age2;
%put &&name&sqlobs &&age&sqlobs;
%put &name100 &age100;/*这两个宏变量并没有创建,执行时会报warning*/
/*拼接字段值,赋给一个宏变量*/ proc sql noprint inobs=5; select name into:names separated by ',' from sashelp.class; quit;%pu

本文介绍了SAS中宏变量的三种创建方式:直接声明、通过data步的symput函数以及使用proc sql。详细讲解了每种方法的用法,并通过示例展示了宏变量的赋值和使用,包括如何从数据集中提取值到宏变量。同时,讨论了不同方法下宏变量的限制和注意事项,如当数据记录数超出预设范围时,宏变量的创建情况。

2万+

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



