SAS 对数据集所有字段rename

Posted jiulaosan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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后方便后续操作。

以上是关于SAS 对数据集所有字段rename的主要内容,如果未能解决你的问题,请参考以下文章

sas,combine,未知代码数据集观察

SAS 程序删除和数据集

SAS:用所有数据绘制预测数据

SAS 统计某个数据集各个字段频数,并汇集到一个表中

SAS 对数据的拼接与串接

第二章 导入数据到SAS | 逻辑库和SAS数据集