概述
本文使用数据集:
链接:https://pan.baidu.com/s/1SntXwLjVMsRrtMkiYqJdGQ
提取码:61gn
目录
一、SAS 宏
二、SAS 宏变量
三、宏参数
四、SAS 错误的处理
(一)句法错误
(二)词义错误
(三)数据错误
(四)运行错误
(五)常见错误
一、SAS 宏
利用宏可以减少在完成一些共同任务时必须输入的文本量
利用宏可以使程序模块化,使程序易读、便于修改、移植、方便重复使用
用 %macro 语句开始一个宏,同时给出这个宏的名字。如:%macro dsn
用 %mend 语句结束一个宏,其后给出宏名字。如:%mend dsn
放一个百分数符号(%)在宏名字的前面以调用一个宏,如%dsn
例1:macro
%macro create;
data tem;
set peixun.fitness;
if age>=50;
%mend create;
%create;
run;
proc print data=tem;
run;
二、SAS 宏变量
宏变量属于 SAS 宏语言,与普通变量的区别是可以独立于 data 步
可以在 SAS 程序中除数据行之外的任何地方定义并使用宏变量
%let 语句定义宏变量并分配一个值给宏变量(如:%let dsn=3)
当引用一个宏变量的值,放 & 号在宏变量前
使用 %str 函数围住宏变量的值,使得在这个值内部的分号作为这个文本的部分,而不是 %let 语句的结束
使用 %put 语句在 log 窗口显示宏变量的值
SAS/BASE 中的自动宏变量,如:sysver,systime(给出 SAS 程序或会话开始执行的时间)
三、宏参数
被定义在一个 %macro 语句的宏名字后括号内的宏变量称为宏参数,可以直接给出宏参数的值,也可以在调用这个宏时给出这些参数的值
对参数分配的值只在这个宏执行时有效,而宏变量从用户创建直到 SAS 会话结束前都存在
例2:macroP1
data temp1;
set peixun.fitness; ##复制 fitness 数据集
run;
%macro plot(yvar=age,xvar=weight); ##开始一个宏 plot (宏参数yvar=age,xvar=weight)
proc plot;
plot &yvar*&xvar='*';
run;
%mend plot;
%plot()
%plot(xvar=runtime);
quit;
例3:macroP2
%macro create; ##create宏:复制数据
data temp;
set peixun.fitness;
if age>=50;
%mend create;
%The first macro generates DATA;
%macro plot; ##plot宏:绘图
proc plot;
plot &yvar*&xvar=',';
run;
%mend plot;
%The second macro generates PROC;
%macro analyze(getdata,yvar,xvar); ##analyze宏
title;
%if %upcase(&getdata)=YES %then
%do;
%create
title3*Data Set Created for The Plot*;
%end;
%plot
%mend analyze;
%analyze(yes,age,weight);
quit;
四、SAS 错误的处理
(一)句法错误
当程序语句与 SAS 语言准则不一致时发现的错误,如关键词拼错,少掉分号等
(二)词义错误
元素在当前程序语句中的用法是无效时产生,如 do over a
(三)数据错误
当有些数据值不适合用户规定的格式时出现
(四)运行错误
当 SAS 执行程序时在数值上出现的错误,如用 0 作为除数,infile 引用的文件地址不存在等
(五)常见错误
1. 遗漏 run 语句,在活动窗口的标题栏里显示 proc(或data)step running
2. 遗漏分号,在 log 窗口中显示错误,将下一个有效的语句解释为无效的语句
3. 引号不配对,log 信息指明字符串太长或语句被混淆
4. 无效选项,log 指明选项无效或不认识
5. 出现错误时可以同时按下 ctrl+break 中断程序
6. 注意有汉字输入的程序中可能带来的输入法兼容性错误,解决方法是重新输入,并检查错误
例4:句法错
date a ##date 改 data
input x y;
z=x*y;
cards;
1 2
3 4
5 6
7 8
;
proc print;
tile '在data语句中丢失一个分号';
run;
最后
以上就是魁梧服饰为你收集整理的第 12 讲 SAS 中的宏语言一、SAS 宏二、SAS 宏变量三、宏参数四、SAS 错误的处理的全部内容,希望文章能够帮你解决第 12 讲 SAS 中的宏语言一、SAS 宏二、SAS 宏变量三、宏参数四、SAS 错误的处理所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复