SAS宏(如果存在)



如果数据集dataset_1&x._&y.存在,我想从中获取数据,但如果它不存在,我希望从dataset_2中获取数据。

我尝试了以下宏,但它不起作用:


%macro test(x,y);
%if %sysfunc(exist(dataset_1_&x._&y.)) %then %do;
data final_data;
set dataset_1_&x,_&y.;
run;
%end;
%else %do;
data final_data;
set dataset_2;
run;
%end;
%mend;

试试这个-不需要定义宏:

%let exist=%sysfunc(exist(work.dataset_1&x._&y.));
%let inds=%sysfunc(ifc(&exist=1,work.dataset_1&x._&y.,work.dataset_2));
data work.final_data;
set &inds;
run;

如果确实希望宏查看数据集(或视图(是否存在,可以使用以下内容:https://core.sasjs.io/mf__existds_8sas.html

相关内容

最新更新