SAS学习笔记42 宏程序
2024-09-01 14:16:17
Autocall Macro是由SAS提供的一些实现特定功能的Macro Program,可以在代码中直接使用
其中以Q开头的相比正常的多了隐藏特殊字符的功能(称之为Macro Quoting);
K开头的代表是专门针对DBCS(Double Byte Character Set)语言设计的,即适用于类似中文的双字节存储语言
为什么INDEX函数返回的结果是8呢?
因为像INDEX、FIND等这类搜索函数是通过单字节编码进行查找的,有两个过程:
首先将所有的字符串转换成编码,每个字节对应一个编码;
然后按照编码进行搜索;
1个汉字占2个字节,就会对应2个编码。在某些特殊的情况下,就会出现这种情况:某2个汉字共4个编码,第1个汉字的第2个编码与第2个汉字的第1个编码凑成的编码,正好是要搜索的汉字的编码。虽然该汉字没有在查找的文本中出现,但是其编码出现了。然后就会返回搜索到的编码位置:
三个有关Macro的System Option,在日志中输出更加详细的信息:
MPRINT:在日志中输出Macro生成的SAS代码;
MLOGIC:在日志中输出Macro的执行逻辑;
MSYMBOLGEN:在日志中输出Macro Variables的解析结果;
Delete User-Defined Macro
跟Macro Variable一样,如果不想再用某个Macro Program,也可以将其删除掉。语法非常简单:
%SYSMACDELETE macro_name;
最新文章
- Xml,Json,Hessian,Protocol Buffers序列化对比
- AutoVFL(适配)
- 弱占优策略--Weakly Dominant Strategy
- PHP文件的上传与下载
- JSTL定制标签 - 递归标签显示属性结构
- Eclipse插件安装
- lc面试准备:Reverse Linked List II
- Ubuntu 10.04启动进入命令行模式
- 【POJ 1741】Tree
- 读Zepto源码之属性操作
- Light OJ 1266 - Points in Rectangle
- Centos 7环境下安装配置Hadoop 3.0 Beta1简记
- 淘宝cnpm
- luoguP4035
- cf1131f 构造+并查集
- mysql 开源~canal安装解析
- G - 生日蛋糕
- Codeforces 488B - Candy Boxes
- java序列化问题
- FM的推导原理--推荐系统