Advanced Programming - The Language of SAS
Simply fill in the form below to sign up for our Newsletter:
Sign Up for our Newsletter

Advanced - The Language of SAS Training at Newtyne, Edinburgh


Course Length:

This is a three-day course.

Course Summary:

The Advanced Programming course covers those aspects of the programming language of SAS and a number of coding efficiencies that will make you stand out from the crowd.

What you will be taught:


  • Optimizing Task Processing
  • Understanding how to measure efficiencies
  • Understanding efficiency Trade-Offs    
  • Deciding which efficiency options to choose    
  • Measuring Resource Usage  

Dataset Pages and I/O Processing

  • Data Set Pages - Attributes
  • Data Set Pages - I/O Processing

Creating and Using Indexes

  • Understanding Indexes
  • Creating an Index on a new Dataset
  • Understanding Composite IndexesUsing IndexesU. 4
  • Using Indexes
  • WHERE Statement Processing5
  • BY-Group Processing14
  • KEY= Option18
  • MSGLEVEL System Option
  • Maintaining Indexed Data

Efficient Program Code

  • Coding choices for Program Efficiencies4
  • Do not process data unnecessarily. 4
  • Reduce the number of steps in program code
  • Efficiency Savings with I/OEfficiency Savings with I/OE. 6
  • Reduce the number of functions7
  • Use the Macro Processing Facility

Numeric Data Storage

  • Numeric Data Storage. 4
  • Reducing the length of Numeric Variables

Compressing Datasets5

  • Compressing Data Sets11
  • Attributes of a Compressed Data Set14
  • Compressing a Data Set18
  • Run-Length Encoding  (RLE)
  • Ross Data Compression (RDC)
  • Advantages and Disadvantages

Sorting Data Sets

  • Parallel Processing. 4
  • Enabling Threading
  • CPU Availaility
  • Review of PROC SORT
  • The NODUPKEY Option
  • The DUPOUT = Option
  • SORTEDBY = Option
  • SORTVALIDATE Systems Option
  • PRESORTED Option
    ReviewRCPU C 5
  • Space Requirements for Sorting 11
  • SORSIZE = Option
  • Host Sorting

36 14Selecting Observations

  • Using the DISTINCT keyword in PROC SQL
  • BY-Group Processing
  • BY-Group Processing with an Index
  • Using the NOTSORTED Option
  • Group using CLASS Statement
  • SUMSIZE = Option
  • Using FIRST. and LAST. in the DATA step

36Lookup Tables - Formats

  • Creating a Format
  • Nesting Formats
  • Managing Catalogs
  • Format System Options
  • Documenting Formats
  • Formats from Data Sets
  • Maintaining Formats - CNTLOUT
  • Picture Formats
  • Picture Formats - Directives
  • Format Advantages and Disadvantages

Lookup Tables - Arrays

  • One Dimensional Arrays
  • DIM Function
  • Multi Dimensional Arrays
  • Multi Dimensional Arrays from a Dataset
  • Array Advantages and Disadvantages


Lookup Tables - Hash Objects

  • Hash Object Attributes
  • Declaring a Hash Object
  • Object Dot Syntax
  • Object Dot Syntax - Methods
  • The FIND Method
  • Missing Keys
  • Call MISSING
  • Loading a Hash Object from a Data Set
  • Hash Object - Advantages and Disdvantages
  • Chained Lookups
  • Declaring a Hiter Object
  • Hiter Object Methods

Lookup Tables - Combining Data Horizontal Joins

  • Merging Datasets
  • Data Step merging with MERGE statement
  • Data Merging with PROC SQL
  • Data Merging with Multiple SET Statements
  • Combining Data with an Index
  • SET/SET with KEY = Advantages and Disadvantages
  • Combining Detail and Summary Data
  • Combining Detail and Summary Data within the DATA Step
  • Combining Detail and Summary Data PROC SQL

Perl Regular Expressions

  • PERL Regular Expressions
  • Metacharacters
  • PRX# Functions
  • Use PERL Regular Expressions to validate data

Modifying Data

  • The MODIFY statement
  • The MODIFY statement - Using an Index
  • The MODIFY statement - Control Statements
  • Using _IORC_ to handle errors - Self Study

Auditing Data

  • Integrity Constraints
  • Creating an Integrity Constraint - PROC DATASETS
  • Creating an Integrity Constraint - PROC SQL
  • UNIQUE and PRIMARY Constraints
  • Generation Datasets
  • Referencing Generation Datasets
  • Altering the Generation Count


What you should already know:

In order to gain a suitable understanding from this course, it is expected that you should have attended the, 'Foundations: The Language of SAS' and 'Data Step Techniques: The Language of SAS' courses (or comparable course of study), or have completed nine months of developing code in the language of SAS covering topics including:

  • Use of Global statements e.g. LIBNAME FILENAME and OPTIONS
  • Access data sources including Data Sets and external files
  • Use of functions to transform character data (e.g. SCAN, FIND, SUBSTR)
  • Use of functions to transform numeric data (e.g. CEIL, INT, FLOOR, ROUND)
  • Use of functions to transform dates (e.g. DAY, MONTH, YEAR, INTCK)
  • KEEP and DROP to select variables
  • IF and WHERE statements to select observations
  • Conditional Processing with IF-THEN-ELSE
  • Iterative DO Loops
  • Conditional Do Loops - DO WHILE, DO UNTIL
  • Compile-Time statements (e.g. LENGTH, RETAIN)
  • Combining Data Sets vertically and horizontally
  • Summarizing data with the FREQ, MEANS and TABULATE procedures



If the dates below do not suit please contact us on +44 (0)131 225 6952 as alternative dates can be arranged.



Don't Delay - Book Today!

Select a date and click on the button below to register.