判断变量是否存在数据集中
在工作中总是会遇到如果这个变量存在,我们如何处理。如果这个变量不存在,我们应该如何处理。这个小MACRO希望可以帮助大家
%macro varexist(indata=,invar=);
%local dsid varnum rc;
%global pos_&invar.;
%let dsid=%sysfunc(open(&indata.));
%if &dsid ne 0 %then %do;
%let varnum=%sysfunc(varnum(&dsid,&invar.));
%put &varnum;
%if &varnum>0 %then %do;
%put "&invar. Exist in the &indata";
%let pos_&invar.=&varnum;
%end;
%end;
%else %do;
%put "Please check the DATA name";
%end;
%let rc=%sysfunc(close(&dsid));
%mend;
%varexist(indata=a,invar=sex);
** test **;
%varexist(indata=a,invar=sex);
** log **;
"sex Exist in the a"
希望大家批评指正~