绣球 发表于 2022-11-9 16:15 
有一个思路可以考虑一下:
用proc contents获取该表的变量名和变量类型,再分类型循环获取后更改
这个程序是将数值转换为字符,我看不懂。
proc contents data=a1 out=cont noprint; run;
proc sql noprint;
select compress(name||'='||'_'||name) into: renames separated by' '
from cont
where type=1 ;
select compress(name||'=strip(put(_'||name||", $12.));")into: tochar separated by' '
from cont
where type=1 ;
quit;
%put "content: &tochar";
data a_new;
set a1 (rename=(&renames.));
&tochar;
drop _: ;
run;