循环调用sas程序

时间:2018-12-17 19:18:59

标签: sas

我有一个SAS程序。我需要多次调用SAS程序,每次都传递不同的date参数。 我是否正确,首先我需要将整个.sas文件包装到某种宏中,然后需要重复调​​用该宏?还是有一种无需将其包装在宏中的方法?

1 个答案:

答案 0 :(得分:0)

简而言之:也许是。

也许:

如果您有特定的程序,则希望每次使用可以从命令行完成的某些参数启动。有sysparm变量,将其导入到程序中,如下所示:

> <path>SASHome\SASFoundation\9.4\sas.exe -sysparm "21537"

在SAS代码中等同于:

%let sysparm = 21537; 

这使您可以根据需要限制,标记和输入数据。您也可以使用任意参数多次运行程序。我们要做的是解析Sysparm,以允许传递多个参数。

For more on Sysparm, see documentation

是:

如果您想在一个会话中多次运行代码,则理想情况下,您需要以下代码:

 %macro do_stuff(your_date):
    %put Processing date &your_date.; 

    data data_&your_date.; 
      set someLib.begin; 
      if your_date < data_date < (your_date-20) ; 
    run;
    /*And so forth....*/
 %mend do_stuff; 

 %do_stuff(date_1);
 %do_stuff(date_2);
 %do_stuff(date_3);