This section describes the features of base SAS procedures
that have
been implemented or enhanced since Release 6.12. Version 8 changes and enhancements
are preceded by
. All other changes and enhancements described were included in Version
7. If you use SAS software in an OS/390, CMS, or OpenVMS VAX environment,
then also see Additional Changes and Enhancements for OS/390, CMS, and OpenVMS VAX .
For information about changes and enhancements to base SAS procedures
that are relevant only to a particular operating environment, see the SAS
documentation for that operating environment.

Changes That Affect Multiple Procedures 
Output Delivery System
The Output Delivery System (ODS) is a new feature that enhances your
ability to manage procedure output. Procedures that fully support ODS
 store links to each piece of output in the Results folder in
the SAS Explorer
 can generate HTML output
 can generate output for a highresolution printer
 can generate output data sets
from procedure output
 provide a way for you to customize the procedure output by creating
templates that you can use whenever you run the procedure.
For more information on ODS, see
Output Delivery System .
Integrity Constraints
Integrity constraints are a set of rules that modifications to data
sets (tables) must follow in order to guarantee the validity of the data.
You can create integrity constraints with the DATASETS and SQL procedures.
Integrity constraints have implications for other procedures, such as PROC
SORT and PROC CPORT. (See the information on individual procedures.)
Generation Data Sets
Generation data sets enable you to keep historical versions of SAS data
sets, SAS data views, SAS catalogs, and SAS/ACCESS files. In addition, a historical
record of changes is provided so that you can audit the changes that have
been made to these files.
PROC DATASETS manages the generation group  the set of generation
data sets (see The DATASETS Procedure ).
Other procedures can use the GENNUM= data set option to read a specific version
of the data.
Changes to the Behavior of the WEIGHT Statement
Prior to Version 7 of the SAS System, all base procedures except PROC
REPORT used a value of 0 for missing weights. PROC REPORT and most SAS/STAT
procedures, such as PROC GLM, excluded observations with missing weight from
the analysis. Now all procedures exclude observations with missing weights
from the analysis.
PROC REPORT and most SAS/STAT procedures have always excluded not only
observations with missing weights but also observations with negative and
zero weights from the analysis. Now, base procedures that do not, by default,
exclude observations with negative and 0 weights support the EXCLNPWGT option
in the PROC statement. EXCLNPWGT excludes observations with negative and 0
weights.
For more information, see WEIGHT .

Changes to Existing Procedures 
PROC CATALOG
 The PROC CATALOG statement supports this new option:
 FORCE
 forces statements to execute when the catalog has been opened
by a process other than the current one.
 The COPY statement supports
the NEW option, which overwrites the destination
catalog (specified by OUT=) if it already exists.
PROC CIMPORT
 The CIMPORT procedure transports integrity constraints, passwords,
and generation data sets.
 The PROC CIMPORT statement supports these new
options:
 MEMTYPE=
 specifies to move only data sets or only catalogs during
a library import.
 NEW
 creates a new catalog for the imported transport file, and
deletes any existing catalog with the same name.
 The
SELECT statement and the EXCLUDE
statement replace the SELECT= option and the EXCLUDE= option.
PROC CORR

The
WEIGHT statement now excludes observations with missing weight values from
the analysis.

The EXCLNPWGT option in the PROC CORR statement excludes observations with
nonpositive weights from the analysis.
PROC CPORT
 The procedure transports integrity constraints, passwords, and
generation data sets.
 The SELECT statement and the
EXCLUDE statement replace the SELECT= option and the EXCLUDE= option.
PROC DATASETS
The SAS System now supports the creation and maintenance of generations
of SAS data sets. A generation group consists of the base version of the
file and a set of historical versions. You can use PROC DATASETS to manage
generation data sets.
The SAS System now supports the creation of integrity constraints.
Integrity constraints are a set of rules that modifications to a data set
(table) must follow in order to guarantee the validity of the data. You can
use PROC DATASETS to create and delete integrity constraints.
For more information on using PROC DATASETS with generation data sets
and integrity constraints, see The DATASETS Procedure .
 PROC DATASETS supports these new
statements:

AUDIT
 initiates and controls event logging to an audit file.
 IC
CREATE
 creates an integrity constraint.
 IC
DELETE
 deletes an integrity constraint.
 IC
REACTIVATE
 reactivates a foreign key integrity constraint that has
been set to inactive.
 INDEX
CENTILES
 updates centiles information for indexed variables.
 The
APPEND statement supports this new option:
 APPENDVER=V6
 uses the Version 6 behavior for appending observations to
the BASE= data set.
 The CHANGE statement supports this new
option:
 GENNUM=
 restricts processing to a single generation file or to the
entire generation group.
 The CONTENTS statement supports these
new options:
 CENTILES
 prints centiles information for indexed variables.

OUT2=
 names an output data set to contain information about indexes
and integrity constraints.
 The COPY statement supports this new
option:
 CONSTRAINT=
 specifies whether to copy all integrity constraints when
copying a data set.
 The DELETE statement supports this new
option:
 GENNUM=
 restricts processing to the specified generation files
 The
INDEX CREATE statement supports this new option:
 UPDATECENTILES=
 specifies when the centiles are updated.
 The IC
DELETE statement supports this new option:

_ALL_
 deletes all constraints.
 The INDEX DELETE statement
supports this new option:

_ALL_
 deletes all indexes, except for indexes that are owned by
an integrity constraint.
 The MODIFY statement supports these new
options:
 GENMAX=
 sets the maximum number of generation files in a generation
group.
 GENNUM=
 restricts processing to the specified generation file.
 The
REPAIR statement supports this new option:
 GENNUM=
 restricts processing to the specified generation files.
PROC FORMAT
 The PICTURE statement supports these
new options:
 DATATYPE=
 specifies that the picture value is a template for formatting
date, time, or datetime values.
 DECSEP=
 specifies the separator character for the fractional part
of a number. By default, this character is a period (.)
 DIG3SEP=
 specifies the character that separates each group of three
digits in a number. By default, this character is a comma (,).
 MULTILABEL
 indicates that multiple labels for the same range are allowed.
Secondary labels can be used by certain applications that are designed to
handle multilabel formats. For all other applications, the secondary labels
are ignored.
When MULTILABEL is specified, overlapping ranges are also permitted.
 The
VALUE statement supports this new option:
 MULTILABEL
 indicates that multiple labels for the same range are allowed.
Secondary labels can be used by certain applications that are designed to
handle multilabel formats. For all other applications, the secondary labels
are ignored.
When MULTILABEL is specified, overlapping ranges are also permitted.
PROC FREQ
PROC MEANS
PROC OPTIONS
The OPTION= option in the PROC OPTIONS statement supports two new
suboptions, DEFINE and VALUE,
that provide additional information about the specified option.
PROC PMENU
PROC PMENU supports submenus to enable multiple items to point to a
common submenu.
PROC PRINT
 The PROC PRINT statement supports
this new option:
 OBS=
 specifies a column header for the column that identifies
each observation by number.
 The N= option in the PROC PRINT
statement has been enhanced so that you can specify explanatory
text to print with the value of N.
PROC REPORT
PROC SQL
 Some PROC SQL views are now updateable. The view must be based
on a single DBMS table or SAS data file and must not contain a join, an ORDER
BY clause, or a subquery.
 Whenever possible, PROC SQL passes joins to the DBMS rather than
doing the joins itself. This enhances performance.
 You can now store DBMS connection information in a view with the
USING LIBNAME clause.
 A new option, DQUOTE=ANSI, enables you to use names that are not
normally permissible in PROC SQL.
 A PROC SQL query can now reference up to 32 views or tables. PROC
SQL can perform joins on up to 32 tables.
 PROC SQL can now create and update tables that contain integrity
constraints.
For more information, see The SQL Procedure
PROC STANDARD
 The PROC STANDARD statement supports this new option:
 EXCLNPWGT
 excludes observations with nonpositive weights from the
analysis.
 The WEIGHT statement now excludes observations
with missing weight values
from the analysis.
PROC SUMMARY
 The PROC SUMMARY statement supports this new option:
 EXCLNPWGT
 excludes observations with nonpositive weights from the
analysis.
 The WEIGHT statement now excludes observations
with missing weight values
from the analysis.
PROC TABULATE
PROC UNIVARIATE

PROC UNIVARIATE now supports high resolution graphical displays. You can generate
histograms and comparative histograms and optionally superimpose fitted probabilty
density curves for various distributions and kernel density estimates. You
can generate quantilequantile plots (QQ plots) and probability plots to
compare a data distribution with various theoretical distributions. You also
have the ability to inset summary statistics in the graphical displays.
 The WEIGHT statement now excludes
observations with missing weight values
from the analysis.
 The output from PROC UNIVARIATE has been reorganized and includes
some new tables:
 The Moments table displays only those statistics that are related to
sample moments. 
 A new table, Tests for Location, shows the Student's t
test, the sign test, and the signed rank test. 
 A new table, Basic Statistical Measures, provides basic measures of
location and variability. 
 The UNIVARIATE procedure supports these new statements:

CLASS
statement
 specifies one or two class variables for the analysis.
You can use the CLASS statement with a HISTOGRAM, PROBPLOT, or QQPLOT
statement to create oneway and twoway high resolution comparative plots.
When you use a single class variable, PROC UNIVARIATE displays an array
of componentplots (stacked or sidebyside), for each level of the class variable.
When you use two class variables, PROC UNIVARIATE displays a matrix of component
plots, one for each combination of levels of the class variables

HISTOGRAM statement
 creates a high resolution graph of a histogram and optionally
includes parametric and nonparametric density curve estimates. You can use
the HISTOGRAM statement to specify the midpoints for histogram intervals,
display density curves for fitted theoretical distributions (beta, exponential,
gamma, lognormal, normal, and Weibull) on histograms, request goodnessoffit
tests for fitted distributions, display kernel density estimates on histograms,
save histogram intervals and parameters of fitted distributions in output
data sets, and request graphical enhancements.

INSET
statement
 Places a box or table of summary statistics, called an inset, directly in the graphical display. The inset can display statistics
that PROC UNIVARIATE calculates or display values that you provide in a SAS
data set. The INSET statement does not produce the graphical display. You
must specify a HISTOGRAM, PROBPLOT, or QQPLOT statement. You can use options
in the INSET statement to specify the position of the inset, to specify
a header for the inset, and to specify graphical enhancements, such as background
colors, text colors, text height, text font, and drop shadows

PROBPLOT
statement
 creates a highresolution graphics display of a probability
plot, which compares ordered variable values with the percentiles of a specified
theoretical distribution.

QQPLOT
statement
 Creates a graphical display of a quantilequantile plot
(QQ plot), which compares ordered variable values with quantiles of a specified
theoretical distribution.
 The PROC UNIVARIATE
statement statement supports these new options:

ANNOTATE=
 specifies an input data set that contains annotate variables
as described in SAS/GRAPH documentation. You can use this data set to add
features to your high resolution graphics. PROC UNIVARIATE adds the features
in this data set to every high resolution graph produced in the PROC step.
 EXCLNPWGT
 excludes observations with nonpositive weights from the
analysis.

GOUT=
 specifies the SAS catalog in which to save the high resolution
graphics output that the UNIVARIATE procedure produces.
PROC UNIVARIATE also supports the following enhancements:
 The ALL option
requests tables of confidence limits, frequency,
modes, and extreme values, and plots. For unweighted analysis variables, it
also requests location counts, tests for normality, and robust estimators
of scale and location.
 The CIBASIC option produces the Basic Statistical Measures table.
This table provides basic measures of location and variability.
 The EXCLNPWGT option excludes observations with nonpositive weights
from the analysis.
 The LOCCOUNT option produces the Location Counts table. This table
shows the numbers of observations greater than, less than, and equal to the
value of the new MU0= option. Formerly, this information was in the Moments
table. The default value for MU0= is 0.
 Mode is no longer shown for continuous data. If there are multiple
modes, the lowest mode is still shown. The MODES option in the PROC UNIVARIATE
statement displays a table of all modes.
 The NORMAL option produces a table of Tests for Normality. These
tests include empirical distribution function (EDF) goodnessoffit tests.
The ShapiroWilk test is included only if the sample size is less than or
equal to 2000. The Kolmogorov test is always included.
 The ROBUSTSCALE option produces a table with robust estimates
of scale.
 The TRIM= option produces a table of trimmed means.
 The WINSOR= option produces a table of winsorized means.
 A new
table, Basic Confidence Limits, provides basic confidence
intervals for the mean, the standard deviation, and the variance.
 You can request confidence intervals for quantiles with these
options:
 CIPCTLNORMAL
 requests confidence intervals that are based on the assumption
that the data are normal.
 CIPCTLDF
 requests confidence intervals that are distribution free.
 The Extremes table is replaced by two tables:
 Extreme Observations
table
 displays the n lowest observations
and n highest observations, where n is specified with the new option NEXTROBS= in the PROC UNIVARIATE
statement. FREQ and ID variables change the table.
 Extreme Values table
 displays the n lowest unique
and n highest unique values, where n is specified with the new option NEXTRVAL= in the PROC UNIVARIATE
statement.
Copyright 1999 by SAS Institute Inc., Cary, NC, USA. All rights reserved.