SAS VERSIONS 7 AND 8: CHANGES AND ENHANCEMENTS


Introduction
Overview
Year 2000 Compliance
SAS Output
SAS Files and I/O
SAS Windowing Environment


Introduction

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

    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.


    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 Files and I/O

    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.


    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.


    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: 
    
              The FILE statement now has a FOOTNOTES option, which allows DATA step reports that are created
              with a PUT statement to use footnotes. Using the DELIMITER= option, you can write data that are
              delimited by a specified character other than a blank. Using the DSD option, you can write data that contain
              a delimiter.
    
              The FILE statement contains new options that allow you to produce output in HTML format.
    
              In the INFILE statement, you can now use the _INFILE_= option to assign the contents of the current input
              buffer to a variable. 
    
              In the FILE statement, you can now use the _FILE_= option to assign the contents of the current output
              buffer to a variable. 
    
              New host options are available for the INFILE and FILE statements. See the SAS documentation for your
              operating environment. 
    
              The LIBNAME statement can implicitly concatenate two or more SAS catalogs. (See the CATNAME
              statement.)
    
              The LIBNAME statement now has the REPEMPTY= option, which controls the replacement of like-named
              temporary or permanent SAS data sets when the new one is empty.
    
              The LIBNAME statement provides SAS/ACCESS users with an easier way to access DBMS tables. 
    
              Note:   In order to use this new feature of the LIBNAME statement, you must license SAS/ACCESS
              software.   
    
              The PUT statement contains new options that allow you to produce output in HTML format.
    
              The RENAME statement accepts variable lists.
    
              In the SET statement, you can use the OPEN= option to open only the first data set that is listed in the SET
              statement during compilation. Some restrictions apply.
    
    
    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.

    ARDC Documentation     ARDC Home Page     USC Home Page    

    *SAS is the registered trademark of SAS Institute Inc., Cary, N.C. 27511, U.S.A. SAS/GRAPH and SAS/ETS are trademarks of SAS Institute Inc., Cary, N.C. 27511, U.S.A.

    This page updated September 25, 2000 by Amy W. Yarbrough, Academic Research and Data Center.
    Copyright © 2000, The Board of Trustees of the University of South Carolina.
    URL http://www.sc.edu/ardc/docs/sasprocs.htm