我看下来,你是不是想给逻辑库里的一批数据集增加一个字段,值是该数据集的名称?
下面我举了一个例子来实现这个想法,希望对你有帮助
/**获取所有WORK逻辑库里所有数据集的名称**/
proc sql;
create table tablename as
select memname from dictionary.tables/*dictionary.tables是SAS数据字典表,固定用法*/
where libname eq "WORK";/*填写逻辑库名*/
QUIT;
data tablename;
set tablename;
call symput ('numvars',_n_);run;/*获取数据集的数量*/
%macro datesetname;
%do i=1 %to &numvars.;
data _null_;
set tablename;
if _n_=&i.;
call symput ('dname',memname);run;/*按顺序读取数据集的名称**/
data &dname.;
set &dname.;
format datesetname $20.;
datesetname="&dname.";/**添加一个字段,值为数据集名称*/
run;
%end;
%mend;
%datesetname;