SAS学习笔记10 宏变量
- 一个宏变量存放的值保持不变直到被修改(
全局变量) - 引用时,变量名前加上"&"
- 宏变量在引用时放在双引号之间会被解读(单引号不会被解读)
用户定义的宏变量,有三种方式:
- %let 宏变量名=宏变量值(宏变量值最大可存储65535个字符)
- call symput(宏变量名,值);(这个方法只允许在data步中)
- proc sql
宏变量的引用



显示宏变量及其值

_GLOBAL_ :输出用户自定义的宏变量当中的全局宏变量信息;
_LOCAL_ :输出用户自定义的宏变量当中的局部宏变量信息;(一般用在宏内部,因为只有在宏内部才有局部的概念)
_READONLY_ :输出用户自定义的宏变量中只读的宏变量信息,包括全局和局部的;
_WRITABLE_:输出用户自定义的宏变量中可写的宏变量信息,包括全局和局部的;
宏变量与后续文本的分隔
当宏变量跟后续文本紧密同时使用时,需要界定宏变量的结束位置

间接引用宏变量
“&宏变量名”是直接引用
如果引用的宏变量名是通过宏产生的,则需要间接引用,此时需要用:&&

DATA STEP
如果要在DATA STEP执行阶段创建Macro Variable,就要使用执行阶段生效的语句。在DATA STEP中可通过CALL SYMPUT来完成
CALL SYMPUT( macro-variable, value );
macro-varialbe为Macro Variable的名字,可以为引号引起来的字符串,也可以为DATA STEP中的字符变量;
value为Macro Variable的取值,可以为引号引起来的字符串;也可以为DATA STEP中的变量(如果是数值变量,SAS会进行一次自动转换,将其转换为字符串后赋给Macro Variable)


此外,还有另外一个CALL SYMPUTX也是用来在DATA STEP中创建Macro Variable。它与CALL SYMPUT的用法一模一样,只有一个区别:
CALL SYMPUTX在给Macro Variable赋值的时候会移除Leading blanks和Trailing blanks
注意:%put语句在输出时会移除输出内容的Leading blanks和Trailing blanks
PROC SQL
SQL相比DATA步可以很快速的完成一些聚合运算。这些运算后的结果如果想要输出到Macro Variable中,就需要用INTO子句来完成。其语法格式如下:
INTO :macro-variable-specification-1 <, :macro-variable-specification-2 ...>
特别注意,INTO子句中需要在每个创建的Macro Variable前加“:”


除了上面这种赋单值外,还可以赋多个值给某个Macro Variable,并且以指定的分隔符进行区分。例如:


%SYMDEL STATEMENT
当某个Macro Variable不再使用的时候,可以通过%symdel语句来删除
SAS学习笔记10 宏变量的更多相关文章
- SAS学习笔记46 宏变量的可使用范围
全局宏变量 在宏程序内部,除了使用%GLOBAL语句创建.在某些情况下,还可以直接使用DATA步中的CALL SYMPUT创建. 在一个宏程序中,在包含CALL SYMPUT的DATA步程序之前,如果 ...
- SAS学习笔记41 宏变量存储及间接引用
Macro Variables存储在“Symbol Table”中.它是由Macro Processor在SAS启动时自动创建并维护的.SAS提供了一张视图来供我们查看Symbol Table中的内容 ...
- SAS学习笔记44 宏函数
类SAS函数的宏函数 该部分函数共5个,其无论是名字.语法.功能都与SAS函数类似,只是在函数名前多了一个“%”.这5个宏函数分别是: %INDEX %LENGTH %SCAN %SUBSTR %UP ...
- SAS学习笔记43 宏语句
流程控制 %GOTO语句与%label语句是结合起来使用的.首先通过%label语句定义一个位置,使用%GOTO语句可直接将程序的执行位置跳到该label标记位置,达到控制程序执行顺序的目的.可实现与 ...
- SAS学习笔记37 宏程序中parmbuff选项
该选项用于指定宏可以接受可变参数列表,而且参数值保存在SYSPBUFF宏变量中.parmbuff的参数价值,其实就是每次执行宏程序时,可以指定不同数量的参数值,这些宏参数被保存在&syspbu ...
- SAS学习笔记42 宏程序
Autocall Macro是由SAS提供的一些实现特定功能的Macro Program,可以在代码中直接使用 其中以Q开头的相比正常的多了隐藏特殊字符的功能(称之为Macro Quoting): K ...
- SAS学习笔记之《SAS编程与数据挖掘商业案例》(3)变量操作、观测值操作、SAS数据集管理
SAS学习笔记之<SAS编程与数据挖掘商业案例>(3)变量操作.观测值操作.SAS数据集管理 1. SAS变量操作的常用语句 ASSIGNMENT 创建或修改变量 SUM 累加变量或表达式 ...
- SAS学习笔记之《SAS编程与数据挖掘商业案例》(5)SAS宏语言、SQL过程
SAS学习笔记之<SAS编程与数据挖掘商业案例>(5)SAS宏语言.SQL过程 1. 一个SAS程序可能包含一个或几个语言成分: DATA步或PROC步 全程语句 SAS组件语言(SCL) ...
- thinkphp学习笔记10—看不懂的路由规则
原文:thinkphp学习笔记10-看不懂的路由规则 路由这部分貌似在实际工作中没有怎么设计过,只是在用默认的设置,在手册里面看到部分,艰涩难懂. 1.路由定义 要使用路由功能需要支持PATH_INF ...
随机推荐
- 综述类文章(Peng 等)阅读笔记Cross-media analysis and reasoning: advances and directions
综述类文章 Cross-media analysis and reasoning: advances and directions Yu-xin PENG et al. Front Inform Te ...
- VS2017 怎么启用nuget程序包还原?
以前VS2015的时候,在解决方案右键会有一个“启用nuget程序包还原”的选项. 现在换成2017了,这个选项的位置变成了“还原nuget包”,现在新建到TFS上的项目,别人下完都没法还原,求解! ...
- Leetcode题目437:路径总和III(递归-简单)
题目描述: 给定一个二叉树,它的每个结点都存放着一个整数值. 找出路径和等于给定数值的路径总数. 路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点). 二 ...
- 3.linux 别名 查找 压缩与解压缩
1.别名 alias 别名=‘定义命令内容’ alias grep=‘grep --color’ vim ~/.bashrc 关掉终端再开一次!!!!才能生效 ...
- linux文件管理指令
总述 所有指令都可以使用--help来查看说明 例如:cat --help -x 表示参数 1.cat:用于打印文件(cat -x filename) 参数: -n:由1开始对每行进行编号 -b:由1 ...
- 小福bbs—项目系统设计与数据库设计
这个作业属于哪个课程 班级链接 这个作业要求在哪里 作业要求的链接 团队名称 小福bbs 这个作业的目标 实现对校园论坛软件的制作,使其能够发布帖子,查看信息等 作业的正文 小福bbs--项目需求分析 ...
- Fiddler自动响应AutoResponder正则匹配
AutoResponder-Add-Rule Editor 两个文本框,先说第一个: Mathes: 前缀为“EXACT:”表示完全匹配(大小写敏感) 无前缀表示基本搜索,表示搜索到字符串就匹配 前缀 ...
- wcf 错误提示
wcf 不弹出错误提示,只显示“服务器处理请求时遇到错误.有关构造有效服务请求的内容,请参阅服务帮助页”,添加以下节点可以弹出错误提示. <serviceDebug includeExcepti ...
- python笔记7 logging模块 hashlib模块 异常处理 datetime模块 shutil模块 xml模块(了解)
logging模块 日志就是记录一些信息,方便查询或者辅助开发 记录文件,显示屏幕 低配日志, 只能写入文件或者屏幕输出 屏幕输出 import logging logging.debug('调试模式 ...
- SQL-W3School-函数:SQL MIX() 函数
ylbtech-SQL-W3School-函数:SQL MIX() 函数 1.返回顶部 1. MIN() 函数 MIN 函数返回一列中的最小值.NULL 值不包括在计算中. SQL MIN() 语法 ...