Goo day,
我正在关注从第10代开始的永久文件系列:
file#010
file#011
file#012
....
file#062
file /*the latest one*/
这是由于一些清理工作,其中1-9代被认为有错误的数据并被删除。
我想重新生成该系列,以便第一代产生#001,#002等等:
file#001
file#002
file#003
....
file#052
file /*the latest one*/
我唯一能想到的方法是将整个系列保存到另一个名称,删除旧数据并重新保存。这似乎很愚蠢,并且潜在的 -ooops - 损害风险太高。有关如何重新生成世代数的任何想法?
答案 0 :(得分:0)
如果您要问的是如何使用SAS重命名这些文件,那么应该这样做(假设您的环境允许X命令):
%let dir=<path_to_your_folder>;
filename fn pipe "dir /b &dir.\file#*";
data _null_;
infile fn;
input;
rc=rename(cats("&dir.\",_infile_),cats("&dir.\file#",put(_N_,z3.)),'file');
run;
您只能使用SAS功能
%let dir=<path_to_your_folder>;
data _null_;
filename root "&dir";
did=dopen('root');
numfiles=dnum(did);
n=10;
do i=1 to numfiles;
physname=dread(did,i);
if prxmatch('/^file#\d\d\d/',physname) then do;
rc=rename(cats("&dir.\",physname),cats("&dir.\file#",put(n,z3.)),'file');
n+1;
end;
end;
rc=close(did);
run;