Help using Base SAS procedures

Using SAS ODS output with noprint

Reply
Occasional Contributor
Posts: 7

Using SAS ODS output with noprint

Hi, I am trying to create an automated variable selection program that will filter through about 5,000 variables (transformations and such). 

My problem: I need durbin watson test statistics. I know I can do ODS Output DWTest for autoreg, but this has a tendency to slow the program tremendously and great impact performance to the point of it being unusable. It also causes a flurry of errors and is a serious impediment to operation.

If I do noprint, there is no ODS output. Is there a way of getting DW test results (or ADF for that matter) without using ODS output? There will be 5,000 or so times 7 regressions (for each segment). Looking at each test result is not important, storing it is. Using ODS makes it almost unworkable and while I can do it, I estimate to prevent crashes and overwhelming the results I will have to divide it up and make it take a long time.

Super User
Posts: 17,784

Re: Using SAS ODS output with noprint

Occasional Contributor
Posts: 7

Re: Using SAS ODS output with noprint

The problem is when I do noprint there is no ods output. If I use ODS to get the DW, it clogs the results window with thousands of results and often causes a crash.

From what I see, there is no way to get the DW without using ODS.
Super User
Posts: 17,784

Re: Using SAS ODS output with noprint

I think you didn't read the link I posted. The last example shows how to do this, but here's another brute force approach that isn't recommended. Note only the PRINT results go to the listing output. You can just turn off the ODS destination. For better approaches read Ricks post in the link above.

 

ods _all_ close;;
proc means data=sashelp.class nway n median mean min max;
ods output summary=want;
run;

ods listing;

proc print data=want;
run;
Super User
Posts: 17,784

Re: Using SAS ODS output with noprint

Rick's last statement in that post:

 

  • If the statistic that you need is available only in an ODS table, or if the procedure does not support the NOPRINT option, use the ODS EXCLUDE ALL statement to suppress output from all open destinations. Use the ODS OUTPUT statement to specify tables that you want to save to SAS data sets. In this situation, I also recommend that you specify ODS GRAPHICS OFF or use the %ODSOff and %ODSOn macros.
  • Do not use ODS _ALL_ CLOSE to close all destinations. Although this does prevent future ODS output from appearing, the ODS EXCLUDE technique is more portable and easier to implement, as I will discuss in a future article.

 

 

Ask a Question
Discussion stats
  • 4 replies
  • 166 views
  • 2 likes
  • 2 in conversation