Файл autoexec.sas включает в себя набор операторов SAS, которые будут выполнены сразу же после того, как SAS будет инициализирован (запущен) и до того, как будет принят любой пользовательский ввод.
Такой файл должен называться именно autoexec с расширением .sas - почему именно так, а также более детальное описание всех тонкостей читайте по ссылкам, указанным в “Дополнительные материалы”.
Набор операторов, содержащийся в autoexec.sas может быть использован для:
- автоматизации запуска SAS программ в текущей сессии SAS;
- инициализации определенных переменных для использования в текущей сессии SAS;
- либо для установки системных опций в текущей сессии SAS.
В обучающем проекте SASTrainingProject autoexec.sas включает в себя вот такой набор операторов SAS:
* Set-up project-level macro variables for: - project dir path, - paths to the project level folders; %global root rawdata g_data g_list g_macro g_logs g_code; %let root=%str(\\sas01\Training_Kharkhov\SASTrainingProject); %let rawdata=%str(&root\rawdata); %let g_data=%str(&root\data); %let g_list=%str(&root\list); %let g_macros=%str(&root\macros); %let g_logs=%str(&root\logs); %let g_code=%str(&root\code);
Вышеприведенный кусок кода инициализирует макропеременные и устанавливает значения этих переменных равными полному пути к папке проекта (root) и соответствующим папкам внутри проекта (rawdata data list macros logs code). Детально про SAS Macro Language читаем в Lesson 7.
Т.е. при каждом запуске SAS внутри SASTrainingProject вам по умолчанию будут доступны макропеременные &root, &rawdata, &g_data, &g_list, &g_macros, &g_logs и &g_code. Изначально они нам нужны для назначения default libnames для каждого урока, а также libnames для data и rawdata. Но, в дальнейшем, их можно использовать и в ваших программах.
Ниже приведен код, который объявляет каждую библиотеку:
* Assign libnames for the input data for each lesson; libname data "&g_data"; libname rawdata "&rawdata"; libname lesson01 "&rawdata\lesson01"; libname lesson02 "&rawdata\lesson02"; libname lesson03 "&rawdata\lesson03"; libname lesson04 "&rawdata\lesson04"; libname lesson51 "&rawdata\lesson05_1"; libname lesson52 "&rawdata\lesson05_2"; libname lesson06 "&rawdata\lesson06"; libname lesson08 "&rawdata\lesson08"; libname lesson09 "&rawdata\lesson09"; libname lesson10 "&rawdata\lesson10"; libname lesson13 "&rawdata\lesson13"; libname lesson14 "&rawdata\lesson14"; libname lesson15 "&rawdata\lesson15"; libname lesson16 "&rawdata\lesson16"; libname lesson17 "&rawdata\lesson17"; libname lesson18 "&rawdata\lesson18"; libname lesson19 "&rawdata\lesson19"; libname lesson20 "&rawdata\lesson20"; libname lesson21 "&rawdata\lesson21"; libname lesson22 "&rawdata\lesson22";
Далее в файл autoexec.sas включен код, который определяет набор системных SAS опций, которые будут актуальны по умолчанию для текущей сессии SAS:
* Specify project-level session options; options orientation = landscape ls=140 ps=45 nocenter nobyline nodate nonumber; options nomlogic nosymbolgen missing = ''formchar = '|_---|+|---+=|-/\<>*';
Более детально ознакомиться со всеми системными опциями SAS можно по ссылкам, указанным в “Дополнительные материалы”.
Далее с помощью процедуры OPTSAVE сохраняем все указанные нами опции в реестре с кодовым именем «proj_options» (это имя в дальнейшем может быть использовано для, например, сброса текущих пользовательских опций к тем, что мы определили выше).
* Save specified options; proc optsave key="proj_options"; run;
Дополнительные материалы: