如何加快运行时不断减慢的SAS BY语句?
How to speed up SAS BY statement which continuously slows down as it runs?
我通过 BY
语句在 SAS 中 运行 很多小型混合模型,总共需要几个小时。我还收集 ODS 输出以导出到 .csv
文件。从 Log
window 中的输出我注意到程序在开始时运行得非常快,但在运行时会不断减慢。有什么办法可以加快速度吗?我在我的数据子集上考虑过 运行 它,但希望有一个更优雅的解决方案,它仍然会在最后导出单个 .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;
这将运行时间从四个多小时减少到不到 30 分钟,并且在进行过程中没有明显的减速。显然,SAS 9.3 及更高版本会自动生成 HTML 格式的输出并将其保存到硬盘驱动器,除非特别告知不要这样做,并且该文件可能非常大,因为它包含大量格式信息。添加到这个不断增长的大文件是持续减速的原因。
需要注意的是,这个解决方案确实阻止了 "Results Viewer" window 的显示,但这很适合我目前的目的。另见
Suppressing HTML output in SAS 和
https://support.sas.com/resources/papers/proceedings12/250-2012.pdf
我通过 BY
语句在 SAS 中 运行 很多小型混合模型,总共需要几个小时。我还收集 ODS 输出以导出到 .csv
文件。从 Log
window 中的输出我注意到程序在开始时运行得非常快,但在运行时会不断减慢。有什么办法可以加快速度吗?我在我的数据子集上考虑过 运行 它,但希望有一个更优雅的解决方案,它仍然会在最后导出单个 .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;
这将运行时间从四个多小时减少到不到 30 分钟,并且在进行过程中没有明显的减速。显然,SAS 9.3 及更高版本会自动生成 HTML 格式的输出并将其保存到硬盘驱动器,除非特别告知不要这样做,并且该文件可能非常大,因为它包含大量格式信息。添加到这个不断增长的大文件是持续减速的原因。
需要注意的是,这个解决方案确实阻止了 "Results Viewer" window 的显示,但这很适合我目前的目的。另见
Suppressing HTML output in SAS 和
https://support.sas.com/resources/papers/proceedings12/250-2012.pdf