- 1、本文档共26页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第3章 SAS宏编程 学习目标 掌握宏变量的定义以及引用; 熟悉宏变量的特殊用法; 掌握宏的定义; 掌握宏的调用; SAS宏功能 将一个变量,一段程序或者一个文本命名,供以后调用,是用于扩充和制做用户化SAS系统的工具;利用宏功能用户可以减少在完成一些共同任务时必须输入的文本量。当用户在某个SAS程序中使用宏功能时,这个宏功能产生所需要的SAS语句和命名,SAS系统的其余部份接受这些语句和命令。 SAS宏的主要功能 获取SAS的系统信息。SAS在启动时就创建了一些自动宏变量,用以存储当前SAS进程启动的日期,时间,版本号及其它信息,用户可以在任何情况下使用这些宏变量。 有条件的执行数据步和过程步。例如每天提交一份生产情况的详细报告,每周五增加一份汇总报告。使用宏功能每天运行同一个程序就可以实现上述任务。 开发交互式系统。使用SAS宏语言的%WINDOW语句及一些基本的编程语句可开发交互式用户界面。 SAS宏的主要功能 产生与数据无关的SAS程序,但可展示与数据相关的结果。宏功能可保持SAS程序的独立性和移植性。一段程序在多种情况下均可运行,得到期望的结果。 在不同的SAS数据步和过程步之间传递数据。SAS宏变量可在SAS的任何地方被引用,具有全局性,所以成为不同过程间传递数据最方便的手段。 重复执行SAS程序码。凡用到SAS宏语言的变量和语言成分,都以符号%或开始。当SAS程序提交后,在编译阶段,系统对程序逐词扫描过程中,凡遇到%或开始的词,就启动宏语言处理器对此进行处理。 宏变量 宏变量属于SAS宏语言,但不同于DATA步变量。可以在SAS程序除数据行之外的任何地方定义并使用宏变量。一个DATA步变量仅与一个SAS数据集有联系,而宏变量不依赖于SAS数据集。宏变量与数据步中变量的主要区别是,数据步中变量的值往往与被处理观测有关,而宏变量有唯一确定的值,一个宏变量存放的值保持不变直到被修改。 宏变量 宏变量具有唯一确定的值,可以存储字符串,是全局变量。可以在数据步中被引用,但不能在数据步中用赋值语句定义。引用时,在变量名前加“”号,引用效果是变量值代替变量名。宏变量在引用时放在单引号之间不会被解读,只能在双引号之间。 宏变量的产生 SAS系统包含两种类型的宏变量: 自动宏变量,由SAS系统提供; 用户定义的宏变量,由用户在程序中定义。 自动宏变量 在SAS进程开始时,或程序运行过程中由系统自动创建,在SAS退出前一直保持有效,是全局宏变量,能在SAS任何地方被引用。以下是一些主要的自动宏变量: SYSDATE?? SAS进程开始的日期; SYSDATE9 以Date9.格式显示SAS进程开始的日期; SYSTIME?? SAS进程开始的时间; SYSSCP??? 使用的操作系统; SYSDAY??? SAS进程开始是为星期几; SYSVER??? SAS的版本; SYSLAST?? 必威体育精装版创建的SAS数据集的名字;??? 定义宏变量 有两种方式定义宏变量:%LET和call symput。定义宏变量并分配一个值给宏变量的最简单方法是使用宏程序语句%LET。格式如下: %LET 变量名=变量值; 另一个语句就是call symput,其格式如下: call symput(变量名,变量值); 宏变量的引用 为了引用一个宏变量的值,放一个号在宏变量名字的前面 模式name成为宏变量的引用。用户创建宏变量之后,可以在SAS程序中引用它。 %let exa=score; title “display of student exa”; 宏处理器用宏变量EXA的值替代exa,SAS系统看到的是下面的TITLE语句: title “display of student score”; 多次引用宏变量 用户根据SAS程序中的需要可以多次引用宏变量。宏变量的值保持不变直到其被修改。 每次出现引用exa,宏处理器用score替代它。 改变宏变量的值 在上例中,如果用户想要改变SAS数据集名字,可以在它出现的这段程序中通过改变宏变量的值来实现 嵌套宏变量引用 可以使用嵌套的宏变量引用来改变一个长的宏变量值而不必重新定义这个变量。例如,为了改变在PROC PLOT步中的两个画图变量,在PLOT的这个值中使用宏变量引用。 宏的定义 宏是一个被存贮的文本,用一个名字识别它。最简单的宏就像一个宏变量一样工作,但复杂的宏可以完成许多宏变量不能做的事。定义宏的语句格式为: %MACRO 宏名称; ???????? 宏文本 %MEND 宏名称;(默认存放在work.sasmacr中); %MACRO语句是每一个宏的开始,同时必须给出这个宏的名字。宏名字的命名准则与SAS名字一样。宏的文本也就是宏的内容,宏内的字符串称为固定文本或模
文档评论(0)