《SAS宏编程》PPT课件.ppt_第1页
《SAS宏编程》PPT课件.ppt_第2页
《SAS宏编程》PPT课件.ppt_第3页
《SAS宏编程》PPT课件.ppt_第4页
《SAS宏编程》PPT课件.ppt_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第3章 SAS宏编程,学习目标,掌握宏变量的定义以及引用; 熟悉宏变量的特殊用法; 掌握宏的定义; 掌握宏的调用;,SAS宏功能,将一个变量,一段程序或者一个文本命名,供以后调用,是用于扩充和制做用户化SAS系统的工具;利用宏功能用户可以减少在完成一些共同任务时必须输入的文本量。当用户在某个SAS程序中使用宏功能时,这个宏功能产生所需要的SAS语句和命名,SAS系统的其余部份接受这些语句和命令。,SAS宏的主要功能,获取SAS的系统信息。SAS在启动时就创建了一些自动宏变量,用以存储当前SAS进程启动的日期,时间,版本号及其它信息,用户可以在任何情况下使用这些宏变量。 有条件的执行数据步和过程

2、步。例如每天提交一份生产情况的详细报告,每周五增加一份汇总报告。使用宏功能每天运行同一个程序就可以实现上述任务。 开发交互式系统。使用SAS宏语言的%WINDOW语句及一些基本的编程语句可开发交互式用户界面。,SAS宏的主要功能,产生与数据无关的SAS程序,但可展示与数据相关的结果。宏功能可保持SAS程序的独立性和移植性。一段程序在多种情况下均可运行,得到期望的结果。 在不同的SAS数据步和过程步之间传递数据。SAS宏变量可在SAS的任何地方被引用,具有全局性,所以成为不同过程间传递数据最方便的手段。 重复执行SAS程序码。凡用到SAS宏语言的变量和语言成分,都以符号%或 宏处理器执行宏STU

3、DY,把宏里面的固定文本替代到TITLE语句中。TITLE语句变为: Title “Display of school Student score”;,宏的调用,SAS程序可以包括任意多个宏,且在一个程序中可以多次调用一个宏。对于简单文本的阐明,使用宏变量比定义一个宏更有效。然而,当任务比较复杂时,宏比宏变量更有优势。 把宏变量和宏结合在一起,将给出一种用宏工具编程的强有力的方法。下面我们将介绍在宏中使用宏变量的多种方法。,宏参数,可以定义宏变量作为%macro语句的一部分,如: %macro printClass(class); proc print data=,宏参数,对参数分配的值只在这

4、个宏执行过程中有效。因此第二次调用宏时,还是要给出参数的值。宏参数是局部宏变量的一个例子。而宏变量是从用户创建它们直到SAS作业或SAS会话结束都存在;故前面介绍的宏变量为全局宏变量。 使用参数有以下几个优点: 用户可以少写几个%LET语句; 调用宏时不需要知道这些参数的名字,只需要提供这些值的类型; 使用参数可以保证该变量在宏之外的程序部份不会被引用。,宏的循环结构,宏的循环语句有三种类型,分别是 宏中DO循环语句的格式为: %do 指标变量=始点 %to 终点(BY 增量); 文本或宏程序语句; %end; %do %while(表达式); /*先判断再执行*/ 文本; %end; %do

5、 %until(表达式); /*先执行再判断*/ 文本; %end;,宏的循环结构,以生成重复的文本段为例说明如何使用宏的循环结构。假定用户想生成一系列名字用于某个SAS语句。可以写一个宏来产生具有相同前缀的一系列名字。 用示例说明宏CREATE用重复%DO循环开生成名字:,本章小节,SAS宏功能将一个变量,一段程序或者一个文本命名,供以后调用,是用于扩充和制做用户化SAS系统的工具;利用宏功能用户可以减少在完成一些共同任务时必须输入的文本量。介绍了SAS宏的主要功能,包括:获取SAS的系统信息、有条件的执行数据步和过程步、开发交互式系统、产生与数据无关的SAS程序但可展示与数据相关的结果、在

6、不同的SAS数据步和过程步之间传递数据和重复执行SAS程序码。我们对SAS宏功能作略微了解。,本章小节,宏变量属于SAS宏语言,但不同于DATA步变量。宏变量具有唯一确定的值,可以存储字符串,是全局变量。SAS系统包含两种类型的宏变量:自动宏变量,由SAS系统提供;用户定义的宏变量,由用户在程序中定义。有两种方式供用户定义宏变量。为了引用一个宏变量的值,放一个 打开这一目标的语句是: Ods listing;,缺省的Listing目标,由于缺省的情况下,LISTING是唯一开放的目标,所以上述程序关闭这一目标后,没有传送目标处于开放的状态,输出结果就无法传送。为此可使用语句“Ods listi

7、ng;”将LISTING目标打开,这时就恢复缺省的状态。这以后再提交过程PRINT就能正常显示输出结果。 注意:由于ODS语句是全局语句,所以它设定的功能一直保持有效,直至用同类语句改变设置或进程结束为止。,缺省的Listing目标,传送目标LISTING也可将结果存入文本格式的文件,格式如下: Ods listing file=文件地址|逻辑文件名; 使用这一句后,所有的输出结果都将以文本格式写入指定的文件。例如: ods listing file=G:a.txt; 运行此语句后所有的输出结果都将存贮于G:中的a.txt文件中。,ODS TRACE语句,ODS将每个过程步的输出结果根据其内容

8、的属性分为一个或多个对象。而且使用ODS语句可以对这些对象进行选择,从而可以只传送选定的部分对象。 为了对某个过程输出的对象进行选择,首先必须查询这个过程的输出包含哪些对象。由于一个过程输出的对象依赖于使用的语句和选项。例如,许多过程使用了BY语句,其输出对象就会增加许多。所以进行查询是必要的。要查询某个过程的输出对象可提交ODS TRANCE语句,ODS OUTPUT语句,部分过程也可以将SAS输出结果生成SAS数据集。但仍有许多过程无法做到这一点。而且,生成的数据集信息也不完全。用ODS OUTPUT语句可以为多数过程的输出对象建立SAS数据集,它可以包含输出报告中的每个统计量。,ODS

9、RTF语句,RTF格式文件可包含表格格式和字符属性的信息,可为很多文字处理软件阅读和编辑,所以也是一种广泛使用的文件格式。要将输出对象存为RTF格式文件的ODS语句格式为: Ods rtf file=文件物理位置|逻辑文件名 style=格式;,ODS HTML语句,在互联网上,可以浏览包含文字和图形的文件。这些文件大多是用HTML(超文本标记语言)格式的。HTML提供了一种与跨平台的展现文本和图形的语言,用这种语言的文件格式称之为HTML格式。在网络信息传递中这是最广泛应该的格式。 由于HTML格式的文件可以是ASCII文本文件,所以用一般的文本编辑器也可以生成HTML文件,不过不一定有效。

10、在SAS系统中可以将所有输出结果自动生成HTML文件通过网络浏览器浏览。利用ODS将SAS的输出结果生成HTML格式文件,就是把HTML作为ODS的传送目标,所以是较为方便和直接的。,ODS HTML语句,其格式语句为: Ods html body=文件位置和名称 ; SAS程序 ; Ods html close; 其中,body=指定生成的HTML文件存放的位置和名称。若这里只有文件的名称而没有路径,则文件将存入系统运行时的当前子目录下。,本章小节,输出结果传送至LISTING目标是缺省的状态,也就是:文本结果在OUTPUT窗口显示;而图形的结果在GRAPH窗口显示。在这一状态下,若要关闭L

11、ISTING目标,可提交ODS语句(Ods listing close;)。由于ODS语句是全局语句,所以它设定的功能一直保持有效,直至用同类语句改变设置或进程结束为止。 为了对某个过程输出的对象进行选择,首先必须查询这个过程的输出包含哪些对象。要查询某个过程的输出对象可提交ODS TRANCE语句。在ODS中,对不同的传送目标,可以挑选不同的输出对象。ODS SELECT和ODS EXCLUDE语句分别用于各个传送目标选择和剔除输出对象。,本章小节,部分过程也可以将SAS输出结果生成SAS数据集。但仍有许多过程无法做到这一点。而且,生成的数据集信息也不完全。用ODS OUTPUT语句可以为多数过程的输出对象建立SAS数据集,它可以包含输出报告中的每个统计量。,本章小节,RTF格式文件可包含表格格式和字符属性的信

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论