使用 %MACRO 和数据集值 SAS 动态导入平面文件

Importing Flat file dynamically using %MACRO and dataset values SAS

我有一个包含各种平面文件的文件夹。每个月都会添加新文件,我需要使用自动化作业导入这些原始数据。除了最后一小块,我都搞定了。

这是我的逻辑: 1)我扫描文件夹并获取符合特定描述的所有文件名 2)我将所有这些文件名和路由存储在一个数据集中 3) 已经创建了一个宏来检查文件是否已经被导入。如果有,则什么也不会发生。如果还没有导入,将导入。

我需要做对的最后一部分是,我需要遍历在步骤 2 中创建的数据集中的所有记录,并对所有文件名执行步骤 3 中的宏。

最好的方法是什么?

查看 call execute 以从数据步骤执行宏。

我最常用的方法,就是把宏语句写到一个文件中,然后用%include提交。我想按照 Reeza 的建议调用 execute 更好,但是当我这样做时我感觉更有控制力:

filename s temp;
data _null_;
    set table;
    file s;
    put '%macrocall(' variable ');';
run;
%inc s;