Как ускорить оператор SAS BY, который постоянно замедляется во время работы? - PullRequest
0 голосов
/ 03 мая 2020

Я запускаю множество небольших смешанных моделей в SAS с помощью оператора BY, что в целом занимает несколько часов. Я также собираю вывод ODS для экспорта в файл .csv. Из вывода в окне Log я заметил, что в начале программа работает очень быстро, но при запуске постоянно замедляется. Есть ли способ ускорить это? Я подумал о том, чтобы запустить его на подмножествах моих данных, но надеялся, что найдется более элегантное решение, которое все равно будет экспортировать один файл .csv в конце. Это возможно? Спасибо!

Мой код:

ods listing;
ods output  Tests3=Tests3;

proc    MIXED   data=my_data;               
class   by_group    Factor1 Factor2 Factor3;    
model   response    = Factor1|Factor2   /   ddfm=satterth   s;
random  Factor3;
BY  by_group;   
run;    

proc    export  data=Tests3 outfile='.\Tests3.csv'  dbms=csv replace; run;

1 Ответ

1 голос
/ 03 мая 2020

Мне удалось значительно сократить время выполнения, добавив вначале оператор

ODS RESULTS OFF;

, например, так:

ODS RESULTS OFF;
ods listing;
ods output  Tests3=Tests3;

proc    MIXED   data=my_data;               
class   by_group    Factor1 Factor2 Factor3;    
model   response    = Factor1|Factor2   /   ddfm=satterth   s;
random  Factor3;
BY  by_group;   
run;    

proc    export  data=Tests3 outfile='.\Tests3.csv'  dbms=csv replace; run;

Это позволило сократить время выполнения с четырех часов до менее 30 минут, без заметного замедления по мере его продвижения. По-видимому, SAS 9.3 и выше автоматически производит вывод в формате HTML и сохраняет его на жестком диске, если не указано иное, и этот файл может быть довольно большим, если он содержит много информации о форматировании. Добавление к этому большому и постоянно растущему файлу стало причиной непрерывного замедления.

Следует отметить, что это решение не позволяет отображать окно «Просмотр результатов», но это вполне подходит для моих нынешних целей. См. Также

Подавление HTML вывода в SAS и

https://support.sas.com/resources/papers/proceedings12/250-2012.pdf

...