SAS中文论坛

标题: 关于合并文件的问题 [打印本页]

作者: shiyiming    时间: 2006-4-21 10:49
标题: 关于合并文件的问题
我已经建立了数据文件夹f,
f中有100个SAS数据文件,名称按照s1,s2,s3,s4,s5,...,s100。
他们格式相同,都有两个变量:SPE和PRO,现需要将他们合并成一个SAS文件,请各位帮忙。
我看过一些资料合并文件的有set语句,merge语句,也可用SQL过程,但像set语句后要列出所有文件,太繁琐了,有简便方法吗?

data   all;
set     f.s1 f.s2 f.s3 f.s4 f.s5 ...f.s100;
run;
作者: shiyiming    时间: 2006-4-21 13:23
标题: to wendygao
如果F下s开头的table只有s1-s100的话,直接按下面的代码运行,当然有其他的话,修改一下where条件即可。
proc sql noprint;
select memname into:tabnm separated by '  ' from sashelp.vtable where
libname='F' and substr(memname,1,1)='S';
quit;

data all;
set &tabnm;
run;
作者: shiyiming    时间: 2006-4-21 13:26
标题: re
注意:separated by 后面的‘’内要有个空格。
作者: shiyiming    时间: 2006-4-22 10:36
标题: 谢谢,不过还有个小问题
谢谢 thisischenhan 的帮助,我运行了一下,SQL过程没有问题,但是“set &tabnm;”这个语句在执行有些问题,系统显示WORK.S1.DATA dose not exist; WORK.S2.DATA dose not exist; WORK.S3.DATA dose not exist; ...

我的文件都在F文件夹里,所以我把F下的文件拷贝到WORK文件夹下,就可运行,请问能否修改一下,不用拷贝就能运行吗?
谢谢!
作者: shiyiming    时间: 2006-4-22 11:00
标题: RE:
M1:
%macro mg;
data f.all;
set %do i=1 %to 100;    S&i.    %end;;
run;
%mend;
%mg;

M2:
proc sql noprint;
select trim(libname)||'.'||left(memname) into:tabnm separated by '    ' from sashelp.vtable where
libname='F' and substr(memname,1,1)='S';
quit;
data f.all;
set &tabnm;
run;
作者: shiyiming    时间: 2006-4-22 12:10
标题: 感谢 em_2002!
按照你的代码,完全可以顺利执行,非常感谢!

另我刚入门不久,希望你推荐几本好的关于学习SAS的书籍,谢谢!




欢迎光临 SAS中文论坛 (http://mysas.net/forum/) Powered by Discuz! X3.2