关于宏的系统选项

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. Centos7 node npm升级版本

    安装npm 官网:https://nodejs.org/en/download/ 下载LTS Linux Binaries (x64)版本. # tar xf node-v10.16.3-linux- ...

  2. [游戏开发]LÖVE2D(1):引擎介绍

    什么是LÖVE引擎 Love引擎是一个非常棒的框架,你可以用来在Lua制作2D游戏.它是免费的,开源的,适用于Windows,Mac OS X,Linux,Android和iOS. 怎么安装 在官网下 ...

  3. Windows 下 把EXE 程序变成服务运行

    1. 下载  instsrv.exe 和 srvany.exe   我下载的地址  [点击打开链接][https://www.cr173.com/soft/64394.html] 2. cmd  cd ...

  4. 原创 linux 爬虫拨号服务器完整设置

    [root@cloud ~]# cat /home/bh.sh #!/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin:/sbin/ifconfig /usr/s ...

  5. Tag Tree

    Test & Measurement RF RFID DAQ Mixed Signal Instrumentation DSP C# C\C++ JAVA Work Better Git Ma ...

  6. AnimatorSet学习示例代码

    package com.loaderman.customviewdemo; import android.animation.AnimatorSet; import android.animation ...

  7. win10安装RabbitMQ

    简单来说,两步走:先装erlang,再装rabbitmq.rabbitmq是用erlang开发的,既然erlang是一种语言,你可以把它当做Jdk来安装. 1.下载erlang安装包(官网下载地址ht ...

  8. STL函数适配器

    一:适配器简介 C++中有三类适配器,分别是容器适配器,迭代器适配器和函数适配器,这里主要介绍函数适配器. (一)函数适配器简介 STL中已经定义了大量的函数对象,但是有时候需要对函数返回值进行进一步 ...

  9. 123467123456#1#-----com.twoapp.DaDiShuGame01--前拼后广--现实打地鼠游戏jiemei

    com.twoapp.DaDiShuGame01--前拼后广--现实打地鼠游戏jiemei

  10. WPF引入OCX控件

    (方法一) https://www.cnblogs.com/guaniu/archive/2013/04/07/3006445.html (方法二) 1.先注册OCX控件:(有的把OCX 控件封装到E ...