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语句
随机推荐
- linux 的real time 、user time、 sys time
<APUE>上提到了三个时间Real time, User time和Sys time.这三者是什么关系呢?在使用time(1)命令的时候,为什么real time < user t ...
- springMVC_注解方式搭建基础环境
---恢复内容开始--- 一.jar包环境,web配置文件和Spring-MVC配置文件的,相关的modelAndview 1.配置DispatcherServlet <servlet> ...
- Python3中转换字符串编码
在使用subprocess调用Windows命令时,遇到了字符串不显示中文的问题,源码如下:#-*-coding:utf-8-*-__author__ = '$USER' #-*-coding:utf ...
- java基础类型源码解析之String
差点忘了最常用的String类型,我们对String的大多数方法都已经很熟了,这里就挑几个平时不会直接接触的点来解析一下. 先来看看它的成员变量 public final class String { ...
- AOP 与 Spring中AOP使用(上)
AOP简介 在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程, 通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术. AOP是OOP的延续 ...
- OR(Convex_Optimization_读书杂记)
今天心血来潮,看了一下ConvexOptimization,看到一开始描述直线的部分,真的感觉翻译得很棒.$$ y = \theta x_1 + (1-\theta) x_2 \qquad x1, ...
- css 文本省略号设置
本文推荐2种方法. 1. css tip:只兼容chrome内核的浏览器.ff不支持. .box { overflow: hidden; /* 溢出时不显示溢出的内容 */ text-overflow ...
- ajax 提交 form表单 ,后台执行两次的问题
网上大多的答案是说同步不同步的问题,但是我把异步改成同步也不行.async: false, // 单击时表单检查 $('.btn-next a').click(function () { if ...
- [i.MX]飞思卡尔IMX6处理器的GPIO-IOMUX_PAD说明
在linux或android系统中,假如我们要配置飞思卡尔IMX6处理器的GPIO管脚,比如是GPIO_19这个管脚,那么要像这样: #define MX6Q_PAD_GPIO_19__GPIO_4_ ...
- SEQ!org.apache.hadoop.io.LongWritable
[uhadoop@10-13-109-236 subdir26]$ $HADOOP_HOME/bin/hadoop fs -cat /data/flumeEvents/FlumeData.155980 ...