- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SAS语言的宏功能SAS语言的宏功能
SAS宏编程技术
本章教学目的:
了解SAS宏的功能和特点
掌握SAS宏变量的定义与调用
掌握SAS宏及宏参数的定义与调用
掌握SAS宏语言的流程控制结构
了解宏与数据步的信息交换子程序
1.概述
宏工具是一种可以用来扩展SAS功能,减少普通工作文本输入量的SAS工具。宏工具可以给一段文本或SAS程序命名,并通过引用这个名称来使用这段程序或文本。
宏工具的功能非常强大,使用宏工具来完成以下任务。
使用宏变量实现文本替代;
使用宏产生程序语句;
使用宏循环及条件判断语句完成程序交互。
实例:(教材P70的程序实例) 在工作目录下(d:\mysasfile)
可能大家并不明白这个程序,先从基本的概念讲起。
2.宏变量
宏变量的用途是替代SAS程序文本,即通过一段文本赋值给一个宏变量,从而可以很灵活地通过引用这个宏变量来达到使用这段文本的效果。宏变量值的最大长度是65534个字符。宏变量的长度是由自身的文本长度决定的,而不是通过设定得到的,所以宏变量的长度是随着文本的长度而任意发生变化。
宏变量按照使用范围分类:全局宏变量和局部宏变量。
全局变量可以在SAS对话运行期间使用并且可以在程序的任何地方引用
局部变量则只能在创建该局部变量的宏中使用,在这个宏之外,这个局部变量就没有任何意义。
2.1定义宏变量
最简单定义宏变量的方式是使用程序语句%LET。
格式: %LET 宏变量名=值;
如: %let dsn=Sasuser.class;
例中,dsn是宏变量名,Sasuser.class为宏变量dsn的值。如果宏变量dsn已经存在则其值会被替换掉.
2.2引用宏变量
宏变量定义以后,可以通过在其名称前使用来对其引用。
例1:引用宏变量a的程序段:
上段程序等价于:
data a;
set Sasuser.class;
run;
例2:在带有引号的文本中引用宏变量时,需要将这个文本字符串用双引号括起来。如:
注:在引号内引用宏变量的值时必须用双引号。因为宏处理器只能在双引号内进行替代。
例3:多次引用宏
例4:宏变量的值为一段完整的程序段。
注:(1)必须使用%str( )函数围住宏变量的值,以后用d来引用此段程序。
(2)此例中使用了宏变量嵌套。
2.3 显示宏变量的值
显示宏变量的最简单方法是使用%put 语句 ,它将文本输出到SAS日志窗口。
格式:%put 宏变量名 | 其它文本text;
2.4 如何隔开宏变量引用和文本
在混合使用宏变量引用和文本的时候,会遇到宏变量后面紧跟着文本的情况。 如定义宏变量name后,当使用name1,name2时,如果不定义name1和name2这两个宏变量,系统就会提示这两个宏变量并不存在,因为在SAS识别宏变量的时候,自动将name1和name2当成了宏变量的名称。
在宏的引用过程中,当词段扫描器识别一个宏变量名称时,从开始直到遇到一个SAS名称中不允许出现的字符为止。所以空格等一些不允许出现在SAS名称中的字符就可以作为分隔符出现,但是为了不显示这些分隔符,一般使用句号来作为分隔符使用。
日志窗口信息:
2.5 间接引用宏变量
前面提到的使用变量名来引用宏的方式是直接引用,有时还会用到很有用的间接引用方式。如对一系列的宏变量引用,如data1,data2, data3, 这一系列中部分文本是固定的名称,而另一部分是变化的数字。这时就可以采取间接引用方式。
3.宏
宏是被编辑过可以从SAS程序中调用的程序。同宏变量一样,一般可以使用宏来产生文本。但是宏还有其它一些功能,如宏的一些判断语句可以控制文本何时何地输出,宏可以包含参数,通过改变相应的参数来多次使用这个宏。
3.1宏的定义
一般格式为:
%Macro 宏名;
…宏文本;
%Mend 宏名;
说明:
%macro语句表示开始一个宏定义,并给宏规定一个名称;
宏的文本可以是SAS语句和程序、宏变量、宏函数或宏语句。
%Mend语句表示宏的结束,可以在mend后面加宏名,也可不加。
当一个宏被提交时,系统会对它进行宏编译,但并不执行。检查宏语句的语法,若有错误在Log窗口中显示。
3.2 宏的调用
用一个百分号%加宏名字就可以调用一个宏。
例8:宏的定义与调用
4.宏参数
宏变量和宏结合在一起是一种强有力的编程方法,但实际中更常用的是宏参数。
定义带参数的宏的一般形式为:
%macro 宏名称(参数1,参数2,….);
…宏文本;
%mend;
说明:其中参数列是逗号分开的参数名,参数列中提到的参数在宏文本中作为宏变量引用
调用带参数的宏的一般形式为:
%宏名称(参数1,参
您可能关注的文档
- RW7eCh10RW7eCh10.doc
- RZ10改参数RZ10改参数.doc
- R中包的操作R中包的操作.doc
- RFID图书馆(易化)RFID图书馆(易化).doc
- R语言文本挖掘R语言文本挖掘.doc
- RZ-空分装置试车方案RZ-空分装置试车方案.doc
- RTX问题汇总RTX问题汇总.doc
- S 版 语 文 第 十 册 教 案S 版 语 文 第 十 册 教 案.doc
- r教育均衡调查r教育均衡调查.doc
- S103冬季施工方案S103冬季施工方案.doc
- 中国普通硅酸盐水泥项目创业投资方案.docx
- 中国普通马桶盖项目创业投资方案.docx
- 中国普通刨花板项目创业投资方案.docx
- 中国七彩夹层玻璃项目创业投资方案.docx
- 四川省洪雅青衣江元明粉有限公司行业竞争力评级分析报告(2023版).pdf
- 苏教版高中化学选择性必修3有机化学基础精品课件 专题5 药物合成的重要原料——卤代烃、胺、酰胺 第一单元 卤代烃-微专题7 卤代烃的形成及其在有机合成中的“桥梁”作用.ppt
- 中国嵌入式衣柜项目创业投资方案.docx
- 中国平流式沉淀池项目创业投资方案.docx
- 中国七彩夹层玻璃市场竞争态势及投资规划建议报告项目创业投资方案.docx
- 中国嵌入式红酒柜项目创业投资方案.docx
文档评论(0)