k******w 发帖数: 269 | 1 filename lib pipe "dir C:Downloads*.dta /b";
data file;
length filenames $ 60;
infile lib truncover;
input filenames : $;
filenames="C:Downloads"||filenames;
run;
proc sort data=file; by filenames;run;
data null;
set file;
call symputx('file'||put(_n_,z2.),filenames,'G');
run;
_________________
假设我有21个files,从0.dta 到 20.dta
我希望能按数字顺序import到file里,可是结果顺序是:
0
1
11
12
13
.
.
.
19
20
21
3
4
5
...
哪位高手指点一下,多谢! | a***2 发帖数: 1399 | 2 这跟sas有毛关系。小技巧:文件名加上1000,变成 1001, 1002,。。。。1021,
1022....
有用的话发个包子过来吧。
【在 k******w 的大作中提到】 : filename lib pipe "dir C:Downloads*.dta /b"; : data file; : length filenames $ 60; : infile lib truncover; : input filenames : $; : filenames="C:Downloads"||filenames; : run; : proc sort data=file; by filenames;run; : data null; : set file;
| s******8 发帖数: 102 | 3 也可加一个临时数字变量;
data file;
length filenames $ 60;
infile lib truncover;
input filenames : $;
nf=input(strip(scan(filenames,1,'.')),2.);
filenames="C:Downloads"||filenames;
run;
proc sort data=file; by nf;run;
data null;
set file;
call symputx('file'||put(_n_,z2.),filenames,'G');
run; |
|