关于宏的系统选项

MCOMPILENOTE=NONE|NOAUTOCALL|ALL

该系统选项控制是否在日志当中显示宏程序编译时的信息,默认值为NONE,也就是不显示。其中NOAUTOCALL针对的是Autocall Macro

MEXECNOTE | NOMEXECNOTE

该系统选项与MCOMPILENOTE是类似的功能,用于控制当调用一个宏程序时,是否在日志当中显示相应的信息,默认值为NOMEXECNOTE

MERROR|NOMERROR

该系统选项控制当调用一个宏程序且找不到该程序时,是否在日志中显示一条警告信息。默认值为MERROR,会在日志当中显示警告信息

SERROR | NOSERROR

该系统选项控制当使用一个宏变量且找不到该宏变量时,是否在日志中显示一条警告信息。默认值为SERROR,会在日志当中显示警告信息

MCOMPILE|NOMCOMPILE

该系统选项用于控制是否允许定义一个新的宏程序,默认值为MCOMPILE。如果将其修改为NOCOMPILE,则不能再定义一个新的宏程序

SYSPARM=

该选项可存储一个文本字符串,最大可存储200个字节的字符。存储后的值可在DATA步中使用SYSPARM()函数获取,也可以通过宏变量SYSPARM获取(该宏变量是SAS系统提供的全局宏变量,可在任何地方使用)

MLOGIC|NOMLOGIC

MLOGICNEST|NOMLOGICNEST

MPRINT|NOMPRINT

MPRINTNEST|NOMPRINTNEST

SYMBOLGEN|NOSYMBOLGEN

这5个选项经常会用于调试宏程序的过程中,可以在日志中显示宏程序执行过程中生成的SAS代码及相关的信息。具体来说:

  • MLOGIC、MLOGICNEST会将宏程序执行的逻辑在日志中显示出来,其中后者会将嵌套的逻辑也显示出来;

  • MPRINT、MPRINTNEST会将宏程序生成的SAS代码在日志中显示出来,其中后者会将嵌套宏的信息也显示出来;

  • SYMBOLGEN会将宏执行过程中所有宏变量的解析的值在日志中显示出来。

MFILE | NOMFILE

该选项可以将MPRING选项生成的SAS代码输出到外部文件中,该选项必须和MPRINT选项一起使用。同时,输出的外部文件通过FILENEMA语句定义,fileref必须为MPRINT

DATA步函数及call例程

SYMEXIST(argument)

该函数与宏函数%SYMEXIST()是相同的功能,用于判断一个宏变量是否存在。如果存在,返回1;否则,返回0。只不过SYMEXIST只能用在DATA步中,其中参数可以直接传递宏变量的名字;也可以是某个变量,该变量的值为宏变量的名字

SYMGET(argument)

该函数用于在DATA步执行的阶段获取指定宏变量的值,返回值为字符串。其中参数可以直接传递宏变量的名字;也可以是某个变量,该变量的值为宏变量的名字。

需要特别注意的是,SYMGET是在DATA步执行阶段获取指定宏变量的值

SYMGLOBAL(argument)

该函数与宏函数%SYMGLOBL的功能是一样的,用于判断一个宏变量是否是全局宏变量。如果是,则返回1;否则,返回0。只不过该函数是用在DATA步中。其中参数可以直接传递宏变量的名字;也可以是某个变量,该变量的值为宏变量的名字

SYMLOCAL(argument)

该函数与宏函数%SYMLOCAL的功能是一样的,用于判断一个宏变量是否是局部宏变量。如果是,则返回1;否则,返回0。只不过该函数是用在DATA步中。其中参数可以直接传递宏变量的名字;也可以是某个变量,该变量的值为宏变量的名字

CALL SYMDEL(macro-variable <, option>)

该call例程与宏函数%SYMDEL是相同的功能,用于删除一个宏变量。只不过该例程是用在DATA步中。其中参数可以直接传递宏变量的名字;也可以是某个变量,该变量的值为宏变量的名字;option为NOWARN。默认情况下,如果要删除的宏变量不存在,则会有一条警告信息在日志中。指定该选项后,则不再显示该警告信息

CALL EXECUTE(argument);

该CALL例程可在当前DATA步结束后,执行参数中的内容。该参数可以以下几种形式:

  • 用引号引起来的代码;

  • 变量名,该变量名中保存某个宏程序的调用;或者某个需要指定的代码;

  • 单引号引起来的宏程序的调用;

RESOLVE(argument)

该函数在DATA执行的时候解析宏变量及宏程序的调用,并且返回解析后的内容。可以实现SYMGET的功能,获取宏变量的值,此外还可以解析宏程序的结果

SAS学习笔记45 宏系统选项及其他的更多相关文章

  1. SAS学习笔记之《SAS编程与数据挖掘商业案例》(4)DATA步循环与控制、常用全程语句、输出控制

    SAS学习笔记之<SAS编程与数据挖掘商业案例>(4)DATA步循环与控制.常用全程语句.输出控制 1. 各种循环与控制 DO组 创建一个执行语句块 DO循环 根据下标变量重复执行DO和E ...

  2. SAS学习笔记之《SAS编程与数据挖掘商业案例》(3)变量操作、观测值操作、SAS数据集管理

    SAS学习笔记之<SAS编程与数据挖掘商业案例>(3)变量操作.观测值操作.SAS数据集管理 1. SAS变量操作的常用语句 ASSIGNMENT 创建或修改变量 SUM 累加变量或表达式 ...

  3. SAS学习笔记之《SAS编程与数据挖掘商业案例》(5)SAS宏语言、SQL过程

    SAS学习笔记之<SAS编程与数据挖掘商业案例>(5)SAS宏语言.SQL过程 1. 一个SAS程序可能包含一个或几个语言成分: DATA步或PROC步 全程语句 SAS组件语言(SCL) ...

  4. SAS学习笔记之《SAS编程与数据挖掘商业案例》(2)数据获取与数据集操作

    SAS学习笔记之<SAS编程与数据挖掘商业案例>(2)数据获取与数据集操作 1. SET/SET效率高,建立的主表和建表索引的查询表一般不排序, 2. BY语句,DATA步中,BY语句规定 ...

  5. SAS学习笔记之《SAS编程与数据挖掘商业案例》(1)系统简介和编程基础

    SAS学习笔记之<SAS编程与数据挖掘商业案例>(1)系统简介和编程基础 1. SAS系统简介 1.1 SAS是先编译后执行的语言,data步标志着编译的开始. 数据指针:当前内存缓存区, ...

  6. [原创]java WEB学习笔记45:自定义HttpFilter类,理解多个Filter 代码的执行顺序,Filterdemo:禁用浏览器缓存的Filter,字符编码的Filter,检查用户是否登陆过的Filter

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  7. CUBRID学习笔记 45 REPLACE DELETE MERGE 教程

    c#,net,cubrid,教程,学习,笔记欢迎转载 ,转载时请保留作者信息.本文版权归本人所有,如有任何问题,请与我联系wang2650@sohu.com . 过错 ------ 官方文档是英文的, ...

  8. SAS学习笔记37 宏程序中parmbuff选项

    该选项用于指定宏可以接受可变参数列表,而且参数值保存在SYSPBUFF宏变量中.parmbuff的参数价值,其实就是每次执行宏程序时,可以指定不同数量的参数值,这些宏参数被保存在&syspbu ...

  9. SAS学习笔记59 OPTIONS系统选项

    带VALUE选项的OPTIONS过程将指定选项的值.范围及该值如何设置的信息打印到日志窗口 在日志窗口打印的输出如下图所示 将GETOPTION函数作为%SYSFUNC宏函数的参数,从而获取系统选项设 ...

随机推荐

  1. 第六章、Linux 的档案权限不目彔配置

    1. 使用者不群组 2. Linux 档案权限概念 2.1 Linux 文件属怅 2.2 如何改变文件属怅不权限: chgrp, chown, chmod 2.3 目彔不档案乀权限意丿 2.4 Lin ...

  2. [Ubuntu] 14.04版本安装JDK8失败

    系统:Ubuntu 14.04 编译 Android 7.1 系统需要 JDK 8,但是安装时失败, $ -jdk Reading package lists... Done Building dep ...

  3. CTR预估之LR与GBDT融合

    转载自:http://www.cbdio.com/BigData/2015-08/27/content_3750170.htm 1.背景 CTR预估,广告点击率(Click-Through Rate ...

  4. 富文本编辑器handyeditor,上传和预览图片的host地址不一样

    使用富文本编辑器(官网)时,大多时候都会用到图片上传,但是下载的富文本编辑器的默认配置是只有一个上传地址的host的. var he = HE.getEditor('editor', { autoHe ...

  5. 编译grub时报告"grub_script.yy.c:19:22: error: statement with no effect [-Werror=unused-value]"怎么处理?

    答: 在configure时加--disable-werror选项,如下: ./configure --target=aarch64-linux-gnu --disable-werror

  6. MGR集群搭建

    MGR全称MySQL Group Replication(Mysql组复制),是MySQL官方于2016年12月推出的一个全新的高可用与高扩展的解决方案.MGR提供了高可用.高扩展.高可靠的MySQL ...

  7. Kafka——副本(Replica)机制

    副本定义 Kafka 是有主题概念的,而每个主题又进一步划分成若干个分区.副本的概念实际上是在分区层级下定义的,每个分区配置有若干个副本. 所谓副本(Replica),本质就是一个只能追加写消息的提交 ...

  8. html设置多个div并排显示

    我这里以4个div为例,html代码如下: <body> <div id="column1" style="background-color: blue ...

  9. JEECG新建用户不用系统用户表的实现

    首先新增组织机构 和 角色: -- 新增 组织机构 INSERT INTO `t_s_depart` VALUES ('dept001', '你所在的机构', '你所在的机构的描述', null, ' ...

  10. 如何禁用maven下载进度指示?

    方法 mvn -B ..或者mvn --batch-mode ...