在创建数据集的时候,有时需要判断数据集是否存在。
在SAS的帮助文档找到方法;
通过定义,并调用宏的方式实现。
定义一个宏:
%macro checkds(data_set);
%if %sysfunc(exist(&data_set)) %then %do;
%put "Data set &data_set. is already exists !";
%end;
%else %do;
%put "Data set &data_set. does not exist !";
run;
%end;
%mend checkds;
- 请求宏:
%checkds(work.a)
- 日志界面会打印:相应指定的输出。
"Data set work.a does not exist !"
- 创建数据集
data a;
a=1;
run;
- 请求宏:
%checkds(work.a)
- 日志
"Data set &data_set. is already exists !"
扩展使用,宏是SAS编程过程中的常用技术,[%sysfunc]中可以使用SAS中大部分内置函数,不过[%if]后可以编写自定义函数,且将[ %put "...!";]替换成自需要的data step 或者 proc step,已达到使用的目的。