SAS 對數據集所有字段rename


 
 
%macro rnm(data=,out=);

proc contents data=&data

out=t1(keep=varnum name)
     noprint;
run;

proc sql noprint;
select  name
     into :classname separated by' '
     from t1
     order by varnum;
quit;

%put &classname;

data &out;
set &data;
%let i=1;
%do %until (%scan(&classname.,&i.," ")=);
	%let yn=%sysfunc(compress(%scan("&classname",&i," ")));
	
	rename &yn=C&i;
	%let i=%eval(&i.+1);

%end;

	proc datasets nolist;
	delete t1;
	run;
%mend;

/*調用*/

%rnm(data=test1,out=test2);

/*去除所有label*/

proc datasets lib=output noprint;
        attrib _all_ label='';
run;
 
         

  

 
        

  適用於:數據集字段需要批處理,且字段名稱無規律,統一rename后方便后續操作。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM