Output Objects and ODS Destinations |
All SAS procedures produce output objects that ODS delivers to various ODS destinations, according to the default specifications for the procedure or according to your own specifications. Typically, you see the output objects displayed as tables, data sets, or graphs. Underlying all output (for example, a table of parameter estimates) are two component parts:
the data component, which consists of the results computed by a SAS procedure
the template, which contains the instructions for formatting and displaying the results
Each output object has an associated template, provided by the SAS System, that defines its presentation format. You can use the TEMPLATE procedure to view or alter these templates or to create new templates by changing the headers, formats, column order, and so on. For more information, see the chapter titled "The Template Procedure" in the SAS Output Delivery System: User's Guide.
You define the form that the output should take by specifying an ODS destination. Some supported destinations are as follows:
LISTING, the standard SAS monospace listing
HTML, for viewing in a browser
RTF, for inclusion in Microsoft Word
PDF, PostScript, and PCL, for high-fidelity printers
OUTPUT, for saving results to SAS data sets
DOCUMENT, for saving, modifying, and replaying your output
You can open multiple ODS destinations at the same time so that a single procedure step can produce output for multiple destinations. If you do not supply any ODS statements, ODS delivers all output to the default destination (which is usually LISTING or HTML). See the section New Output Defaults in SAS 9.3 for more information about default destinations. You can specify an output style for each ODS destination. The style controls the foreground, background, colors, lines, fonts, and so on.
The following statements provide an example of temporarily closing all open destinations for PROC REG and then opening the LISTING destination for PROC PRINT. The REG procedure makes an output data set, Parms, from the parameter estimates table from PROC REG. Closing unneeded open destinations is not required, but it is done in many examples in this chapter for efficiency. Closing the superfluous destinations suppresses the generation of output that is not needed or used. This is particularly beneficial with graphics. This example uses the Sashelp.Class data set, one of the sample data sets in the Sashelp library that are automatically available for your use. The following statements produce Figure 20.4:
title 'Getting Started with ODS'; ods _all_ close; proc reg data=sashelp.class; model height=weight; ods output ParameterEstimates=parms; run; quit; ods listing; proc print noobs data=parms; run;
The ODS OUTPUT statement contains a table name, an equal sign, and the name of the output SAS data set to create. You can use the ODS TRACE statement to find the table names. The ODS TRACE statement is described in the section Paths and Selection. Also see Example 20.4 for more information.
Getting Started with ODS |
Model | Dependent | Variable | DF | Estimate | StdErr | tValue | Probt |
---|---|---|---|---|---|---|---|
MODEL1 | Height | Intercept | 1 | 42.57014 | 2.67989 | 15.89 | <.0001 |
MODEL1 | Height | Weight | 1 | 0.19761 | 0.02616 | 7.55 | <.0001 |
You could accomplish the same thing using ODS SELECT statements as follows:
ods select none; proc reg data=sashelp.class; model height=weight; ods output ParameterEstimates=parms; run; quit; ods select all; proc print noobs data=parms; run;
You can specify ODS EXCLUDE ALL instead of ODS SELECT NONE and ODS EXCLUDE NONE instead of ODS SELECT ALL. These statements remain in effect until a new ODS SELECT or ODS EXCLUDE statement changes the selection list.