我是STATA用户,因此不熟悉使用SAS。但是,我当前项目所需的所有文件都以SAS格式存储,因此我想使用SAS代码将它们从SAS转换为.dta格式。 这些文件按月存储,如下所示:
1976-x1976M1,x1976M2,x1976M3 ...... x1976M12
其中1976是文件夹,每个月例如。 x1976M1是一个文件,其中包含该月和该年的观测值。
我想以相同的文件结构将这些文件导出为.dta格式,以便我可以轻松地将它们读入STATA。
对于是否可以循环访问每个文件夹,还是必须逐个循环每个文件夹,我并不挑剔-有40个文件夹,每个文件夹中有12个文件。
因此,我将至少需要创建一个从m1到m2的循环,该循环附加到文件名的末尾,例如。 filename1976 + my,其中y = [1,12]。理想情况下,我将能够创建一个从一个文件夹到下一个文件夹的循环,并通过嵌套循环执行此过程。
我希望这一切令人满意!如果没有,请发表评论,我会相应地调整我的问题。
丹尼尔
答案 0 :(得分:0)
一些同事给我的代码。希望这对任何遇到相同问题的人都有帮助。由于每个文件夹都不会循环,因此需要对其进行更新。 干杯!
libname name 'G:\folder\'; run`;
%macro subset1976(month=);
data subset1976_&month;
set name.file1976_&month;
keep xyz /*varnames*/
;
if age>=15;
noc2011 = soc4+0;
run;
%mend;
%subset1976(month=jan);
%subset1976(month=feb);
....
%macro export1976(month=);
proc export data=subset1976_&month outfile='G:\lfs\subset1976_&month.dta' replace dbms=stata; run;
%mend;
%export1976(month=jan);
%export1976(month=feb);