Optimization 如何通过在SAS运行时不断减速的语句来加速SAS?
我通过Optimization 如何通过在SAS运行时不断减速的语句来加速SAS?,optimization,sas,mixed-models,Optimization,Sas,Mixed Models,我通过BY语句在SAS中运行许多小型混合模型,这总共需要几个小时。我还收集ODS输出以导出到.csv文件。从Log窗口中的输出中,我注意到程序在开始时运行得非常快,但在运行时不断减慢。有没有办法加快速度?我曾考虑在我的数据子集上运行它,但希望有一个更优雅的解决方案,在最后仍然可以导出一个.csv文件。这可能吗?谢谢大家! 我的代码: ods listing; ods output Tests3=Tests3; proc MIXED data=my_data;
BY
语句在SAS中运行许多小型混合模型,这总共需要几个小时。我还收集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;
通过添加一个
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;
这将运行时间从超过4小时减少到不到30分钟,并且在运行过程中没有明显的减速。显然,SAS 9.3及更高版本会自动生成HTML格式的输出,并将其保存到硬盘驱动器中,除非明确告知不要这样做,并且该文件可能非常大,因为它包含大量格式信息。添加到这个不断增长的大文件中是导致持续减速的原因
应该注意的是,该解决方案确实阻止了“结果查看器”窗口的显示,但这非常适合我目前的目的。另见
及
您不需要跟踪。如果您正在生成TESTS3数据集,您还需要打印输出吗?谢谢!我删除了ods跟踪语句。打印输出是指.csv文件吗?在我的下一个管道中我需要它,但是如果你是这个意思的话,我不需要在“结果查看器”窗口中看到任何东西。不,进程的实际打印结果是混合的。您打开了列表输出。如果你打开了任何其他ODS目的地,比如HTML或PDF,它也试图在那里打印。哦,打印输出是指“输出”窗口吗?我也不需要。我没有将ODS输出显式发送到其他目标的代码。您有多少个BY组?如果使用ODS RESULTS off语句关闭所有ODS输出,则不需要关闭HTML目标。这在使用SAS/Studio或Enterprise Guide时非常重要,因为程序很难重新创建那些工具创建的ODS目的地。谢谢@Tom!我删除了
ODS HTML代码>语句。