首页 > 其他 > 详细

SAS 判断数据集是否为空,并批量操作非空/空数据集

时间:2019-04-18 15:02:25      阅读:427      评论:0      收藏:0      [点我收藏+]
%macro delete_null(lib=);
														/*lib:数据库名称*/
proc sql noprint;
select memname into :sasdata separated by " " 
from  dictionary.tables
where upcase(libname)=upcase("&lib");
quit;												

%let i=1;
%do %until (%scan(&sasdata.,&i.," ")=);
		%let name=%scan(&sasdata.,&i.," ");			/*循环对work里所有数据集调用内部嵌套的“a”宏*/
		%a(data=&name);
	%let i=%eval(&i.+1);
%end;

%mend delete_null;

%macro a(data=);									/*data:数据集,如果该数据集为空就删掉*/

data _null_;
        if 0 then set &data nobs=nobs;
        call symputx(‘nobs‘,nobs);
        stop;
run;

%if &nobs=0 %then %do;
		proc datasets lib=work nolist;
        delete &data;
        quit;
%end;

%mend a;

  DO之后的操作内容可自定义。

SAS 判断数据集是否为空,并批量操作非空/空数据集

原文:https://www.cnblogs.com/jiulaosan/p/10729506.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!