SAS判断一个数据集是否存在

在创建数据集的时候,有时需要判断数据集是否存在。
在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,已达到使用的目的。

你可能感兴趣的:(SAS判断一个数据集是否存在)