《sas宏编程技术》ppt课件

《sas宏编程技术》ppt课件

ID:36325225

大小:2.57 MB

页数:87页

时间:2019-05-09

《sas宏编程技术》ppt课件_第1页
《sas宏编程技术》ppt课件_第2页
《sas宏编程技术》ppt课件_第3页
《sas宏编程技术》ppt课件_第4页
《sas宏编程技术》ppt课件_第5页
资源描述:

《《sas宏编程技术》ppt课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第14章宏编程技术清华大学经管学院朱世武本章内容包括:概述;•宏变量;•宏;•宏参数;•宏表达式;•宏引用;•宏工具中的输入输出;•数据步接口程序;•宏程序语句和宏函数。概述宏工具是一种可以用来扩展SAS功能,减少普通工作文本输入量的SAS工具。宏工具可以给一段文本或SAS程序命名,并通过引用这个名称来使用这段程序或文本。宏工具的功能非常强大,使用宏工具来完成以下任务。使用宏变量实现文本替代;使用宏产生程序语句;使用宏循环及条件判断语句完成程序交互。宏变量定义宏变量用宏程序语句%LET来定义宏变量。

2、%letDSN=ResDat.class;例中,DSN是宏变量名,ResDat.class为宏变量DSN的值。引用宏变量在宏变量前加&来引用宏变量的值。例14.1引用宏变量A。%leta=ResDat.class;dataa;set&a;run;上段程序等价于:dataa;setResDat.class;run;例14.2宏处理器只能在双引号内进行替代。%leta=january;data;put"Thisisthetimeseriesplotfor&A";run;例中,在引号内引用宏变量的值时必须

3、用双引号。因为宏处理器只能在双引号内进行替代。606%leta=january;607data;608put"Thisisthetimeseriesplotfor&A";609run;ThisisthetimeseriesplotforjanuaryNOTE:数据集WORK.DATA1有1个观测和0个变量。NOTE:“DATA语句”所用时间(总处理时间):实际时间0.01秒CPU时间0.01秒例14.3多次引用宏变量。%leta=ResDat.class;datamale;set&a;ifsex='

4、M';procprint;title"SUBSETOF&A";datafemale;set&a;ifsex='F';procprint;title"SUBSETOF&A";run;例14.4改变宏变量的值。%letm=2000;%letn=1;dataa;setResDat.stk000002;whereyear(date)=&mandmonth(date)=&n;procgplotdata=a;title2"&m年&n月份收盘价时序图";plotclpr*date=1;symbol1v=stari

5、=joinr=1c=red;run;例中,改变宏变量的值,如:%LETN=2,3,4,5,...,12可以分别得到12个月的时序图。不过,更好的方法是用宏循环来实现这里的要求。例14.5宏变量的值为一段完整的SAS程序段。%letplot=%str(procgplotdata=a;plotclpr*date=1;symbol1v=stari=joinr=1c=red;run;);例中,必须使用%STR函数围住宏变量的值,在以后的程序中可以用&PLOT来引用这段程序。%letm=2000;%letn=

6、1;dataa;setResDat.stk000002;whereyear(date)=&mandmonth(date)=&n;&plot;title2"&m年&n月份收盘价时序图";run;例中,如果不执行宏&PLOT步的程序时,可将其设定为空值(%LETPLOT=;)。例14.6宏变量的嵌套引用。%letm=2000;%letn=1;%letxvar=date;%letyvar=clpr;%letplot=%str(procgplotdata=a;title2"&m年&n月份收盘价时序图";pl

7、ot&yvar*&xvar=1;symbol1v=stari=joinr=1c=red;run;);dataa;setResDat.stk000002;whereyear(date)=&mandmonth(date)=&n;run;&plot;procprint;title"&m年&n月份收盘价";run;如何隔开宏变量引用和文本在混合使用宏变量引用和文本的时候,会遇到宏变量后面紧跟着文本的情况。如定义宏变量name后,当使用&name1,&name2时,如果不定义name1和name2这两个宏变量

8、,系统就会提示这两个宏变量并不存在,因为在SAS识别宏变量的时候,自动将name1和name2当成了宏变量的名称。在宏的引用过程中,当词段扫描器识别一个宏变量名称时,从&开始直到遇到一个SAS名称中不允许出现的字符为止。所以空格等一些不允许出现在SAS名称中的字符就可以作为分隔符出现,但是为了不显示这些分隔符,一般使用句号来作为分隔符使用。例14.7隔开宏变量引用和文本。%letname=Resdat;%PUT&name^1;%put&name.1;%put&name

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。