SAS学习笔记43 宏语句
流程控制
%GOTO语句与%label语句是结合起来使用的。首先通过%label语句定义一个位置,使用%GOTO语句可直接将程序的执行位置跳到该label标记位置,达到控制程序执行顺序的目的。可实现与%IF %THEN / %ELSE相同的功能。
其中%GOTO语句中的label就是%label语句当中定义个label;%label语句中label后面的冒号不能省略(注:%label语句中的label不是个关键字,而是一个标记的名字。可用任何有效的SAS名代替)
提示:在使用%GOTO和%label语句的时候要非常谨慎,一不小心就会导致程序执行顺序错乱,出现死循环。
%RETURN语句用于跳出当前的宏程序,不再继续往下执行该宏。类似于循环中的BREAK语句
%ABORT语句用来对SAS程序做异常捕获。如果符合某些特殊条件,需要停止SAS执行,甚至结束当前的进程。这种情况下就需要该语句。根据不同的选项及环境有会有不同的结果。其语法形式为:
%ABORT <ABEND | CANCEL | <FILE> | RETURN | <n>>;
%ABORT语句会触发一个错误消息显示在日志当中,提示程序停止执行
ABEND选项将会导致直接关闭并退出当前的SAS会话进程
CANCEL选项不会导致关闭并退出当前的会话进程
RETURN选项同样会导致关闭并退出当前的会话进程
由于%ABORT语句基本上不会用到,此处就不做详细阐述
%GOTO、%label、%RETURN、%ABORT这四个语句是比较早的流程控制语句,在日常工作中几乎很少用到
有关宏变量
%LOCAL语句在宏内部用于声明某个宏变量是局部宏变量,与全局的宏变量进行区分(即使名字一样,在内外也是不一样的)。另外,该语句还可以在声明时设定宏变量为只读的
%LOCAL / READONLY macro-variable=value;
SAS学习笔记43 宏语句的更多相关文章
- SAS学习笔记41 宏变量存储及间接引用
Macro Variables存储在“Symbol Table”中.它是由Macro Processor在SAS启动时自动创建并维护的.SAS提供了一张视图来供我们查看Symbol Table中的内容 ...
- SAS学习笔记46 宏变量的可使用范围
全局宏变量 在宏程序内部,除了使用%GLOBAL语句创建.在某些情况下,还可以直接使用DATA步中的CALL SYMPUT创建. 在一个宏程序中,在包含CALL SYMPUT的DATA步程序之前,如果 ...
- SAS学习笔记10 宏变量
一个宏变量存放的值保持不变直到被修改(全局变量) 引用时,变量名前加上"&" 宏变量在引用时放在双引号之间会被解读(单引号不会被解读) 用户定义的宏变量,有三种方式: %l ...
- SAS学习笔记44 宏函数
类SAS函数的宏函数 该部分函数共5个,其无论是名字.语法.功能都与SAS函数类似,只是在函数名前多了一个“%”.这5个宏函数分别是: %INDEX %LENGTH %SCAN %SUBSTR %UP ...
- SAS学习笔记37 宏程序中parmbuff选项
该选项用于指定宏可以接受可变参数列表,而且参数值保存在SYSPBUFF宏变量中.parmbuff的参数价值,其实就是每次执行宏程序时,可以指定不同数量的参数值,这些宏参数被保存在&syspbu ...
- SAS学习笔记42 宏程序
Autocall Macro是由SAS提供的一些实现特定功能的Macro Program,可以在代码中直接使用 其中以Q开头的相比正常的多了隐藏特殊字符的功能(称之为Macro Quoting): K ...
- SAS学习笔记7 合并语句(set、merge函数)
set函数:纵向合并数据集 set语句进行纵向合并.set语句的作用是将若干个数据集依次纵向连接,并存放到data语句建立的数据集中.若set后面只有一个数据集,此时相当于复制的作用 注:data语句 ...
- SAS学习笔记35 options语句
- SAS学习笔记32 select语句
随机推荐
- 8. String to Integer (atoi) ---Leetcode
Implement atoi to convert a string to an integer. 题目分析: 题目本身很简单就是将一个字符串转化成一个整数,但是由于字符串的千差万别,导致在实现的时候 ...
- CentOS 修改固定IP地址
CentOS 修改固定IP地址 参考地址:https://www.cnblogs.com/technology-huangyan/p/9146699.htmlhttps://blog.csdn.net ...
- [转] node.js express的安装与部署,以及pm2下的运行启动。
node.js 下的express 安装可以参考官方网站的 http://www.expressjs.com.cn/ 这里主要讲一下一些不同的地方,将我们生成的dist文件夹里的文件放在public里 ...
- export命令import命令
export命令import命令 export { name1, name2, …, nameN }; export { variable1 as name1, variable2 as name2, ...
- LoadRunne遇到的一些问题FAQ(持续更新...)
1.LR11破解完成,添加License失败,报错License security violation Loadrunner11破解成功后,用deletelicense.exe工具把License全删 ...
- Java 数组元素逆序Reverse的三种方式
Java 数组元素逆序Reverse的三种方式 本文链接:https://blog.csdn.net/xHibiki/article/details/82930521 题目 代码实现 说明 int ...
- Android仿微信底部选项卡
第一步 添加依赖 dependencies { compile 'com.yinglan.alphatabs:library:1.0.5' } 第二步 布局使用 <?xml version=&q ...
- 使用redis-py的两个类Redis和StrictRedis时遇到的坑
使用redis-py的两个类Redis和StrictRedis时遇到的坑 前言: 今天产品经理说,有几个队列排序的功能不能用了.对比了下以前的代码查到了一个原因,这个比较的坑,总结起来也是自己没好好看 ...
- 阶段5 3.微服务项目【学成在线】_day07 课程管理实战_06-课程营销实战分析
课程营销信息包括课程价格.课程有效期等信息. 课程营销信息使用course_market表存储. 接口我们要提供两个. 接口1先查询课程营销的信息,在页面展示. 接口2:叫做更新,如果发现数据不存在就 ...
- 123457123456#0#-----com.threeapp.headsoccer----宝宝头球大战
com.threeapp.headsoccer----宝宝头球大战