使用年份月份名称将导出从SAS循环到.dta格式

时间:2018-06-21 14:29:32

标签: loops sas

我是STATA用户,因此不熟悉使用SAS。但是,我当前项目所需的所有文件都以SAS格式存储,因此我想使用SAS代码将它们从SAS转换为.dta格式。 这些文件按月存储,如下所示:

1976-x1976M1,x1976M2,x1976M3 ...... x1976M12

其中1976是文件夹,每个月例如。 x1976M1是一个文件,其中包含该月和该年的观测值。

我想以相同的文件结构将这些文件导出为.dta格式,以便我可以轻松地将它们读入STATA。

对于是否可以循环访问每个文件夹,还是必须逐个循环每个文件夹,我并不挑剔-有40个文件夹,每个文件夹中有12个文件。

因此,我将至少需要创建一个从m1到m2的循环,该循环附加到文件名的末尾,例如。 filename1976 + my,其中y = [1,12]。理想情况下,我将能够创建一个从一个文件夹到下一个文件夹的循环,并通过嵌套循环执行此过程。

我希望这一切令人满意!如果没有,请发表评论,我会相应地调整我的问题。

丹尼尔

1 个答案:

答案 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);