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

 

三、宏参数

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

使用宏绘制散点图:

 

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

 

四、Sas错误的处理

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