O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

SAS 9.4 Language Reference, 6th Edition

Book Description

Provides conceptual information for the Base SAS language. Major topics include SAS keywords and naming conventions, SAS variables and expressions, error processing and debugging, SAS data sets and files, creating and customizing output, DATA step concepts and DATA step processing, reading raw data, and creating and managing SAS libraries.

Table of Contents

  1. Contents (1/2)
  2. Contents (2/2)
  3. What's New in the 9.4 Base SAS Language Reference: Concepts
    1. Overview
    2. SAS System Features
      1. Universal Printing
      2. Font Slanting and Emboldening Support
      3. TrueType Fonts
      4. Helvetica and Symbola TrueType Fonts
      5. Avenir Next TrueType Fonts
      6. Support for SAS DATA Step View Buffers
      7. Extended Attributes
      8. Extended Observation Count
      9. Cross-Environment Data Access (CEDA)
      10. SMTP Email Authentication Protocol
      11. LOCKDOWN State Restrictions
      12. LOCKDOWN Statement Enhancements
    3. Data File Protection
    4. Column Headings in VIEWTABLE
  4. Accessibility
  5. SAS System Concepts
    1. Essential Concepts of Base SAS Software
      1. What Is SAS?
      2. Overview of Base SAS Software
      3. Components of the SAS Language
        1. SAS Files
        2. SAS Data Sets
        3. External Files
        4. Database Management System Files
        5. SAS Language Elements
        6. SAS Macro Facility
      4. Ways to Run Your SAS Session
        1. Starting a SAS Session
        2. Different Types of SAS Sessions
        3. SAS Windowing Environment
        4. Interactive Line Mode
        5. Noninteractive Mode
        6. Batch Mode
        7. Object Server Mode
      5. Customizing Your SAS Session
        1. Setting Default System Option Settings
        2. Executing Statements Automatically
        3. Customizing the SAS Windowing Environment
      6. Conceptual Information about Base SAS Software
        1. SAS System Concepts
        2. DATA Step Concepts
        3. SAS Files Concepts
    2. SAS Processing
      1. Definition of SAS Processing
      2. Types of Input to a SAS Program
      3. The DATA Step
        1. What Does the DATA Step Do?
        2. DATA Step Output
      4. The PROC Step
        1. What Does the PROC Step Do?
        2. PROC Step Output
      5. SAS Processing Restrictions for Servers in a Locked-Down State
        1. General Information
        2. z/OS-Specific Information
        3. Specifying Functions in the Lockdown Path List
    3. Rules for Words and Names in the SAS Language
      1. Words in the SAS Language
        1. Definition of Word
        2. Types of Words or Tokens
        3. Placement and Spacing of Words in SAS Statements
      2. Names in the SAS Language (1/3)
      3. Names in the SAS Language (2/3)
      4. Names in the SAS Language (3/3)
        1. Definition of a SAS Name
        2. Rules for User-Supplied SAS Names
        3. SAS Name Literals
        4. Summary of Default Rules for Naming SAS Data Sets and SAS Variables
        5. Summary of Extended Rules for Naming SAS Data Sets and SAS Variables
    4. SAS Variables
      1. Definition of SAS Variables
      2. SAS Variable Attributes
      3. Ways to Create Variables
        1. Overview
        2. Using an Assignment Statement
        3. Reading Data with the INPUT Statement in a DATA Step
        4. Specifying a New Variable in a FORMAT or INFORMAT Statement
        5. Specifying a New Variable in a LENGTH Statement
        6. Specifying a New Variable in an ATTRIB Statement
        7. Using the IN= Data Set Option
      4. Variable Type Conversions
      5. Aligning Variable Values in SAS Output
      6. Reordering Variables in SAS Output
      7. Automatic Variables
      8. SAS Variable Lists
        1. Definition
        2. Numbered Range Lists
        3. Name Range Lists
        4. Name Prefix Lists
        5. Special SAS Name Lists
        6. The OF Operator with Variable Lists
      9. Dropping, Keeping, and Renaming Variables
        1. Using Statements or Data Set Options
        2. Using the Input or Output Data Set
        3. Order of Application
        4. Examples of Dropping, Keeping, and Renaming Variables
      10. Encrypting Variable Values
        1. Customized Encryption and Decryption Algorithms for SAS Variables
        2. Example 1: A Simple 1-Byte-to-1-Byte Swap Using the TRANSLATE Function
        3. Example 2: Using a 1-Byte-to-2-Byte Swap with the TRANWRD Function
        4. Example 3: Using Different Functions to Encrypt Numeric Values as Character Strings
      11. Numerical Accuracy in SAS Software (1/5)
      12. Numerical Accuracy in SAS Software (2/5)
      13. Numerical Accuracy in SAS Software (3/5)
      14. Numerical Accuracy in SAS Software (4/5)
      15. Numerical Accuracy in SAS Software (5/5)
        1. Overview
        2. Truncation in Binary Numbers
        3. How SAS Stores Numeric Values
        4. Floating-Point Representation Using the IEEE Standard
        5. Floating-Point Representation on Windows
        6. Floating-Point Representation on IBM Mainframes
        7. Troubleshooting Errors in Precision
        8. Transferring Data between Operating Systems
    5. Missing Values
      1. Definition of Missing Values
      2. Creating Special Missing Values
        1. Definition
        2. Tips
        3. Example
      3. Order of Missing Values
        1. Numeric Variables
        2. Character Variables
      4. When Variable Values Are Automatically Set to Missing by SAS
        1. When Reading Raw Data
        2. When Reading a SAS Data Set
      5. When Missing Values Are Generated by SAS
        1. Propagation of Missing Values in Calculations
        2. Invalid Operations
        3. Invalid Character-to-Numeric Conversions
        4. Creating Special Missing Values
        5. Preventing Propagation of Missing Values
      6. Working with Missing Values
        1. How to Represent Missing Values in Raw Data
        2. How to Set Variable Values to Missing in a DATA Step
        3. How to Check for Missing Values in a DATA Step
    6. Expressions
      1. Definitions for SAS Expressions
      2. Examples of SAS Expressions
      3. SAS Constants in Expressions
        1. Definition
        2. Character Constants
        3. Using Quotation Marks with Character Constants
        4. Comparing Character Constants and Character Variables
        5. Character Constants Expressed in Hexadecimal Notation
        6. Numeric Constants
        7. Numeric Constants Expressed in Standard Notation
        8. Numeric Constants Expressed in Scientific Notation
        9. Numeric Constants Expressed in Hexadecimal Notation
        10. Date, Time, and Datetime Constants
        11. Bit Testing Constants
        12. Avoiding a Common Error with Constants
      4. SAS Variables in Expressions
        1. Definition
        2. Automatic Numeric-Character Conversion
      5. SAS Functions in Expressions
      6. SAS Operators in Expressions
        1. Definitions
        2. Arithmetic Operators
        3. Comparison Operators
        4. The IN Operator
        5. Numeric Comparisons
        6. The IN Operator in Numeric Comparisons
        7. Character Comparisons
        8. The IN Operator in Character Comparisons
        9. Logical (Boolean) Operators and Expressions
        10. The AND Operator
        11. The OR Operator
        12. The NOT Operator
        13. Boolean Numeric Expressions
        14. The MIN and MAX Operators
        15. The Concatenation Operator
        16. Order of Evaluation in Compound Expressions
    7. Dates, Times, and Intervals
      1. About SAS Date, Time, and Datetime Values
        1. Definitions
        2. Two-Digit and Four-Digit Years
        3. Five-Digit Years
        4. The Year 2000
        5. Working with SAS Dates and Times
        6. Examples
      2. About Date and Time Intervals (1/3)
      3. About Date and Time Intervals (2/3)
      4. About Date and Time Intervals (3/3)
        1. Definitions
        2. Syntax
        3. Intervals by Category
        4. Example: Calculating a Duration
        5. Boundaries of Intervals
        6. Single-Unit Intervals
        7. Multi-Unit Intervals
        8. Shifted Intervals
        9. Custom Intervals
        10. Retail Calendar Intervals: ISO 8601 Compliant
    8. Error Processing and Debugging
      1. Types of Errors in SAS
        1. Summary of Types of Errors That SAS Recognizes
        2. Syntax Errors
        3. Semantic Errors
        4. Execution-Time Errors
        5. Data Errors
        6. Macro-related Errors
      2. Error Processing in SAS (1/2)
      3. Error Processing in SAS (2/2)
        1. Syntax Check Mode
        2. Processing Multiple Errors
        3. Checkpoint Mode and Restart Mode
        4. Using System Options to Control Error Handling
        5. Using Return Codes
        6. Other Error-Checking Options
      4. Debugging Logic Errors in the DATA Step
    9. SAS Output
      1. Definitions for SAS Output
      2. Routing and Customizing SAS Output
        1. Default Output Destination
        2. Changing the Output Destination
        3. Customizing Output
      3. Sample SAS Output
        1. Default HTML Output in the SAS Windowing Environment
        2. Traditional SAS LISTING Output in the SAS Windowing Environment
      4. The SAS Log (1/3)
      5. The SAS Log (2/3)
      6. The SAS Log (3/3)
        1. Structure of the Log
        2. The SAS Log in Interactive Mode
        3. The SAS Log in Batch, Line, or Objectserver Modes
        4. Writing to the Log in All Modes
        5. Customizing the Log
    10. By-Group Processing in SAS Programs
      1. Definition of BY-Group Processing
      2. References for BY-Group Processing
    11. WHERE-Expression Processing
      1. Definition of WHERE-Expression Processing
      2. Where to Use a WHERE Expression
      3. Syntax of WHERE Expression (1/2)
      4. Syntax of WHERE Expression (2/2)
        1. WHERE Expression Contents
        2. Specifying an Operand
        3. Specifying an Operator
      5. Combining Expressions By Using Logical Operators
        1. Syntax
        2. Processing Compound Expressions
        3. Using Parentheses to Control Order of Evaluation
      6. Improving Performance of WHERE Processing
      7. Processing a Segment of Data That Is Conditionally Selected
        1. Applying FIRSTOBS= and OBS= Options
        2. Applying FIRSTOBS= and OBS= to a Subset of Data
        3. Processing a SAS View
      8. Deciding Whether to Use a WHERE Expression or a Subsetting IF Statement
    12. Optimizing System Performance
      1. Definitions for Optimizing System Performance
      2. Collecting and Interpreting Performance Statistics
        1. Using the FULLSTIMER and STIMER System Options
        2. Interpreting FULLSTIMER and STIMER Statistics
      3. Techniques for Optimizing I/O (1/2)
      4. Techniques for Optimizing I/O (2/2)
        1. Overview of Techniques for Optimizing I/O
        2. Using WHERE Processing
        3. Using DROP and KEEP Statements
        4. Using LENGTH Statements
        5. Using the OBS= and FIRSTOBS= Data Set Options
        6. Creating SAS Data Sets
        7. Using Indexes
        8. Accessing Data through SAS Views
        9. Using Engines Efficiently
        10. Setting System Options to Improve I/O Performance
        11. Setting VBUFSIZE= and OBSBUF= for SAS DATA Step Views
        12. Using the SASFILE Statement
        13. Using the DATASETS Procedure to Modify Attributes
        14. Storing Variables as Characters
      5. Techniques for Optimizing Memory Usage
        1. System Options
        2. Using the BY Statement with PROC MEANS
      6. Techniques for Optimizing CPU Performance
        1. Reducing CPU Time By Using More Memory or Reducing I/O
        2. Storing a Compiled Program for Computation-Intensive DATA Steps
        3. Reducing Search Time for SAS Executable Files
        4. Specifying Variable Lengths
        5. Using Parallel Processing
        6. Reducing CPU Time By Modifying Program Compilation Optimization
      7. Calculating Data Set Size
    13. Support for Parallel Processing
      1. Overview
      2. What Is Threading Technology in SAS?
      3. How Is Threading Controlled in SAS?
      4. Threading in Base SAS
      5. SAS/ACCESS Engines
      6. SAS Scalable Performance Data Server
      7. SAS Intelligence Platform
      8. SAS High-Performance Analytics Portfolio of Products
      9. SAS Grid Manager
      10. SAS In-Database Technology
      11. SAS In-Memory Analytics Technology
      12. SAS High-Performance Analytics Product Integration
    14. The SAS Registry
      1. Introduction to the SAS Registry
        1. What Is the SAS Registry?
        2. Who Should Use the SAS Registry?
        3. Where the SAS Registry Is Stored
        4. How Do I Display the SAS Registry?
        5. Definitions for the SAS Registry
      2. Managing the SAS Registry (1/2)
      3. Managing the SAS Registry (2/2)
        1. Primary Concerns about Managing the SAS Registry
        2. Backing Up the Sasuser Registry
        3. Recovering from Registry Failure
        4. Using the SAS Registry to Control Color
        5. Using the Registry Editor
      4. Configuring Your Registry
        1. Configuring Universal Printing
        2. Configuring SAS Explorer
        3. Configuring Libraries and File Shortcuts with the SAS Registry
        4. Fixing Library Reference (Libref) Problems with the SAS Registry
    15. Printing with SAS
      1. Universal Printing (1/4)
      2. Universal Printing (2/4)
      3. Universal Printing (3/4)
      4. Universal Printing (4/4)
        1. What Is Universal Printing?
        2. Setting Up the Universal Printing Interface and the Default Printing Environment
        3. Universal Printing Output Formats
        4. Viewing Universal Printers and Printer Prototypes
        5. Viewing Universal Printer Settings
        6. Modifying Universal Printing Printer Settings
        7. Universal Printing and ODS
        8. Specifying the Page Orientation for Universal Printing Documents
        9. Color Support for Universal Printers
        10. Embedding Non-Viewable Comments in Universal Printing Output
      5. Configuring Universal Printing Using the Windowing Environment (1/4)
      6. Configuring Universal Printing Using the Windowing Environment (2/4)
      7. Configuring Universal Printing Using the Windowing Environment (3/4)
      8. Configuring Universal Printing Using the Windowing Environment (4/4)
        1. Overview of the Universal Printing Menu
        2. Setting Up Printers
        3. Printing with Universal Printing
        4. Working with Previewers
        5. Set Page Properties
      9. System Options That Control Universal Printing
      10. Managing Universal Printers Using the PRTDEF Procedure (1/2)
      11. Managing Universal Printers Using the PRTDEF Procedure (2/2)
        1. About Using the PRTDEF Procedure
        2. Examples of Creating New Printers and Previewers Using the PRTDEF Procedure
      12. Forms Printing
        1. Overview of Forms Printing
        2. Creating or Editing a Form
      13. Using Fonts with Universal Printers and SAS/GRAPH Devices (1/4)
      14. Using Fonts with Universal Printers and SAS/GRAPH Devices (2/4)
      15. Using Fonts with Universal Printers and SAS/GRAPH Devices (3/4)
      16. Using Fonts with Universal Printers and SAS/GRAPH Devices (4/4)
        1. Rendering Fonts
        2. ODS Styles and TrueType Fonts
        3. Portability of TrueType Fonts
        4. International Character Support
        5. TrueType Fonts Supplied by SAS
        6. Registering Fonts
        7. Listing the Registered Fonts for a Device
        8. Using Fonts
        9. Examples of Specifying Fonts and Printing International Characters
      17. Creating EMF (Enhanced Metafile Format) Graphics Using Universal Printing
        1. EMF Graphics in SAS
        2. Creating an EMF Graphic
        3. Example of Creating an EMF Graphic Using the ODS PRINTER Statement
      18. Creating GIF Images Using Universal Printing
        1. GIF Images in SAS
        2. Creating a GIF Image
        3. Example of Creating a GIF Image Using the ODS PRINTER Statement
      19. Creating PCL (Printer Command Language) Files Using Universal Printing
        1. PCL Files in SAS
        2. Creating a PCL File
      20. Creating PDF Files Using Universal Printing
        1. PDF Files in SAS
        2. Creating a PDF File
        3. Example of Creating a PDF Using the ODS PDF Statement
        4. System Options That Affect PDF Output
      21. Creating PNG (Portable Network Graphics) Files Using Universal Printing
        1. Portable Network Graphics in SAS
        2. The PNG Universal Printers
        3. Creating a PNG Image
        4. Example of Creating a PNG File Using the ODS PRINTER Statement
        5. Web Browsers and Viewers That Support PNG Files
      22. Creating PostScript Files Using Universal Printing
        1. PostScript Files in SAS
        2. Creating a PostScript File
        3. Example of Creating a PostScript File Using the ODS PS Statement
      23. Creating SVG (Scalable Vector Graphics) Files Using Universal Printing (1/6)
      24. Creating SVG (Scalable Vector Graphics) Files Using Universal Printing (2/6)
      25. Creating SVG (Scalable Vector Graphics) Files Using Universal Printing (3/6)
      26. Creating SVG (Scalable Vector Graphics) Files Using Universal Printing (4/6)
      27. Creating SVG (Scalable Vector Graphics) Files Using Universal Printing (5/6)
      28. Creating SVG (Scalable Vector Graphics) Files Using Universal Printing (6/6)
        1. Overview of Scalable Vector Graphics in SAS
        2. Web Server Content Type for SVG Documents
        3. The SVG Universal Printers and the Output That They Create
        4. How to Create SVG Documents
        5. Browser Support for Viewing SVG Documents
        6. Images in SVG Documents
        7. Setting the Environment to Create Stand-alone SVG Documents
        8. Creating Stand-alone SVG Documents Using the ODS PRINTER Destination
        9. SVG Documents in HTML Files
        10. Printing an SVG Document from a Browser
      29. Creating TIFF Images Using Universal Printing
        1. TIFF Images in SAS
        2. The TIFF Universal Printers
        3. Creating a TIFF Image
        4. Example of Creating a TIFF Image Using the ODS PRINTER Statement
      30. Creating Animated GIF Images and SVG Documents (1/2)
      31. Creating Animated GIF Images and SVG Documents (2/2)
        1. About Animated GIF Images and SVG Documents
        2. Animation System Options
        3. Example: Creating an Animated SVG Document
  6. Windowing Environment Concepts
    1. Introduction to the SAS Windowing Environment
      1. What Is the SAS Windowing Environment?
      2. Main Windows in the SAS Windowing Environment (1/2)
      3. Main Windows in the SAS Windowing Environment (2/2)
        1. Overview of SAS Windows
        2. SAS Explorer Window
        3. Enhanced Editor Window
        4. Log Window
        5. Results Window
        6. Output Window
      4. Navigating in the SAS Windowing Environment
        1. Overview of SAS Navigation
        2. Menus in SAS
        3. Toolbars in SAS
        4. The Command Line
      5. Getting Help in SAS
        1. Type Help in the Command Line
        2. Open the Help Menu from the Toolbar
        3. Click Help in Individual SAS Windows
      6. List of SAS Windows and Window Commands
    2. Managing Your Data in the SAS Windowing Environment
      1. Introduction to Managing Your Data in the SAS Windowing Environment
      2. Managing Data with SAS Explorer
        1. Introduction to Managing Data with SAS Explorer
        2. Viewing Libraries and Data Sets
        3. Assign File Shortcuts
        4. Rename a SAS Data Set
        5. Copy or Duplicate a SAS Data Set
        6. Sorting Data Sets in a Library
        7. View the Properties of a SAS Data Set
      3. Working with VIEWTABLE (1/2)
      4. Working with VIEWTABLE (2/2)
        1. Overview of VIEWTABLE
        2. Opening a SAS Data Set in a VIEWTABLE Window
        3. Displaying Table Headers as Names or Labels
        4. Customizing SAS Explorer for Opening the VIEWTABLE Window
        5. Order of Precedence for How Column Headings Are Displayed
        6. Mapping the VIEWTABLE Command to a Function Key
        7. Temporarily Change Column Headings
        8. Move Columns in a Table
        9. Sort by Values of a Column
        10. Edit Cell Values
      5. Subsetting Data By Using the WHERE Expression
        1. Subset Rows of a Table
        2. Clear the WHERE Expression
      6. Exporting a Subset of Data
        1. Overview of Exporting Data
        2. Export Data
      7. Importing Data into a Table
        1. Overview of Importing Data
        2. Import a Standard File
        3. Import a Nonstandard File
  7. DATA Step Concepts
    1. DATA Step Processing
      1. Why Use a DATA Step?
      2. Overview of DATA Step Processing
        1. Flow of Action
        2. The Compilation Phase
        3. The Execution Phase
      3. Processing a DATA Step: A Walk-through
        1. Sample DATA Step
        2. Creating the Input Buffer and the Program Data Vector
        3. Reading a Record
        4. Writing an Observation to the SAS Data Set
        5. Reading the Next Record
        6. When the DATA Step Finishes Executing
      4. About DATA Step Execution (1/2)
      5. About DATA Step Execution (2/2)
        1. The Default Sequence of Execution in the DATA Step
        2. Changing the Default Sequence of Execution
        3. Step Boundary—How to Know When Statements Take Effect
        4. What Causes a DATA Step to Stop Executing
      6. About Creating a SAS Data Set with a DATA Step
        1. Creating a SAS Data File or a SAS View
        2. Sources of Input Data
        3. Reading Raw Data: Examples
        4. Reading Data from SAS Data Sets
        5. Generating Data from Programming Statements
      7. Writing a Report with a DATA Step (1/2)
      8. Writing a Report with a DATA Step (2/2)
        1. Example 1: Creating a Report without Creating a Data Set
        2. Example 2: Creating a Customized Report
        3. Example 3: Creating an HTML Report Using ODS and the DATA Step
      9. The DATA Step and ODS
      10. DATA Step Processing Time
    2. Reading Raw Data
      1. Definition of Reading Raw Data
      2. Ways to Read Raw Data
      3. Types of Data
        1. Definitions
        2. Numeric Data
        3. Character Data
      4. Sources of Raw Data
        1. Instream Data
        2. Instream Data Containing Semicolons
        3. External Files
      5. Reading Raw Data with the INPUT Statement (1/2)
      6. Reading Raw Data with the INPUT Statement (2/2)
        1. Choosing an Input Style
        2. List Input
        3. Modified List Input
        4. Column Input
        5. Formatted Input
        6. Named Input
        7. Additional Data-Reading Features
      7. How SAS Handles Invalid Data
      8. Reading Missing Values in Raw Data
        1. Representing Missing Values in Input Data
        2. Special Missing Values in Numeric Input Data
      9. Reading Binary Data
        1. Definitions
        2. Using Binary Informats
      10. Reading Column-Binary Data
        1. Definition
        2. How to Read Column-Binary Data
        3. Description of Column-Binary Data Storage
    3. BY-Group Processing in the DATA Step
      1. Definitions for BY-Group Processing
      2. Syntax for BY-Group Processing
      3. Understanding BY Groups
        1. BY Groups with a Single BY Variable
        2. BY Groups with Multiple BY Variables
      4. Invoking BY-Group Processing
      5. Determining Whether the Data Requires Preprocessing for BY-Group Processing
      6. Preprocessing Input Data for BY-Group Processing
        1. Sorting Observations for BY-Group Processing
        2. Indexing for BY-Group Processing
      7. How the DATA Step Identifies BY Groups
        1. Processing Observations in a BY Group
        2. Using a Name Literal as the BY-Group Variable
        3. How SAS Determines FIRST.variable and LAST.variable
        4. Example 1: Grouping Observations by State, City, ZIP code, and Street
        5. Example 2: Grouping Observations by City, State, ZIP code, and Street
        6. Example 3: A Change Affecting FIRST.variable
      8. Processing BY-Groups in the DATA Step (1/2)
      9. Processing BY-Groups in the DATA Step (2/2)
        1. Overview
        2. Processing BY-Groups Conditionally
        3. Data Not in Alphabetic or Numeric Order
        4. Data Grouped by Formatted Values
        5. Example 1: Using GROUPFORMAT with Formats
        6. Example 2: Using GROUPFORMAT with Formats
    4. Reading, Combining, and Modifying SAS Data Sets
      1. Definitions for Reading, Combining, and Modifying SAS Data Sets
      2. Overview of Tools
      3. Reading SAS Data Sets
        1. Reading a Single SAS Data Set
        2. Reading from Multiple SAS Data Sets
        3. Controlling the Reading and Writing of Variables and Observations
      4. Combining SAS Data Sets: Basic Concepts (1/2)
      5. Combining SAS Data Sets: Basic Concepts (2/2)
        1. What You Need to Know Before Combining Information Stored in Multiple SAS Data Sets
        2. The Four Ways That Data Can Be Related
        3. Access Methods: Sequential versus Direct
        4. Overview of Methods for Combining SAS Data Sets
        5. Overview of Tools for Combining SAS Data Sets
        6. How to Prepare Your Data Sets
      6. Combining SAS Data Sets: Methods (1/6)
      7. Combining SAS Data Sets: Methods (2/6)
      8. Combining SAS Data Sets: Methods (3/6)
      9. Combining SAS Data Sets: Methods (4/6)
      10. Combining SAS Data Sets: Methods (5/6)
      11. Combining SAS Data Sets: Methods (6/6)
        1. Concatenating
        2. Interleaving
        3. One-to-One Reading
        4. One-to-One Merging
        5. Match-Merging
        6. Updating with the UPDATE and the MODIFY Statements
      12. Error Checking When Using Indexes to Randomly Access or Update Data (1/2)
      13. Error Checking When Using Indexes to Randomly Access or Update Data (2/2)
        1. The Importance of Error Checking
        2. Error-Checking Tools
        3. Example 1: Routing Execution When an Unexpected Condition Occurs
        4. Example 2: Using Error Checking on All Statements That Use KEY=
    5. Using DATA Step Component Objects
      1. Introduction to DATA Step Component Objects
      2. Using the Hash Object (1/3)
      3. Using the Hash Object (2/3)
      4. Using the Hash Object (3/3)
        1. Why Use the Hash Object?
        2. Declaring and Instantiating a Hash Object
        3. Initializing Hash Object Data Using a Constructor
        4. Defining Keys and Data
        5. Non-Unique Key and Data Pairs
        6. Storing and Retrieving Data
        7. Maintaining Key Summaries
        8. Replacing and Removing Data in the Hash Object
        9. Saving Hash Object Data in a Data Set
        10. Comparing Hash Objects
        11. Using Hash Object Attributes
      5. Using the Hash Iterator Object
        1. About the Hash Iterator Object
        2. Declaring and Instantiating a Hash Iterator Object
        3. Example: Retrieving Hash Object Data By Using the Hash Iterator
      6. Using the Java Object (1/5)
      7. Using the Java Object (2/5)
      8. Using the Java Object (3/5)
      9. Using the Java Object (4/5)
      10. Using the Java Object (5/5)
        1. About the Java Object
        2. CLASSPATH and Java Options
        3. Restrictions and Requirements for Using the Java Object
        4. Declaring and Instantiating a Java Object
        5. Accessing Object Fields
        6. Accessing Object Methods
        7. Type Issues
        8. Java Objects and Arrays
        9. Passing Java Object Arguments
        10. Java Exceptions
        11. Java Standard Output
        12. Java Object Examples
    6. Array Processing
      1. Definitions for Array Processing
      2. A Conceptual View of Arrays
        1. One-Dimensional Array
        2. Two-Dimensional Array
      3. Syntax for Defining and Referencing an Array
      4. Processing Simple Arrays
        1. Grouping Variables in a Simple Array
        2. Using a DO Loop to Repeat an Action
        3. Using a DO Loop to Process Selected Elements in an Array
        4. Selecting the Current Variable
        5. Defining the Number of Elements in an Array
        6. Rules for Referencing Arrays
      5. Variations on Basic Array Processing
        1. Determining the Number of Elements in an Array Efficiently
        2. DO WHILE and DO UNTIL Expressions
        3. Using Variable Lists to Define an Array Quickly
      6. Multidimensional Arrays: Creating and Processing
        1. Grouping Variables in a Multidimensional Array
        2. Using Nested DO Loops
      7. Specifying Array Bounds
        1. Identifying Upper and Lower Bounds
        2. Determining Array Bounds: LBOUND and HBOUND Functions
        3. When to Use the HBOUND Function Instead of the DIM Function
        4. Specifying Bounds in a Two-Dimensional Array
      8. Examples of Array Processing (1/2)
      9. Examples of Array Processing (2/2)
        1. Example 1: Using Character Variables in an Array
        2. Example 2: Assigning Initial Values to the Elements of an Array
        3. Example 3: Creating an Array for Temporary Use in the Current DATA Step
        4. Example 4: Performing an Action on All Numeric Variables
  8. SAS Files Concepts
    1. SAS Libraries
      1. Definition of a SAS Library
      2. Library Engines
      3. Library Names
        1. Physical Names and Logical Names (Librefs)
        2. Assigning Librefs
        3. Associating and Clearing Logical Names (Librefs) with the LIBNAME Statement
        4. Reserved Librefs
        5. Accessing Remote SAS Libraries on SAS/CONNECT, SAS/SHARE, and WebDAV Servers
      4. Library Concatenation
        1. Definition of Library Concatenation
        2. How SAS Concatenates Library Members
        3. Rules for Library Concatenation
      5. Permanent and Temporary Libraries
      6. Definition of a Metadata-Bound Library
      7. SAS System Libraries
        1. Introduction to SAS System Libraries
        2. Work Library
        3. User Library
        4. Sashelp Library
        5. Sasuser Library
      8. Sequential Data Libraries
      9. Tools for Managing Libraries
        1. SAS Utilities
        2. Library Directories
        3. Accessing Permanent SAS Files without a Libref
        4. Operating Environment Commands
    2. SAS Data Sets
      1. Definition of a SAS Data Set
      2. Descriptor Information for a SAS Data Set
      3. Data Set Names
        1. Where to Use Data Set Names
        2. How and When SAS Data Set Names Are Assigned
        3. Parts of a Data Set Name
        4. Two-level SAS Data Set Names
        5. One-level SAS Data Set Names
      4. Data Set Lists
      5. Special SAS Data Sets
        1. Null Data Sets
        2. Default Data Sets
        3. Automatic Naming Convention
      6. Sorted Data Sets (1/2)
      7. Sorted Data Sets (2/2)
        1. The Sort Indicator
        2. How SAS Uses the Sort Indicator to Improve Performance
        3. Validating That a Data Set Is Sorted
      8. Tools for Managing Data Sets
      9. Viewing and Editing SAS Data Sets
    3. SAS Data Files
      1. Definition of a SAS Data File
      2. Differences between Data Files and SAS Views
      3. Understanding the Observation Count in a SAS Data File
        1. Definition of the Observation Count
        2. Maximum Observation Count
        3. SAS Processing When the Maximum Observation Count Is Reached
        4. Recovering from an Exceeded Maximum Observation Count
      4. Understanding an Audit Trail (1/2)
      5. Understanding an Audit Trail (2/2)
        1. Definition of an Audit Trail
        2. Audit Trail Description
        3. Defining and Using User Variables
        4. Operation in a Shared Environment
        5. Performance Implications
        6. Preservation by Other Operations
        7. Programming Considerations
        8. Other Considerations
        9. Initiating an Audit Trail
        10. Controlling the Audit Trail
        11. Reading and Determining the Status of the Audit Trail
        12. Audit Trails and CEDA Processing
        13. Examples of Using Audit Trails
      6. Understanding Generation Data Sets (1/2)
      7. Understanding Generation Data Sets (2/2)
        1. Definition of Generation Data Set
        2. Terminology for Generation Data Sets
        3. Invoking Generation Data Sets
        4. Understanding How a Generation Group Is Maintained
        5. Processing Specific Versions of a Generation Group
        6. Managing Generation Groups
      8. Understanding Integrity Constraints (1/3)
      9. Understanding Integrity Constraints (2/3)
      10. Understanding Integrity Constraints (3/3)
        1. Definition of Integrity Constraints
        2. General and Referential Integrity Constraints
        3. Preservation of Integrity Constraints
        4. Indexes and Integrity Constraints
        5. Locking Integrity Constraints
        6. Encryption and Integrity Constraints
        7. Specifying Integrity Constraints
        8. Specifying Physical Location for Inter-Libref Referential Integrity Constraints When Sharing Disk Space
        9. Listing Integrity Constraints
        10. Rejected Observations
        11. Integrity Constraints and CEDA Processing
        12. Examples
      11. Understanding SAS Indexes (1/5)
      12. Understanding SAS Indexes (2/5)
      13. Understanding SAS Indexes (3/5)
      14. Understanding SAS Indexes (4/5)
      15. Understanding SAS Indexes (5/5)
        1. Definition of SAS Indexes
        2. Benefits of an Index
        3. The Index File
        4. Types of Indexes
        5. Deciding Whether to Create an Index
        6. Guidelines for Creating Indexes
        7. Creating an Index
        8. Using an Index for WHERE Processing
        9. Using an Index for BY Processing
        10. Using an Index for Both WHERE and BY Processing
        11. Specifying an Index with the KEY= Option for SET and MODIFY Statements
        12. Taking Advantage of an Index
        13. Procedures and SAS Operations That Maintain Indexes
      16. Extended Attributes
        1. Definition
        2. Enabling and Manipulating Extended Attributes
      17. Compressing Data Files
        1. Definition of Compression
        2. Requesting Compression
        3. Disabling a Compression Request
      18. Extending the Observation Count for a 32-Bit SAS Data File (1/2)
      19. Extending the Observation Count for a 32-Bit SAS Data File (2/2)
        1. Definition of Extended Observation Count
        2. Understanding the Extended Observation Count
        3. Using the EXTENDOBSCOUNTER= Option
        4. Recovering from an Exceeded Maximum Observation Count
        5. Extended Observation Count File Attribute
        6. Extended Observation Count Behavior Considerations
        7. Extending the Observation Count in a 64-Bit Operating Environment
        8. When Extending the Observation Count Is Supported
    4. SAS Views
      1. Definition of SAS Views
      2. Benefits of Using SAS Views
      3. When to Use SAS Views
      4. DATA Step Views
        1. Definition of a DATA Step View
        2. Creating DATA Step Views
        3. What Can You Do with a DATA Step View?
        4. Differences between DATA Step Views and Stored Compiled DATA Step Programs
        5. Restrictions and Requirements
        6. Performance Considerations
        7. Example 1: Merging Data to Produce Reports
        8. Example 2: Producing Additional Output Files
      5. PROC SQL Views
      6. Comparing DATA Step and PROC SQL Views
      7. SAS/ACCESS Views
    5. Stored Compiled DATA Step Programs
      1. Definition of a Stored Compiled DATA Step Program
      2. Uses for Stored Compiled DATA Step Programs
      3. Restrictions and Requirements for Stored Compiled DATA Step Programs
      4. How SAS Processes Stored Compiled DATA Step Programs
      5. Creating a Stored Compiled DATA Step Program
        1. Syntax for Creating a Stored Compiled DATA Step Program
        2. Process to Compile and Store a DATA Step Program
        3. Example: Creating a Stored Compiled DATA Step Program
      6. Executing a Stored Compiled DATA Step Program
        1. Syntax for Executing a Stored Compiled DATA Step Program
        2. Process to Execute a Stored Compiled DATA Step Program
        3. Using Global Statements
        4. Redirecting Output
        5. Printing the Source Code of a Stored Compiled DATA Step Program
        6. Example: Executing a Stored Compiled DATA Step Program
      7. Differences between Stored Compiled DATA Step Programs and DATA Step Views
      8. Example of DATA Step Program
        1. Quality Control Application
    6. DICTIONARY Tables
      1. Definition of a DICTIONARY Table
      2. How to View DICTIONARY Tables
        1. About Dictionary Tables
        2. How to View a DICTIONARY Table
        3. How to View a Summary of a DICTIONARY Table
        4. How to View a Subset of a DICTIONARY Table
        5. DICTIONARY Tables and Performance
    7. SAS Catalogs
      1. Definition of a SAS Catalog
      2. SAS Catalog Names
        1. Parts of a Catalog Name
        2. Accessing Information in Catalogs
      3. Tools for Managing SAS Catalogs
      4. Profile Catalog
        1. Definition of a Profile Catalog
        2. How the Information Is Used
        3. How Sasuser.Profile Is Created
        4. Default Settings
        5. How to Recover Locked or Corrupt Profile Catalogs
      5. Catalog Concatenation
        1. Definitions
        2. Example 1: LIBNAME Catalog Concatenation
        3. Example 2: CATNAME Catalog Concatenation
        4. Rules for Catalog Concatenation
    8. About SAS/ACCESS Software
      1. Definition of SAS/ACCESS Software
      2. Dynamic LIBNAME Engine
        1. SAS/ACCESS LIBNAME Statement
        2. Using Data Set Options with SAS/ACCESS Librefs
        3. Embedding a SAS/ACCESS LIBNAME Statement in a PROC SQL View
      3. SQL Procedure Pass-Through Facility
      4. ACCESS Procedure and Interface View Engine
      5. DBLOAD Procedure
      6. Interface DATA Step Engine
    9. Processing Data Using Cross-Environment Data Access (CEDA)
      1. Definition of Cross-Environment Data Access (CEDA)
      2. Advantages of CEDA
      3. SAS File Processing with CEDA
        1. What Types of Processing Does CEDA Support?
        2. Behavioral Differences for Output Processing
        3. Restrictions for CEDA
        4. Understanding When CEDA Is Used to Process a File
        5. Determining Whether Update Processing Is Allowed
      4. Alternatives to Using CEDA
      5. Creating Files in a Different Data Representation
      6. Examples of Using CEDA
        1. Example 1: Automatically Processing a File
        2. Example 2: Creating a New File in a Different Data Representation
        3. Example 3: Changing the Data Representation of an Existing File
    10. SAS 9.4 Compatibility with SAS Files from Earlier Releases
      1. Introduction to Version Compatibility
      2. Comparing SAS 9 to Earlier Releases
        1. SAS 9 File Format
        2. SAS 9 File Extensions
      3. Using SAS Library Engines
    11. File Protection
      1. Definition of a Password
      2. Assigning Passwords
        1. Syntax
        2. Assigning a Password with a DATA Step
        3. Assigning a Password to an Existing Data Set
        4. Assigning a Password with a Procedure
        5. Assigning a Password with the SAS Windowing Environment
        6. Assigning a Password outside of SAS
      3. Removing or Changing Passwords
      4. Using Password-Protected SAS Files in DATA and PROC Steps
      5. How SAS Handles Incorrect Passwords
      6. Assigning Complete Protection with the PW= Data Set Option
      7. Encoded Passwords
      8. Using Passwords with Views
        1. Levels of Protection
        2. PROC SQL Views
        3. SAS/ACCESS Views
        4. DATA Step Views
      9. SAS Data File Encryption
        1. About Encryption on SAS Data Files
        2. SAS Proprietary Encryption
        3. AES Encryption
        4. AES Encryption and Referential Integrity Constraints
        5. Passwords and Encryption with Generation Data Sets, Audit Trails, Indexes, and Copies
      10. Blotting Passwords and Encryption Key Values
        1. Check the SAS Log
        2. Examples of Passwords and Encryption Keys That Are Not Blotted
        3. Using Macros
        4. Length of Passwords
      11. Metadata-Bound Libraries
    12. SAS Engines
      1. Definition of a SAS Engine
      2. Specifying an Engine
      3. How Engines Work with SAS Files
      4. Engine Characteristics
        1. About Engine Characteristics
        2. Read/Write Activity
        3. Access Patterns
        4. Levels of Locking
        5. Indexing
      5. About Library Engines
        1. Definition of a Library Engine
        2. Native Library Engines
        3. Interface Library Engines
      6. Special-Purpose Engines
        1. Character Variable Padding (CVP) Engine
        2. SAS Information Maps LIBNAME Engine
        3. SAS JMP LIBNAME Engine
        4. SAS Metadata LIBNAME Engine
        5. SAS XML LIBNAME Engine
    13. SAS File Management
      1. Improving Performance of SAS Applications
      2. Moving SAS Files between Operating Environments
      3. Repairing Damaged SAS Files
        1. Detecting Damage to SAS Files
        2. Recovering SAS Data Files
        3. Recovering Indexes
        4. Recovering Disabled Indexes and Integrity Constraints
        5. Recovering Catalogs
    14. External Files
      1. Definition of External Files
      2. Referencing External Files Directly
      3. Referencing External Files Indirectly
      4. Referencing Many External Files Efficiently
      5. Referencing External Files with Other Access Methods
      6. Working with External Files
        1. Reading External Files
        2. Writing to External Files
        3. Processing External Files
  9. Industry Protocols Used in SAS
    1. The SMTP E-Mail Interface
      1. Sending E-Mail through SMTP
      2. System Options That Control SMTP E-Mail
      3. Statements That Control SMTP E-mail
        1. FILENAME Statement
        2. FILE and PUT Statements
    2. Universal Unique Identifiers
      1. Universal Unique Identifiers and the Object Spawner
        1. What Is a Universal Unique Identifier?
        2. What Is the Object Spawner?
        3. Defining the UUID Generator Daemon
        4. Installing the UUID Generator Daemon
      2. Using SAS Language Elements to Assign UUIDs
        1. Overview of Using SAS Language Elements to Assign UUIDs
        2. UUIDGEN Function
        3. UUIDCOUNT= System Option
        4. UUIDGENDHOST System Option
    3. Internet Protocol Version 6 (IPv6)
      1. Overview of IPv6
      2. IPv6 Address Format
      3. Examples of IPv6 Addresses
        1. Example of Full and Collapsed IPv6 Address
        2. Example of an IPv6 Address That Includes a Port Number
        3. Example of an IPv6 Address That Includes a URL
      4. Fully Qualified Domain Names (FQDN)
  10. Recommended Reading
  11. Glossary (1/7)
  12. Glossary (2/7)
  13. Glossary (3/7)
  14. Glossary (4/7)
  15. Glossary (5/7)
  16. Glossary (6/7)
  17. Glossary (7/7)
  18. Index (1/6)
  19. Index (2/6)
  20. Index (3/6)
  21. Index (4/6)
  22. Index (5/6)
  23. Index (6/6)