一、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

三、宏参数

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

使用宏绘制散点图:

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

四、Sas错误的处理

  1. 句法错误:当程序语句与SAS语言准则不一致时发现的错误,如关键词拼错,少掉分号等。
  2. 语义错误:元素在当前程序语句中的用法是无效时产生的,如DO OVER A
  3. 数据错:当有些数据值不适合用户规定的格式时出现
  4. 运行错:当SAS执行程序时在数值上出现的错误,如用0作为除数,infile引用的文件地址不存在等
  5. 常见错误
  6. 遗漏run语句,在活动窗口的标题栏里显示proc(或data)step runing
  7. 遗漏分号,在log窗口中显示错误,将下一个有效的语句解释为无效的语句
  8. 引号不配对,log信息指明字符串太长或语句被混淆
  9. 无效选项,log指明选项无效或不认识
  10. 出现错误时可以同时按下ctrl+break中断程序
  11. 注意有汉字输入的程序中可能带来输入法兼容性错误,解决方法是重新输入并检查错误

SAS中的宏语言的更多相关文章

  1. SAS中常见的数组函数

    SAS中常见的数组函数有: dim dimk hbound hboundk lbound lboundk 数组函数计萁数组的维数.上下界,有利于写出可移植的程序,数组函数包括:dim(x) 求数组x第 ...

  2. SAS中的聚类分析方法总结

    SAS中的聚类分析方法总结 说起聚类分析,相信很多人并不陌生.这篇原创博客我想简单说一下我所理解的聚类分析,欢迎各位高手不吝赐教和拍砖. 按照正常的思路,我大概会说如下几个问题: 1.     什么是 ...

  3. SAS中的Order By - Proc Sort

    SAS中的Order By - Proc Sort 1.排序proc sort proc sort在按数据集中某一个变量或几个变量的升序或降序将记录重新排列,并把结果保存在输出数据集中,如果不另外指定 ...

  4. 如何在SAS中重新构建限价指令簿(Limit Order Book):使用HashTable

    在之前的一篇日志里(http://blog.csdn.net/u010501526/article/details/8875446),我将重新构建LOB(Limit Order Book)分为了三步 ...

  5. SAS中的剔除空格函数

    left函数:         刪除字符串左边(开头> 的空格right函数:       刪除字符串右边(结尾> 的空格trim函数:         刪除字符串右边(结尾> 的空 ...

  6. SAS中的自动变量

    Sas自动变量:由数据步语句自动创建的. _n_ :观测序号: _error_:错误信息变量; _numeric_ :所有数值变量: _character_:所有字符变量; _all_:所有变量; f ...

  7. SAS︱操作语句(if、do、select、retain、array)、宏语言、统计量、运算符号

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- SAS中的一些常见的符号.运算符是一种符号①比 ...

  8. SAS学习笔记之《SAS编程与数据挖掘商业案例》(5)SAS宏语言、SQL过程

    SAS学习笔记之<SAS编程与数据挖掘商业案例>(5)SAS宏语言.SQL过程 1. 一个SAS程序可能包含一个或几个语言成分: DATA步或PROC步 全程语句 SAS组件语言(SCL) ...

  9. 在SAS数据步中执行过程步的简单示例

    SAS中的许多过程步都是封装好的,而且SAS的编程特点决定了只能是DATA步执行完之后再执行PROC步,或者PROC步执行完之后再执行DATA步.因此有时候DATA步只能利用PROC步执行完之后的结果 ...

随机推荐

  1. Centos如何通过yum安装php7

      执行如下命令安装epel yum -y install epel-release   更换rpm源,请根据自己的centos版本选择相应的rpm源进行安装 Centos 5.X: rpm -Uvh ...

  2. Linux的man手册共有以下几个章节

    Linux提供了丰富的帮助手册,当你需要查看某个命令的参数时不必到处上网查找,只要man一下即可. Linux的man手册共有以下几个章节: 1.Standard commands (标准命令) 2. ...

  3. Hbase集群部署及shell操作

    本文详述了Hbase集群的部署. 集群部署 1.将安装包上传到集群并解压 scp hbase-0.99.2-bin.tar.gz mini1:/root/apps/ tar -zxvf hbase-0 ...

  4. libevent核心-event和event_base结构体

    参考:http://blog.csdn.net/yusiguyuan/article/category/2171081/2 http://blog.csdn.net/sparkliang/articl ...

  5. 分享一个SqliteHelper类

    分享一个SqliteHelper类 SQLite作为一个本地文件数据库相当好用,小巧.快速.支持事务.关系型,甚至可以运行在Android上.在很久以前的一个项目中,我们用过它来将接收到的数据做本地统 ...

  6. #20145238荆玉茗《网络对抗》-逆向及Bof进阶实践

    20145238荆玉茗<网络对抗>-逆向及Bof进阶实践 实践目的:注入shellcode 准备一段shellcode代码 Shellcode实际是一段代码(也可以是填充数据),是用来发送 ...

  7. Nginx自定义模块编写:根据post参数路由到不同服务器

    Nginx自定义模块编写:根据post参数路由到不同服务器 2014-05-05 15:27 blogread IT技术博客 字号:T | T Nginx可以轻松实现根据不同的url 或者 get参数 ...

  8. 去掉CodeIgniter URL中的index.php

    CI默认的rewrite url中是类似这样的,例如你的CI根目录是在/CodeIgniter/下,你的下面的二级url就类似这样http://localhost /CodeIgniter/index ...

  9. 大数据框架-HDFS

    HDFS:分布式文件系统,运行文件通过网络在多台主机分享的文件系统,分块写入(128M),适用于一次写入多次查询,不支持并发写(只能一块一块写),小文件不合适. nameNode(主节点,单个): 保 ...

  10. 个人开发者即时到账收款方案 BufPay.com

    BufPay 个人即时到账支付平台 前言 作为独立开发者,一般只有一个人独立奋战,做出了产品需要收款是非常麻烦的,接入支付宝微信支付都需要公司公户,而注册公司.开公户等一系列操作非常麻烦,成本也很高一 ...