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) ...
随机推荐
- 调整 全局jvm 大小 tomcat 调整jvm大小
z最近公司换了一个线上的windows服务器,原来的内存48g,现在2g.项目启动报内存不足.又重新安装jre 安装jre 教程链接:(谢谢各位博友) https://www.genban.org/t ...
- Matrix: Matrix的,postScale(), postTranslate()方法
Matrix的操作,总共分为translate(平移),rotate(旋转),scale(缩放)和skew(倾斜)四种,每一种变换在Android的API里都提供了set, post和pre三种操作方 ...
- js的Map实例
1.创建实例 let map= new Map(); // 创建 2.对map的写入 // 要添加的对象 let obj1 = {name:'张三', sex:'boy',age: 21}; let ...
- 深入理解DefaultMessageListenerContainer
DefaultMessageListenerContainer是一个用于异步消息监听的管理类. DefaultMessageListenerContainer最简单的实现逻辑,一个任务执行器,执行任务 ...
- YApi内部部署文档
旨在为开发.产品.测试人员提供更优雅的接口管理服务.可以帮助开发者轻松创建.发布.维护 API 1.安装Node.js环境(7.6+) 1.官网下载适合的nodejs版本放置在/usr/package ...
- Vue.js学习之简介(待续)
Vue.js 渐进式JavaScript 框架 易用:已经会了 HTML.CSS.JavaScript?即刻阅读指南开始构建应用! 灵活:不断繁荣的生态系统,可以在一个库和一套完整框架之间自如伸缩. ...
- CentOS7下搭建zabbix监控(四)——Zabbix报警设置
CentOS7下搭建zabbix监控(一)——Zabbix监控端配置 CentOS7下搭建zabbix监控(二)——Zabbix被监控端配置 CentOS7下搭建zabbix监控(三)——Zabbix ...
- PAT 甲级 1043 Is It a Binary Search Tree (25 分)(链表建树前序后序遍历)*不会用链表建树 *看不懂题
1043 Is It a Binary Search Tree (25 分) A Binary Search Tree (BST) is recursively defined as a bina ...
- PAT 甲级 1034 Head of a Gang (30 分)(bfs,map,强连通)
1034 Head of a Gang (30 分) One way that the police finds the head of a gang is to check people's p ...
- (八)利用apache组件进行文件上传下载
一.文件上传 文件上传,即服务器端得到并处理用户上传的文件,这个文件存放在request里,也就是需要对request进行处理. 1.1 编写html文件 <!DOCTYPE html> ...