如何检查sas中是否存在数据集(举例)


您可以在SAS中使用以下宏来快速检查数据集是否存在:

 %macro check_exists(data);
   %if %sysfunc ( exist (&data.)) %then %do ;
      %put Dataset Exists;
   %end ;
   %else %do ;
      %put Dataset Does Not Exist;
   %end ;
%mend check_exists;

当您运行此宏时,如果数据集存在,它将返回“数据集存在”。

否则将返回“不存在”。

以下示例展示了如何在实践中使用该宏。

示例:检查 SAS 中是否存在数据集

假设我们在 SAS 中创建以下数据集,名为data1

 /*create dataset*/
data data1;
    input hours score;
    datalines ;
1 64
2 66
4 76
5 73
5 74
6 81
6 83
7 82
8 80
10 88
;
run ;

/*view dataset*/
proc print data =data1; 

我们可以定义以下宏来检查数据集是否存在:

 %macro check_exists(data);
   %if %sysfunc ( exist (&data.)) %then %do ;
      %put Dataset Exists;
   %end ;
   %else %do ;
      %put Dataset Does Not Exist;
   %end ;
%mend check_exists;

然后我们可以运行这个宏来检查名为data1的数据集是否存在:

 /*check if dataset called data1 exists*/
%check_exists (data1);

当我们查看日志时,我们可以看到宏返回Does Exist,因为data1确实存在:

现在假设我们还运行宏来检查名为data2的数据集是否存在:

 /*check if dataset called data2 exists*/
%check_exists (data2);

当我们查看日志时,我们可以看到宏返回不存在,因为从未创建名为data2的数据集。

注意:您可以在此处找到 SAS 中EXIST函数的完整文档。

其他资源

以下教程解释了如何在 SAS 中执行其他常见任务:

SAS中如何删除数据集
如何在SAS中重命名变量
如何在 SAS 中创建新变量

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注