SAS Language Reference: Dictionary |
Information about changes and enhancements that were
implemented in Version 8 is preceded by
. All other changes and enhancements described
in this section were implemented in Version 7. In other words, if your site
upgraded directly from Version 6 to Version 8, then all of the changes and
enhancements described here are new to you. If you upgraded from Version 7
to Version 8, then only the items preceded by
are new to you.
If you use SAS software under OS/2, OpenVMS Alpha, OpenVMS
VAX, UNIX,
or Windows, then see also
Additional Version 7 Changes and Enhancements for OS/2, OpenVMS Alpha, OpenVMS VAX, UNIX, and Windows.
If you use SAS software under OS/390, CMS, or OpenVMS VAX, then see
also Additional Version 7 Changes and Enhancements for OS/390, CMS, and OpenVMS VAX.
For information about changes and
enhancements to base
SAS software that are relevant only to a particular operating environment,
see the SAS documentation for that operating environment.
|
SAS System Enhancements and New Features |
Overview
New SAS System features, which are described in more
detail in the following sections, include
- Year 2000 compliance
- SAS
output:
- more efficient and powerful control of output
with the Output Delivery System (ODS), including the production of HTML output
and output for high-resolution printers
- new DATA step reporting features.
- SAS Files and
I/O:
- expanded rules for SAS names, including long variable
names and mixed-case variable names
- ability to refer to a permanent SAS data set with
the actual physical filename rather than a SAS library reference
- enhancements to stored compiled DATA step programs and DATA step
views
- logical concatenation of SAS libraries
- logical concatenation of SAS
catalogs
- generation data sets
- integrity constraints
- indexing and WHERE
processing enhancements
- enhanced compression routines (including one option
that is new for Version 8)
- an audit trail.
- SAS windowing
environment:
- SAS Explorer window
- SAS Registry Editor
- Results
window.
Year 2000 Compliance
For information concerning year 2000 compliance of SAS
software products, see the Institute's web site:
http://www.sas.com/y2k
Also, the Professional Services Division at SAS Institute
offers a course that explains the issues and describes SAS tools and techniques
for achieving year 2000 compliance. See "The Year 2000: Achieving Date
Compliance" in SAS Applications Course Notes.
With regard to changes in Version 7 of base SAS software,
the default value for the YEARCUTOFF= system option is now 1920.
SAS Output: Output Delivery System
In previous versions of SAS, printed output from SAS
procedures and from the DATA step was designed for a traditional line-printer.
In Version 7, printed output is much more flexible. The new Output Delivery
System (ODS) enhances your ability to manage both DATA step and procedure
output. ODS features include the ability to
- combine the raw data that is produced with one
or more templates to produce one or more output objects that contain the formatted
results
- store a link to each output object in the Results
folder in the Results window
- generate HTML files that contain the formatted
results and that contain links to the results in the form of a table of contents
- generate output for a high-resolution
printer
- generate output data sets from procedure output
- allow you to customize the procedure output by
creating templates that you can use whenever you run the procedure.
This section briefly illustrates these features. For
more information on the Output Delivery System, see The Complete Guide to the SAS Output Delivery System and see the FILE,
ODS and PUT, ODS statements in this manual.
SAS Output: DATA Step Reporting
Reports that are created with the FILE and PUT statements
in a DATA step have two new features:
- You can use footnotes in addition to titles.
- Reports can take advantage of the
new Output Delivery
System.
SAS I/O: Long Variable Names and Expanded Rules for SAS Names
The rules for SAS names have been expanded to provide
more functionality. Some SAS names, such as DATA step variables, members of
SAS data libraries, and catalog entries, can be up to 32 bytes long. A variable
name can be mixed case.
In a DATA step or a PROC SQL step, you can more easily
use DBMS files. You can use a new name literal to express a DBMS
column name that may contain characters that are not normally allowed in SAS
names. The SAS system option VALIDVARNAME= enables you to specify what rules
apply to the variable names that you can create and process in a SAS session.
Referencing a Permanent SAS Data Set Without a Libref
You can create or reference a permanent SAS data set
without first assigning a libref. You can refer to a SAS data set directly
by specifying in quotes the name by which the operating system refers to the
file.
Enhancements to Stored Compiled DATA Step Programs and DATA Step Views
In Version 8, SAS no longer requires that you recompile stored compiled
DATA step programs or recreate DATA step views that were created in previous
versions or releases of SAS. Stored programs and views created in Version
6 or Version 7 run as is in Version 8, provided that you run them on the same
operating system on which they were created.
By default, SAS also saves the source statements when you create stored
compiled programs and DATA step views in Version 8. You can retrieve and/or
execute the statements by using the new DESCRIBE and EXECUTE statements within
the DATA step.
SAS I/O: Logical Concatenation of SAS Libraries
You can now reference two or more SAS libraries with
a single libref in all operating environments. To make your code easier to
use in multiple operating environments, you can use a libref, rather than
only the physical name as in Version 6, to specify the aggregate storage location
that contains your SAS files.
SAS I/O: Logical Concatenation of SAS Catalogs
You can now logically concatenate entries in two or
more SAS catalogs. Use the LIBNAME statement to implicitly concatenate
entries in SAS catalogs. Use the new CATNAME statement to explicitly concatenate entries in SAS catalogs.
SAS I/O: Generation Data Sets
Generation data sets enable you to keep multiple copies
of a SAS data set. The copies represent versions of the same data set, which
is archived each time it is replaced. To request generation data sets, use
the GENMAX= data set option. To reference a specific version of a data set,
use the GENNUM= data set option.
SAS I/O: Integrity Constraints
Integrity constraints enable you to specify rules that
guarantee the consistency and correctness of stored data. The rules restrict
the data that can be added, updated, or deleted from a data set, and they
also link the data in one data set to data in another data set.
You can specify integrity constraints either when a
data set is created or after it already contains data. To create and delete
integrity constraints, you can use the DATASETS procedure, the SQL procedure,
or SCL functions. To list integrity constraints, use the CONTENTS procedure.
SAS I/O: Indexing Enhancements
Version 7 provides the following performance improvements
for indexed data sets:
- When creating an index, no sort is performed if
the data set is already in the correct order.
- The system's ability to determine the more cost-efficient
way to access the data (either by sequential reading or by using an index)
is improved by storing statistics that represent the distribution of values.
- WHERE processing for an indexed data set is enhanced
for the pattern-matching operators LIKE and NOT LIKE.
- The system makes greater use of composite indexes
for compound optimization, which is the process of optimizing
multiple WHERE conditions with a single composite index. WHERE expressions
that contain the EQ or IN operator now support three new operators: directional
inequalities, NOT operations, and truncated comparisons.
- Two new data set options, IDXNAME= and IDXWHERE=,
provide more control over index usage.
- The MSGLEVEL= system option provides more information
about index usage.
- When you append to an indexed data set, SAS improves
performance by not updating the index until all observations have been added.
SAS I/O: Enhancements for Compressed Files
Compressed data sets are more flexible to use. You can
now access observations in a compressed SAS data set directly by using the
POINT= or FIRSTOBS= option.
You can choose a compression algorithm that best fits
your data. For compressing character data, specify CHAR to use the RLE (Run
Length Encoding) algorithm. For compressing binary (for example, numeric)
data, specify BINARY to use the RDC (Ross Data Compression) algorithm. If
your application can benefit from a specialized algorithm, you can supply
your own if you also license SAS/TOOLKIT software.
In Version 8, you can use the POINTOBS= data set option to control whether
a compressed data set may be processed with random access rather than with
sequential access only.
SAS I/O: Audit Trail
An audit trail enables you to log updates to a SAS data file in a separate
audit file. Each time an observation is added, deleted, or updated, information
is added to the audit file about who made the modification, what was modified,
and when.
You can also define special variables that are stored in the audit file.
The user can assign values to them just like regular data set variables. They
are stored with each record written to the audit trail. For example, they
could be used to log a "reason for modification."
The audit trail is initiated with the AUDIT statement in PROC DATASETS.
See SAS Procedures Guide for more information.
Double-Byte Character Sets
Starting with Release 6.07, SAS has supported double-byte character
sets (DBCS), which are used for many Asian languages, such as Japanese, Korean,
simplified Chinese, and traditional or complex Chinese. The documentation
for Version 8 contains the first complete version of the DBCS information
in English. See the category tables at the beginning of the Formats, Functions,
Informats, and System Options chapters for a complete listing of DBCS language
elements.
Windowing Environment: SAS Explorer Window
The SAS workspace is composed of windows that enable
you to accomplish specific tasks. Along with the main programming windows
(Program Editor, Log, and Output), the workspace now includes SAS Explorer,
a central point for managing basic SAS software tasks such as
- viewing and managing tables, libraries, and
members
- creating new libraries and file shortcuts
- creating new library members and catalog
entries.
If you issue the CAT, DIR, LIB, or FILENAME commands,
an Explorer window opens. For example, if you type CAT WORK.TEST, you will
see the contents of your TEST catalog in a modified Explorer window.
Windowing Environment: SAS Registry Editor
The SAS Registry stores configuration data about the
SAS session and about various applications. You can use the SAS Registry Editor
window to
- view the contents of the registry, showing keys
as well as the values that are stored in the keys
- add, modify, and delete keys and key values
- export and import
registry files to and from the
registry
- compare the contents of a file to the registry
- install and uninstall registry
files.
You can also use PROC REGISTRY to accomplish these tasks.
Windowing Environment: Results Window
The Results window contains pointers to various locations
in the Output window. When procedure code executes, pointers to specific output
are generated and are listed in the Results window. You can click the navigation
pointers to locate the desired output.
|
New and Enhanced Base SAS Language Elements |
Data Set Options
- Changes to data set options include the
following:
- COMPRESS= accepts additional values.
- RENAME= accepts variable
lists.
- These are the new data set options for data set
control:
- DLDMGACTION=
- specifies what type of action to take when
a SAS file in a SAS data library is detected as damaged.
- GENMAX=
- requests generations for a data set and
specifies the maximum number of versions.
- GENNUM=
- references a specific generation of a data
set.
- OUTREP=
- specifies an operating environment's requirements
vector for an output file.
-
REPEMPTY=
- controls replacement of like-named temporary or permanent
SAS data sets when the new one is empty.
- TRANTAB=
- specifies a translation table for character
conversions.
- These are the new data set options for observation
control:
- IDXNAME=
- directs the SAS System to use a specific
index to satisfy the conditions of a WHERE expression.
- IDXWHERE=
- overrides the SAS System decision about
whether to use an index to satisfy the conditions of a WHERE expression.
-
POINTOBS=
- controls whether a data set may be processed with random
access (by observation number) rather than with sequential access only.
- WHEREUP=
- specifies whether to evaluate added observations
and modified observations against a WHERE expression.
Formats
- Changes to formats include the following:
- Character formats can
handle strings up to 32,767
characters (32K) long.
- The DOLLARw.d, DOLLARXw.d, COMMAw.d, and
COMMAXw.d formats no longer restrict d
to 0 or 2.
- The following formats are
new:
- DDMMYYxw.
- writes date values in the form ddmmyy or ddmmyyyy and specifies
separators or no separators between date values.
- IBRw.d
- writes integer binary (fixed-point) values
in Intel and DEC format.
- MMDDYYxw.
- writes date values in the form mmddyy or mmddyyyy and specifies
separators or no separators between date values.
- PIBRw.d
- writes positive integer binary (fixed-point)
values in Intel and DEC formats.
- PDJULGw.
- writes packed Julian date values in the
hexadecimal format yyyydddF for IBM.
- PDJULIw.
- writes packed Julian date values in the
hexadecimal format ccyydddF for IBM.
- YYMMDDxw.
- writes date values in the form yymmdd or yyyymmdd and specifies
separators or no separators between date values.
Functions and CALL Routines
- Changes to existing functions include the
following:
- The PUT function now supports alignment of values
with formats.
- The QUOTE function no longer strips trailing blanks
from values.
- You can use the SCAN function to scan from right
to left by specifying a negative number as an argument.
- The following mathematical and probability functions
have been added to base SAS software:
- COMB
- computes the number of combinations of n elements taken r at a time and returns a
value.
- CONSTANT
- computes some machine and mathematical constants
and returns a value.
- DEVIANCE
- computes the deviance and returns a value.
- FACT
- computes a factorial and returns a value.
- PERM
- computes the number of permutations of n elements taken r at a time and returns a
value.
- PROBBNRM
- computes a probability from the bivariate
normal distribution and returns a value.
- PROBMC
- computes a probability or a quantile from
various distributions for multiple comparisons of means and returns a value.
- The following new RX functions and CALL
routines
provide character-string matching functionality. That is, they enable you
to search for (and, optionally, to replace) patterns or characters in a string.
- CALL RXCHANGE
- changes one or more substrings that match
a pattern.
- CALL RXFREE
- frees memory that is allocated by other
regular expression (RX) functions and CALL routines.
- CALL RXSUBSTR
- finds the position, length, and score of
a substring that matches a pattern.
- RXMATCH
- finds the beginning of a substring that
matches a pattern and returns a value.
- RXPARSE
- parses a pattern and returns a value.
- The following functions return information about
the attributes of variables. The functions with names that end in an "X"
can accept an expression as an argument; the others require a variable name
as an argument:
- VARRAY
- returns a value that indicates whether the
given variable is an array.
- VARRAYX
- returns a value that indicates whether the
value of a given argument is an array.
- VFORMAT
- returns the format that is associated with
the given variable.
- VFORMATD
- returns the format decimal value that is
associated with the given variable.
- VFORMATDX
- returns the format decimal value that is
associated with the value of a given argument.
- VFORMATX
- returns the format that is associated with
the value of a given argument.
- VFORMATN
- returns the format name that is associated
with the given variable.
- VFORMATNX
- returns the format name that is associated
with the value of a given argument.
- VFORMATW
- returns the format width that is associated
with the given variable.
- VFORMATWX
- returns the format width that is associated
with the value of a given argument.
- VINARRAY
- returns a value that indicates whether the
given variable is a member of an array.
- VINARRAYX
- returns a value that indicates whether the
value of a given argument is a member of an array.
- VINFORMAT
- returns the informat that is associated
with the given variable.
- VINFORMATX
- returns the informat that is associated
with the value of a given argument.
- VINFORMATD
- returns the informat decimal value that
is associated with the given variable.
- VINFORMATDX
- returns the informat decimal value that
is associated with the value of a given argument.
- VINFORMATN
- returns the informat name that is associated
with the given variable.
- VINFORMATNX
- returns the informat name that is associated
with the value of a given argument.
- VINFORMATW
- returns the informat width that is associated
with the given variable.
- VINFORMATWX
- returns the informat width that is associated
with the value of a given argument.
- VLABEL
- returns the label that is associated with
the given variable.
- VLABELX
- returns the variable label for the value
of a given argument.
- VLENGTH
- returns the compile-time (allocated) size
of the given variable.
- VLENGTHX
- returns the compile-time (allocated) size
for the value of a given argument.
- VNAME
- returns the name of the given variable.
- VNAMEX
- validates the value of a given argument
as a variable name.
- VTYPE
- returns the type (character or numeric)
of the given variable.
- VTYPEX
- returns the type (character or numeric)
for the value of a given argument.
- These date and time functions are
new:
- DATDIF
- returns the number of days between two dates.
- JULDATE7
- returns a seven digit Julian date from a
SAS date value.
- YRDIF
- returns the difference in years between
two dates.
- The following functions are also new:
- IORCMSG
- returns a formatted error message for _IORC_.
- MISSING
- returns a numeric result that indicates
whether the argument contains a missing value.
- The following web-based functions have been added to base SAS
software:
- HTMLDECODE
- decodes a string containing HTML numeric character references
or HTML character entity references and returns the decoded string.
- HTMLENCODE
- encodes characters using HTML character entity references
and returns the encoded string.
- URLDECODE
- returns a string that was decoded using the URL escape syntax.
- URLENCODE
- returns a string that was encoded using the URL escape syntax.
- In Version 8, the following financial functions have been
added
to base SAS software:
- CONVX
- returns the convexity for an enumerated cashflow.
- CONVXP
- returns the convexity for a periodic cashflow stream, such
as a bond.
- DUR
- returns the modified duration for an enumerated cashflow.
- DURP
- returns the modified duration for a periodic cashflow stream,
such as a bond.
- PVP
- returns the present value for a periodic cashflow stream,
such as a bond.
- YIELDP
- returns the yield-to-maturity for a periodic cashflow stream,
such as a bond.
Informats
- Character informats can handle strings up to 32,767
characters (32K) long.
- The following informats are new:
- IBRw.d
- reads integer binary (fixed-point) values
in Intel and DEC format.
-
JDATEYMD
- reads Japanese kanji date values in the format yymmmdd or
yyyymmmdd.
-
JNENGO
- reads Japanese Kanji date values in the form yymmdd.
- PDJULGw.
- reads packed Julian date values that are
produced on IBM mainframe systems in the hex representation form of yyyydddF. and converts the values to SAS date
values.
- PDJULIw.
- reads packed Julian date values that are
produced on IBM mainframe systems in the form ccyyddF.
and converts the values to SAS date values.
- PIBRw.d
- reads positive integer binary (fixed-point)
values in Intel and DEC formats.
- SHRSTAMP.w
- reads date and time values of SHR records.
- YYMMNw.
- reads date values that are in the form yymm or yyyymm and that contain
no delimiters, then adds a date value of 01 so that these values become valid
SAS date values.
Statements
- There are three new statements:
- CATNAME
- logically concatenates the contents of two
or more SAS catalogs. It can also assign or de-assign a catref or list all
currently assigned catrefs.
-
DESCRIBE
- retrieves source code from a stored compiled DATA step program
or a DATA step view and writes it to the SAS log. It is used within a DATA
step with the DATA statement's PGM= or VIEW= options.
-
EXECUTE
- executes a stored compiled DATA step program. It is used
within a DATA step with the DATA statement's PGM= option.
- Enhancements to statements include the following:
System Options
- The following system options were changed:
- The
RESERVEDB1 system option is now called MFILE.
It controls whether or not MPRINT output is directed to an external file.
- The default value for YEARCUTOFF= is
1920.
- The following are new communication system
options:
- CONNECTREMOTE=
- specifies the remote session ID that is
used for SAS/CONNECT software.
- CONNECTSTATUS
- specifies whether or not to display the SAS/CONNECT transfer
status window.
- CONNECTWAIT
- specifies whether or not to wait for the SAS/CONNECT remote
submit statement (RSUBMIT) to complete before control returns to the local
session.
- NETENCRYPT
- specifies encryption of all network communications.
- NETENCRYPTALGORITHM=
- specifies the algorithm to use for the encryption
of data that are passed over the network.
- NETENCRYPTKEYLEN=
- specifies the key size for network data
encryption.
- NETMAC
- controls whether SAS uses Message Authentication
Codes (MACs) to detect message corruptions across a network.
- TBUFSIZE=
- specifies the buffer size to use when you
transmit data with SAS/CONNECT or SAS/SHARE software.
- TCPPORTFIRST=
- specifies the first TCP/IP port for SAS/CONNECT
software.
- TCPPORTLAST=
- specifies the last TCP/IP port for SAS/CONNECT
software.
- The following are new environment control system
options:
- APPLETLOC
- specifies the location of Java applets.
- CMPOPT
- controls whether SAS language compiler optimization is in
effect.
- DMSEXP
- invokes SAS with the Explorer, Program,
Log, Output, and Results windows.
- DOCLOC=
- specifies the base location of SAS online
documentation.
- EXPLORER
- controls whether you invoke SAS with the
Explorer window only.
- MERGENOBY
- controls whether a message is issued when MERGE processing
occurs without an associated BY statement.
- REP_MGRLOC=
- specifies the location of the repository
manager for common metadata.
- SASCMD
- used by the SIGNON portion of SAS/CONNECT to invoke a remote
or server SAS session.
- SOLUTIONS
- specifies whether SOLUTIONS appears on menus
in the SAS windows.
- STARTLIB
- allows previous library references to persist in a new SAS
session.
- TRAINLOC=
- specifies the base location of SAS online
training courses.
- VALIDVARNAME=
- controls the type of SAS variable names
that can be created or processed during a SAS session.
- The following are new log and procedure output
control system options:
- CONSOLELOG=
- specifies the location of the console log.
- PRINTMSGLIST
- controls the printing of extended lists
of messages to the SAS log.
- The following are new sort system
options:
- SORTDUP=
- controls the SORT procedure's application
of the NODUP option to physical or logical records.
- SUMSIZE=
- specifies a limit on the amount of memory
that is available for data summarization procedures when class variables are
active.
- The following are new file control system
options:
-
ASYNCHIO
- specifies whether asynchronous I/O is enabled.
- DLDMGACTION=
- specifies what type of action to take when
a SAS file in a SAS data library is detected as damaged.
-
SYNCHIO
- specifies whether synchronous I/O is enabled.
- The following are new graphics system
options:
- GISMAPS=
- specifies the location of the SAS data library
that contains SAS/GIS-supplied TIGER map data sets.
- In
, the following new
system options control printing with the Output
Delivery System (ODS):
- BINDING=
- specifies the binding edge for the ODS printer destination.
- BOTTOMMARGIN=
- specifies the size of the margin at the bottom of the page
for the ODS printer destination.
- COLLATE
- specifies the collation of multiple copies for output for
the ODS printer destination.
- COLORPRINTING
- specifies color printing, if it is supported, for the ODS
printer destination.
- COPIES=
- specifies the number of copies to make when printing to
the ODS printer destination.
- DUPLEX=
- specifies duplexing controls for the ODS printer destination.
- LEFTMARGIN=
- specifies the size of the margin on the left side of the
page for the ODS printer destination.
- ORIENTATION=
- specifies the paper orientation to use when printing to
the ODS printer destination.
- PAPERDEST=
- specifies the bin to receive printed output for the ODS
printer destination.
- PAPERSIZE=
- specifies the paper size to use when printing to the ODS
printer destination.
- PAPERSOURCE=
- specifies the paper bin to use for printing to the ODS printer
destination.
- PAPERTYPE=
- specifies the type of paper to use for printing to the ODS
printer destination.
- PRINTERPATH=
- specifies a printer for SAS print jobs directed to the ODS
printer destination.
- RIGHTMARGIN=
- specifies the size of the margin at the right side of the
page for printed output directed to the ODS printer destination.
- TOPMARGIN=
- specifies the size of the margin at the top of the page
for the ODS printer destination.
- The following is a new system administration
option:
-
SETINIT
- controls whether site license information can be altered.
Copyright 1999 by SAS Institute Inc., Cary, NC, USA. All rights reserved.