SAS/BASE提供了宏(MACRO)功能,通过创建宏变量和宏能够方便地完成替代重复文本,避免繁复分析操作;获取系统信息;产生程序执行过程中的参数;用宏变量在数据步和过程步间传递数据;产生与数据无关的程序,使程序具有可移植性。 1、SAS宏变量 宏变量属于SAS宏语言,是可在SAS程序的除数据行以外的任何地方定义和使用的变量,它独立于数据集。宏变量的值保持不变,直到被明确改变。宏变量分成两类:一是用户定义的宏变量,二是SAS系统自带的自动宏变量。 一般使用宏语句%LET定义宏变量,它的一般形式如下: 宏变量的命名遵从SAS命名规则,它的值可以是固定的字符串、其他宏变量的引用、宏函数和宏调用。 引用一个宏变量的值的格式为:&宏变量名。 SAS的自动宏变量在系统启动时被创建,可以在SAS程序任何地方被引用,且在SAS系统退出前一直保持有效,常用的自动宏变量: 自动宏变量 | 作用 | 范例 | SYSDATE | 本次SAS启动的日期 | 如19AGU09 | SYSDAY | 本次SAS启动的星期 | 如Thursday | SYSTIME | 本次SAS启动的时间 | 如15:41 | SYSLAST | 最新创建的数据集名字 | 如chap2.example2_4 | SYSDSN | 最新创建的数据集两部分名字 | 如chap2 example2_4 | SYSVER | 使用SAS软件的版本 | 如9.2 | SYSSCP | 返回用户主机系统的缩写 | 如Liurong |
2、创建和调用宏 SAS的宏函数简称宏,它可以通过控制和循环语句来控制文本的输出,用户还可以定义宏参数实现宏的多次调用。宏的一般定义格式如下: - %MACRO 宏名称(宏参数);
- 宏实体;
- %MEND 宏名称;
复制代码%MACRO语句标志着宏的开始,紧接的是用户自定义的宏名称,根据实际需求可以定义宏参数,将宏执行过程中需要调用的宏变量传递进去。宏实体可为任意一个文本,SAS语句或SAS步及宏变量、函数和这些实体的组合。%MEND标志宏的结束。 SAS中调用宏的形式如下: |