macro是在sas中很重要的一个内容,面试的时候常常会被问到。但是作为新手,一开始我们很少有机会能接触到使用Macro的内容。Macro在中文中翻译为宏,我个人的理解是,它是一个可以对于整个sas宏观所使用的程序,也正如它的名字一样,既不属于data step也不属于proc step。当我们在做一些重复的只需要改变操作对象的步骤时,可以利用宏来减少繁琐又重复的过程。这种感觉就像在sas中创建了一个函数,通过改变函数中的自变量而得到不同的结果与输出。
一. 定义宏变量与宏
1.定义宏变量
有两种方式定义宏变量:%LET和call symput。定义宏变量并分配一个值给宏变量的最简单方法是使用宏程序语句%LET。格式如下:
%LET 变量名=变量值;
另一个语句就是call symput,其格式如下:
call symput(变量名,变量值);
%let N=30;
data temp;
percent=(2+17+3)/&N;
run;
2.定义宏
定义宏的语句格式为:
%macro 宏名称(参数1,参数2,参数3);
宏文本
%mend 宏名字;
举个例子:
%macro test(sex);
data temp1;
set temp;
where sex=“&sex”;******注意此处要使用双引号而不是单引号*****;
run;
%mend test;
%test(female)
%test(m