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语句
随机推荐
- Java实现通过IP获取域名,通过域名获取IP
一.通过Linux命令实现 ping www.baidu.com nslookup www.baidu.com nslookup 14.215.177.166 为什么这个命令会有一个192.168.1 ...
- git 设置git用户名和邮箱,并生成秘钥
1.设置 git 用户名 aaron@ubuntu:~$ git config --global user.name "xxx" 2.设置 git 邮箱 aaron@ubuntu: ...
- RK3288 添加普通串口uart1和uart3
CPU:RK3288 系统:Android 5.1 diff --git a/device/rockchip/common/init.connectivity.rc b/device/rockchip ...
- Django 测试开发3 数据模型models和admin管理工具
参考:https://blog.csdn.net/weixin_44510615/article/details/89425412 1.Django模型字段常用类型: IntegerField : 整 ...
- SQL中如何使用方向键——lrwrap
Linux alias命令用于设置指令的别名. 用户可利用alias,自定指令的别名.若仅输入alias,则可列出目前所有的别名设置.alias的效力仅及于该次登入的操作.若要每次登入是即自动设好别名 ...
- C# GDI+ 简单实现图片写文字和图片叠加(水印)(转)
using System; using System.Collections; using System.Configuration; using System.Data; using System. ...
- python 设计模式之解释器(Interpreter)模式
#写在前面 关于解释器模式,我在网上转了两三圈,心中有了那么一点概念 ,也不知道自己理解的是对还是错. 其实关于每一种设计模式,我总想找出一个答案,那就是为什么要用这种设计模式, 如果不用会怎么样,会 ...
- gitment初始化评论跳回博客首页
表现 众所周知,gitment评论系统需要初始化以创建对应的issue,可是我在点击login with github的时候,总是跳向博客首页!WTF!什么鬼?这样不程序啊? 排查 1.F12查看lo ...
- linux内核中IS_ALIGNED是如何定义的?
1. 定义如下: (include/linux/kernel.h) #define IS_ALIGNED(x, a) (((x) & ((typeof(x))(a ...
- CV3——学习笔记-续
使用Jupyter.https://jupyter.org/install https://baijiahao.baidu.com/s?id=1601883438842526311&wfr=s ...