SAS学习笔记44 宏函数
类SAS函数的宏函数
该部分函数共5个,其无论是名字、语法、功能都与SAS函数类似,只是在函数名前多了一个“%”。这5个宏函数分别是:
%INDEX
%LENGTH
%SCAN
%SUBSTR
%UPCASE
需要注意的一点是%INDEX,%SCAN这两个函数,其对应的SAS函数INDEX,SCAN;在INDEX查找指定的文本串,及SCAN中指定分隔符时,需要用引号将其内容引起来;而%INDEX,%SCAN则不需要引号。因为在宏语言中所有的东西都是文本,因此不需要用引号特别指定是文本
完成数值计算的宏函数
如果想要完成数值计算则需要使用%EVAL宏函数来完成。另外,如果计算中出现小数,则需要用%SYSEVALF
另外,%EVAL和%SYSEVALF都是可以进行乘法和除法运算,只不过%EVAL只能对整数进行;而%SYSEVALF可以对小数进行运算
有关宏变量状态的宏函数
%SYMEXIST(macro-variable-name)宏函数用于判断一个宏变量是否存在,其参数为宏变量名。若该宏变量存在,则返回1;否则,返回0
%SYMGLOBL(macro-variable-name)宏函数用于判断一个宏变量是否是全局宏变量,即是否存在于Global Symbol Table中。如果是全局宏变量,则返回1;否则返回0
%SYMLOCAL(macro-variable-name)宏函数用于判断一个宏变量是否是局部宏变量,即是否存在于Local Symbol Table中。如果是局部宏变量,则返回1;否则返回0
有关宏程序状态的宏函数
%SYSMACEXEC(macro-name)宏函数用于获取指定宏的运行状态,若该宏在运行当中,则返回1;否则返回0
%SYSMACEXIST(macro-name)宏函数用于判断一个宏程序是否存在于Work.SASMacr catalog中,如果存在返回1,否则返回0
%SYSMEXECDEPTH宏函数无参数,用于判断宏的嵌套层数。若在宏外调用,则返回0;如果是在一层的宏中调用,则返回1;若在嵌套1层的宏中调用,则返回2;以此类推
%SYSMEXECNAME(n)宏函数通常与上面的%SYSMEXECDEPTH一起使用,用于返回指定嵌套层的宏名字。若n为0,则返回OPEN CODE;若大于0,则返回对应嵌套层的宏名字。若不存在该嵌套层,则会显示警告信息
调用SAS函数的宏函数
%SYSFUNC(function(argument(s))<, format>))宏函数用于调用SAS函数或者使用FCMP过程步创建的自定义函数,还可以将结果按照指定格式输出
其他宏函数
%SYSGET(environment-variable)宏函数用于获取当前操作系统的环境变量的取值
%SYSPROD(product)函数用于判断在当前的SAS环境中,指定的SAS产品是否有License。若有相应许可,则返回1;若无许,则返回0;若参数中的产品名有误,则返回-1
Quoting Function
Quoting Function主要是用于屏蔽一些字符的特定功能,将其作为普通的字符来对待。例如:运算符、比较符、操作符等,还有两个Macro Trigger:%,&
这部分共包含有12个函数,分别是:%STR、%NRSTR、%QUOTE、%NRQUOTE、%BQUOTE、%NRBQUOTE、%SUPERQ、%UNQUOTE、%QSAN、%QSUBSTR、%QSYSFUNC、%QUPCASE。
其中后4个函数有对应的普通宏函数,其主要功能是类似的
SAS学习笔记44 宏函数的更多相关文章
- SAS学习笔记41 宏变量存储及间接引用
Macro Variables存储在“Symbol Table”中.它是由Macro Processor在SAS启动时自动创建并维护的.SAS提供了一张视图来供我们查看Symbol Table中的内容 ...
- SAS学习笔记46 宏变量的可使用范围
全局宏变量 在宏程序内部,除了使用%GLOBAL语句创建.在某些情况下,还可以直接使用DATA步中的CALL SYMPUT创建. 在一个宏程序中,在包含CALL SYMPUT的DATA步程序之前,如果 ...
- SAS学习笔记43 宏语句
流程控制 %GOTO语句与%label语句是结合起来使用的.首先通过%label语句定义一个位置,使用%GOTO语句可直接将程序的执行位置跳到该label标记位置,达到控制程序执行顺序的目的.可实现与 ...
- SAS学习笔记42 宏程序
Autocall Macro是由SAS提供的一些实现特定功能的Macro Program,可以在代码中直接使用 其中以Q开头的相比正常的多了隐藏特殊字符的功能(称之为Macro Quoting): K ...
- SAS学习笔记37 宏程序中parmbuff选项
该选项用于指定宏可以接受可变参数列表,而且参数值保存在SYSPBUFF宏变量中.parmbuff的参数价值,其实就是每次执行宏程序时,可以指定不同数量的参数值,这些宏参数被保存在&syspbu ...
- SAS学习笔记10 宏变量
一个宏变量存放的值保持不变直到被修改(全局变量) 引用时,变量名前加上"&" 宏变量在引用时放在双引号之间会被解读(单引号不会被解读) 用户定义的宏变量,有三种方式: %l ...
- SAS学习笔记2 基础函数应用
输入输出语句(put和input函数) put()函数:把数值型或字符型变量转为字符型变量(输出变量) input()函数:将字符型变量转化为数值型变量(输入变量) 选择与删除语句(keep.drop ...
- SAS学习笔记20 CAT函数
- SAS学习笔记之《SAS编程与数据挖掘商业案例》(5)SAS宏语言、SQL过程
SAS学习笔记之<SAS编程与数据挖掘商业案例>(5)SAS宏语言.SQL过程 1. 一个SAS程序可能包含一个或几个语言成分: DATA步或PROC步 全程语句 SAS组件语言(SCL) ...
随机推荐
- enablePullDownRefresh的使用
1.首先要在app.json里面去将enablePullDownRefresh设置为true. 2.js 3.现象
- MySQL_JDBC_jar包的下载与使用(Windows)
1. 下载 (1) 打开MySQL_JDBC的下载网站:https://dev.mysql.com/downloads/connector/j/ (2) 选择操作系统:Platform Indepen ...
- 2019 DDCTF 部分writeup
网上的wp已经很多了,但wp普遍很简略.我尽量写的详细一点. 一.WEB 滴~ 拿到题目后首先右键查看源代码,发现图片是以base64传送的 而且看url发现里面应该是包含了文件名,并且用了某个编码. ...
- routine的加载
// Hearthbuddy.Windows.MainWindow // Token: 0x06000245 RID: 581 RVA: 0x0008C318 File Offset: 0x0008A ...
- Windows 自动定时执行任务的方法
windows 自动定时执行任务的几种实现方法 Task Schedul Windows自动定时执行任务,常见的方法有三种: Windows 任务计划程序 Windows Service SQL ...
- CV1——学习笔记
计算机视觉(computer vision)是从图像和视频中提出数值或符号信息的计算系统,更形象一点说,计算机视觉是让计算机具备像人类一样的眼睛,看到图像,并理解图像. 计算机视觉三大应用:识别.检测 ...
- Linux -- 如何减少IO过程中的CPU copy
四种I/O方式的对比 1. Buffered I/O read(file, tmp_buf, len); write(socket, tmp_buf, len); 上下文切换:4次 CPU copy: ...
- 123457123457#0#-----com.cym.YuErBaiKe02--前拼后广--育儿百科
com.cym.YuErBaiKe02--前拼后广--育儿百科
- 返回日期格式:2017-12-03T13:58:58.901Z,判断时间间隔 如 “刚刚”,“一分钟前”,“一小时前”等
后台返回的格式如下: 实现输出如下: 我的处理如下: // 处理数据 2017-11-28T02:41:09.487Z // 请求的时间戳.日期格式按照ISO8601标准表示,并需要使用UTC时间. ...
- Java如何获取ResultSet结果中的每一列的数据类型
示例代码片段: ResultSet resultSet = statement.executeQuery(sql); ResultSetMetaData metaData = resultSet.ge ...