上一期介绍了宏字符函数、宏运算函数和宏引用函数,这一期我们继续介绍宏程序和宏语句。
宏程序简称宏,是一个被储存的文本,TOKEN分解器可将其传送至编译器并执行。宏不是一个简单的文本,它可以通过控制语句、循环语句来控制文本的输出。宏还包含参数,通过调用不同的参数值可以多次重复使用宏,以简化程序的开发工作。一个宏程序被编译器执行,需要经过三个步骤:定义宏、编译宏和调用宏。 宏程序最简单的格式如下: %MACRO JD;/*定义宏的关键字*/ 文本; /*宏的主体信息*/ %MEND JD;/*标志定义宏结束*/ 定义宏举例如下: %MACRO makeds; DATA BOOK; SET xjf.ytdsales(WHERE=(SECTION="WEB DESIGN")); QTRSOLD=qtr(DATESOLD); RUN; %MEND makeds; 图10-11 日志窗显示宏定义结果 定义宏后,可用百分号“%”加宏名字即可调用: 图10-12 日志窗显示宏调用结果 当提交一个宏的定义,且经宏处理器编译无误后,SAS会加以存储,方便下次调用,可以使用以下代码实现: LIBNAME makeds 'E:\MySAS\MACRO'; OPTIONS MSTORED SASMSTORE=makeds; %MACRO makeds / store; DATA BOOK; SET xjf.ytdsales(WHERE=(SECTION="WEB DESIGN")); QTRSOLD=qtr(DATESOLD); RUN; %MEND makeds; 图10-13 日志窗显示永久宏存储结果
以上程序执行后,在“E:\MySAS\MACRO”的文件夹中有一个名为”sasmacr”的文件。调用永久存储的宏可通过以下代码完成: LIBNAME makeds 'E:\MySAS\MACRO'; OPTIONS MSTORED SASMSTORE=makeds; %makeds; 宏语句可以使程序按照用户的要求判断执行、跳转执行以及循环执行。很多宏语句都与之相匹配的SAS语句,同样命名的语句的语法和功能通常是相同或非常相似。宏语句可分为两种类型: ♦ 可用于开放代码或者是宏程序内部(详见表10-10) ♦ 仅用于一个宏程序内部(详见表10-11) 表10-10 可用于开放代码或宏程序内部的宏语句 表10-11仅用于宏程序内的宏语句 下一期介绍宏语句编程应用。
整理不易,欢迎点亮再看哦!
参考文献: [1] 薛富波, 张文彤, 田晓燕, 等. SAS8.2统计应用教程[M]. 北京:兵器工业出版社, 2004 [2] 夏庄坤, 徐唯 , 潘红莲, 等. 深入解析SAS——数据处理、分析优化与商业应用[M]. 北京:机械工业出版社, 2014. [3] 高惠璇. SAS系统Base SAS软件使用手册[M]. 北京:中国统计出版社, 1997. [4] 姚志勇. SAS编程与数据挖掘商业安全[M]. 北京:机械工业出版社, 2010. [5]Michele M. Burlew. SAS Macro Programming Made Easy[M]. Cary, NC: SAS InstituteInc., 2006.
|