Вызовите программу sas в цикле - PullRequest
0 голосов
/ 17 декабря 2018

У меня есть программа SAS.Мне нужно вызывать программу SAS несколько раз, каждый раз передавая другой параметр даты.Правильно ли я понимаю, что сначала мне нужно обернуть весь файл .sas в какой-то макрос, а затем мне нужно повторно вызывать этот макрос?Или есть способ сделать это, не заключая его в макрос?

1 Ответ

0 голосов
/ 19 декабря 2018

Короче говоря: возможно, да.

Может быть:

Если у вас есть конкретная программа, которую вы хотите запускать каждый раз с определенным параметром, который можно выполнить из командылиния.Существует переменная sysparm, которая импортируется в программу, например:

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

, что в коде SAS эквивалентно:

%let sysparm = 21537; 

Это позволяет вам ограничивать,метка данных с вашего ввода столько, сколько нужно.Также вы можете запускать вашу программу столько раз, сколько пожелаете.Мы анализируем Sysparm, чтобы передать несколько параметров.

Подробнее о Sysparm см. Документацию

Да:

Если вы хотите выполнить код несколько раз всеанс вы в идеале хотите что-то вроде:

 %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);
...