SAS中文论坛
标题:
如何给全体数据集改名
[打印本页]
作者:
shiyiming
时间:
2009-11-23 16:57
标题:
如何给全体数据集改名
有个文件夹下的十几个数据集名 格式都是PPSY_%的形式,可是下划线后面接的位数不同 有的是PPSY_CC21 有的是PPSY_CC33345 现在我想把所有数据集的名字前面的PPSY_都去掉 请问如何操作?谢谢!
作者:
shiyiming
时间:
2009-11-23 17:18
标题:
Re: 如何给全体数据集改名
这个可以用total comander的multi-rename tool,这是一个文件夹管理软件,很好用,呵呵。不知道怎么用sas改。
作者:
shiyiming
时间:
2009-11-24 09:15
标题:
Re: 如何给全体数据集改名
下面的程序只是随手写的,请自己调试。
[code:3jbw77yw]
%macro a;
options nofmterr;
libname mylib '<文件夹>';
proc contents data=mylib._ALL_ out=a noprint;
run;
proc sql;
create table tabnam as
select distinct memname from a;
quit;
data tabnam;
set tabnam;
if substr(memname,1,5)='PPSY_' then do;
memname_new=substr(memname,6,length(strip(memname))-5);
output;
end;
run;
data _NULL_;
set tabnam end=final;
call symput('old'||trim(left(put(_N_,best.))),memname);
call symput('new'||trim(left(put(_N_,best.))),memname_new);
if final then call symput('tabno',trim(left(put(_N_,best.))));
run;
%do i=1 %to &tabno;
data &&new&i;
set &&old&i;
run;
%end;
%mend a;
%a
[/code:3jbw77yw]
作者:
shiyiming
时间:
2009-11-24 10:56
标题:
Re: 如何给全体数据集改名
死猪头
作者:
shiyiming
时间:
2009-11-24 11:17
标题:
Re: 如何给全体数据集改名
恩,没想到,呵呵。
我写了个例子,
proc datasets library=mylib nolist;
change Ppsy_t1=t1 Ppsy_t2=t2 / memtype=data;
run;
quit;
不过如果想批量修改的话还是要用到宏语句呢。
proc datasets library=mylib nolist;
change %do i=1 %to %tabno; &&old&i=&&new&i %end;/ memtype=data;
run;
quit;
作者:
shiyiming
时间:
2009-12-1 21:57
标题:
Re: 如何给全体数据集改名
data abc;
input x1 x2 x3;
datalines;
0.91 0.54 0.47
0.61 0.01 0.20
0.74 0.87 0.53
0.24 0.32 0.82
0.72 0.34 0.95
0.96 0.23 0.76
0.54 0.25 0.20
0.61 0.25 0.27
0.89 0.86 0.85
0.03 0.99 0.99
0.23 0.96 0.17
;
run;
proc transpose data=abc out=ex name=name;
run;
data ex;
set ex;
name=catt(name,'_sdf');
run;
proc transpose out=abc(drop=_name_);
id name;
run;
去掉的话用scan就ok了。
作者:
shiyiming
时间:
2009-12-1 21:59
标题:
Re: 如何给全体数据集改名
用sql也可以改。
欢迎光临 SAS中文论坛 (https://mysas.net/forum/)
Powered by Discuz! X3.2