SAS中的宏语言
一、sas 宏变量
1) 宏变量属于SAS宏语言,与普通变量的区别是可以独立于DATA步
2) 可以再SAS程序中除数据行之外的任何地方定义并使用宏变量
3) %let语句定义宏变量并分配一个值给宏变量(如:%let dsn=3)
4) 当引用一个宏变量的值,放&号在宏变量前
5) 使用%str函数围住宏变量的值,使得在这个值内部的分号作为这个文本的部分,而不是%let语句的结束
6) 使用%PUT语句在LOG窗口显示宏变量的值
7) SAS/BASE中的自动宏变量,如sysver,systime(给出sas版本或会话开始执行的时间);
二、宏
1) 用%macro语句开始一个宏,同时给出这个宏的名字。如:%macro dsn;
2) 用%mend语句结束一个宏,其后给出宏名字。如%mend dsn;
3) 放一个百分数符号(%)在宏名字前面以调用一个宏,如%dsn

三、宏参数
- 被定义在一个%macro语句的宏名字后括号内的宏变量称为宏参数,可以直接给出宏参数的值也可以在调用这个宏时给出这些参数的值
- 对参数分配的值只在这个宏执行时有效,而宏变量从用户创建直到SAS会话结束前都存在
使用宏绘制散点图:

为age>50的人绘制age*weight散点图:

四、Sas错误的处理
- 句法错误:当程序语句与SAS语言准则不一致时发现的错误,如关键词拼错,少掉分号等。
- 语义错误:元素在当前程序语句中的用法是无效时产生的,如DO OVER A
- 数据错:当有些数据值不适合用户规定的格式时出现
- 运行错:当SAS执行程序时在数值上出现的错误,如用0作为除数,infile引用的文件地址不存在等
- 常见错误
- 遗漏run语句,在活动窗口的标题栏里显示proc(或data)step runing
- 遗漏分号,在log窗口中显示错误,将下一个有效的语句解释为无效的语句
- 引号不配对,log信息指明字符串太长或语句被混淆
- 无效选项,log指明选项无效或不认识
- 出现错误时可以同时按下ctrl+break中断程序
- 注意有汉字输入的程序中可能带来输入法兼容性错误,解决方法是重新输入并检查错误
SAS中的宏语言的更多相关文章
- SAS中常见的数组函数
SAS中常见的数组函数有: dim dimk hbound hboundk lbound lboundk 数组函数计萁数组的维数.上下界,有利于写出可移植的程序,数组函数包括:dim(x) 求数组x第 ...
- SAS中的聚类分析方法总结
SAS中的聚类分析方法总结 说起聚类分析,相信很多人并不陌生.这篇原创博客我想简单说一下我所理解的聚类分析,欢迎各位高手不吝赐教和拍砖. 按照正常的思路,我大概会说如下几个问题: 1. 什么是 ...
- SAS中的Order By - Proc Sort
SAS中的Order By - Proc Sort 1.排序proc sort proc sort在按数据集中某一个变量或几个变量的升序或降序将记录重新排列,并把结果保存在输出数据集中,如果不另外指定 ...
- 如何在SAS中重新构建限价指令簿(Limit Order Book):使用HashTable
在之前的一篇日志里(http://blog.csdn.net/u010501526/article/details/8875446),我将重新构建LOB(Limit Order Book)分为了三步 ...
- SAS中的剔除空格函数
left函数: 刪除字符串左边(开头> 的空格right函数: 刪除字符串右边(结尾> 的空格trim函数: 刪除字符串右边(结尾> 的空 ...
- SAS中的自动变量
Sas自动变量:由数据步语句自动创建的. _n_ :观测序号: _error_:错误信息变量; _numeric_ :所有数值变量: _character_:所有字符变量; _all_:所有变量; f ...
- SAS︱操作语句(if、do、select、retain、array)、宏语言、统计量、运算符号
每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- SAS中的一些常见的符号.运算符是一种符号①比 ...
- SAS学习笔记之《SAS编程与数据挖掘商业案例》(5)SAS宏语言、SQL过程
SAS学习笔记之<SAS编程与数据挖掘商业案例>(5)SAS宏语言.SQL过程 1. 一个SAS程序可能包含一个或几个语言成分: DATA步或PROC步 全程语句 SAS组件语言(SCL) ...
- 在SAS数据步中执行过程步的简单示例
SAS中的许多过程步都是封装好的,而且SAS的编程特点决定了只能是DATA步执行完之后再执行PROC步,或者PROC步执行完之后再执行DATA步.因此有时候DATA步只能利用PROC步执行完之后的结果 ...
随机推荐
- AutoHotkey使用Excel的Com对象可能导致进程残留问题的原因及解决方案
在AutoHotkey脚本中,对Excel的应用体验很不错,xl := ComObjActive("Excel.Application")就和当前Excel表连接了, 通过xl变量 ...
- February 6 2017 Week 6 Monday
There are no shortcuts to any place worth going. 任何值得去的地方,都没有捷径. Several years ago, I climbed the Hu ...
- 200. Number of Islands + 695. Max Area of Island
Given a 2d grid map of '1's (land) and '0's (water), count the number of islands. An island is surro ...
- GPRS研究(3):NO CARRIER错误的含义解释
NO CARRIER(必须是大写)是一个由猫向其所附着的设备(典型的就是一个计算机)发来的文本响应信息,表示猫没有连接到远程系统.NO CARRIER是由Hayes指令集定义的,由于Hayes猫的普及 ...
- 管理kafka
一.主题操作使用kafka-topics.sh工具可以执行主题的大部分操作(配置变更部分已被启用并被移动到kafka-configs.sh工具中).我们可以用它创建.修改.删除和查看集群里的主题,要使 ...
- AsyncTask使用实例,异步加载图片
在上一篇,详细介绍了AsynTask的基础知识.没有读过的朋友可以点击下面的链接: http://www.cnblogs.com/fuly550871915/p/4892310.html 那么在这篇文 ...
- pycharm 设置字体大写和显示代码行号
打开pycharm,我们看到左边是没有行号显示的. 在工具栏中点击扳手的标志,打开. 找到 Ide-setting ——>Editor ——>Apperance ——> ...
- 2019.1.4 SSH框架整合步骤(一)
SSH整合 1.三大框架整合原理 Spring与Struts2整合就是将Action对象交给Spring容器负责创建 Spring与Hibernate整合就是将sessionFactory交给Spri ...
- JZ2440学习笔记之IIS音频芯片WM8976
音频芯片的接线图:IIS接到MPU的IIS controller上:看L3总线的接法,应该是使用GPIO来模拟时序. IIS总线用来传输音频数据. L3总线用来配置WM8976的内部寄存器. L3总线 ...
- 【luogu P2296 寻找道路】 题解
题目链接:https://www.luogu.org/problemnew/show/P2296 题意:给定起点终点,找一条从起点到终点的最短路径使路上的每个点都能有路径到达终点. 我们先反着建一遍图 ...