关于宏的系统选项

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. 走进JavaWeb技术世界10:从JavaBean讲到Spring

    Java 帝国之Java bean (上) 转自: 刘欣 码农翻身 2016-05-27 前言: 最近看到到spring 的bean 配置, 突然想到可能很多人不一定知道这个叫bean的东西的来龙去脉 ...

  2. IOS添加真机调试设备

    注意点: 有时需要同意协议什么的,很多时候刷新出来都是白屏,解决办法: 对于不能确认新协议的问题,我发现了一个解决方法:登陆后,直接在浏览器的地址框访问:https://developer.apple ...

  3. js中的一些隐式转换和总结

    js中的不同的数据类型之间的比较转换规则如下: 1. 对象和布尔值比较 对象和布尔值进行比较时,对象先转换为字符串,然后再转换为数字,布尔值直接转换为数字 [] == true; //false [] ...

  4. DELPHI搭建centos开发环境

    DELPHI搭建centos7开发环境 关闭防火墙 搭建开发环境,还是直接关闭LINUX防火墙,省事. 否则,使用到的网络端口号,都要在防火墙开放,麻烦. systemctl disable fire ...

  5. Uploadifive 上传'fileType'格式如何限制?

    Uploadifive: 'fileType':[ "application/pdf", "application/msword", "applica ...

  6. Linux CentOS 7 常用命令集合

  7. js 点击列表li,获得当前li的id

    html <ul id="demo"> <li id="li-1">li1</li> <li id="li- ...

  8. It’s worth noting值得注意的是

    It’s worth noting that in JavaScript applications the Model is often connected via Ajax to a back-en ...

  9. React——嵌入已有项目 && jsx

    Add React to a Website React has been designed from the start for gradual adoption, and you can use ...

  10. Spring事务的隔离级别和传播机制

    七个传播机制:(红色字体的代表如果不设置传播机制时候默认的)PROPAGATION_REQUIRED-支持当前事务;如果不存在,创建一个新的. PROPAGATION_SUPPORTS-支持当前事务; ...