分享

SAS系列30:SAS宏语言(三)

 松哥精鼎统计 2020-10-23
导读

      上一期介绍了宏字符函数、宏运算函数和宏引用函数,这一期我们继续介绍宏程序和宏语句


四、宏程序





       宏程序简称宏,是一个被储存的文本,TOKEN分解器可将其传送至编译器并执行。宏不是一个简单的文本,它可以通过控制语句、循环语句来控制文本的输出。宏还包含参数,通过调用不同的参数值可以多次重复使用宏,以简化程序的开发工作。一个宏程序被编译器执行,需要经过三个步骤:定义宏、编译宏和调用宏。

(一)定义宏

      程序最简单的格式如下:

        %MACRO JD;/*定义宏的关键字*/

                  文本; /*宏的主体信息*/

        %MEND JD;/*标志定义宏结束*/

      定义宏举例如下:

%MACRO makeds; DATA BOOK; SET xjf.ytdsales(WHERE=(SECTION="WEB DESIGN")); QTRSOLD=qtr(DATESOLD); RUN;%MEND makeds;

图10-11  日志窗显示宏定义结果

(二)调用宏 

       定义宏后,可用百分号“%”加宏名字即可调用:

%makeds;

图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.

SAS系列推文

【赠人玫瑰,手留余香】

----------------------------------------------

SAS系列29:SAS宏语言(二)

SAS系列28:SAS宏语言(一)

SAS系列27:线性回归

SAS系列26:双变量数据假设检验

SAS系列25:双向有序列联表检验

SAS系列24:单向有序列联表资料的假设检验

SAS系列23:列联表资料假设检验方法

SAS系列22:定性数据假设检验

SAS系列21:SAS统计推断(六)

SAS系列20:SAS统计推断(五)

SAS系列19:SAS统计推断(四)

SAS系列18:SAS统计推断(三)

SAS系列17:SAS统计推断(二)

SAS系列16:SAS统计推断(一)

SAS系列15:SAS数据可视化结果输出

SAS系列14:SAS数据可视化(三)

SAS系列13:SAS数据可视化(二)

SAS系列12:SAS数据可视化(一)

SAS系列11:SAS基础统计过程(三)

SAS系列10:SAS基础统计过程(二)

SAS系列09:SAS 基础统计计算过程

SAS系列08:SAS函数

SAS系列07:SAS数据整理(三)

SAS系列06:SAS数据整理(二)

SAS系列05:SAS数据整理(一)

SAS系列04:SAS数据导入

SAS系列03:SAS入门(二)之SAS编程语言基础

SAS系列02:SAS入门(一)

SAS系列01:统计分析航空母舰-SAS简介

----------------------------------------------

精鼎特邀

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多