support & services / Education

SAS Programming 3: Advanced Techniques and Efficiencies – PRG3

This course is for SAS programmers who prepare data for analysis. The comparisons of manipulation techniques and resource cost benefits are designed to help programmers choose the most appropriate technique for their data situation.


3 Days - Classroom

SAS Programming Certification Packages

SAS Certification 

To take advantage of one of the SAS Programming Certification Packages, simply quote 'BEST VALUE' in the Campaign Code field when booking your first item. We will then contact you to prompt the purchases of the other package items.

Learn how to

  • compare various SAS programming techniques that enable you to
  • control memory, I/O, and CPU resources
  • create and use indexes
  • combine data horizontally and vertically
  • use hash and hiter DATA step component objects, arrays, and formats as lookup tables
  • compress SAS data sets
  • sample your SAS data sets.

Who should attend?

Experienced SAS programmers


This course is not appropriate for beginning SAS software users. Before attending this course, you should have at least nine months of SAS programming experience and should have completed the SAS Programming 2: Data Manipulation Techniques course. Specifically, you should be able to do the following:

  • understand your operating system file structures and perform basic operating system tasks
  • understand programming logic concepts
  • understand the compilation and execution process of the DATA step
  • use different varieties of input to create SAS data sets from external files
  • use SAS software to access SAS libraries
  • create and use SAS date values
  • read, concatenate, merge, match-merge, and interleave SAS data sets
  • use the DROP=, KEEP=, and RENAME= data set options
  • create multiple output data sets
  • use array processing and DO loops to process data iteratively
  • use SAS functions to perform data manipulation and transformations.

Course Contents


  • course logisitics
  • measuring efficiencies
  • SAS DATA step processing

Controlling I/O Processing and Memory

  • controlling I/O
  • controlling data set size
  • compressing SAS data sets
  • controlling memory (self-study)
  • controlling the page size and the number of available buffers (self-study)

Accessing Observations

  • creating an index
  • using an index
  • creating a sample data set (self-study)

Introduction to Lookup Techniques

  • introduction to lookup techniques
  • in-memory lookup techniques
  • disk storage techniques

Using DATA Step Arrays

  • using one-dimensional arrays
  • using multidimensional arrays
  • loading a multidimensional array from a SAS data set

Using DATA Step Hash and Hiter Objects

  • introduction
  • using hash object methods
  • loading a hash object with data from a SAS data set
  • using the DATA step hiter object
  • using a hash object for chained lookups (self-study)

Creating and Using Formats

  • using formats as lookup tables
  • using a picture format (self-study)

Combining Data Horizontally

  • DATA step merges and SQL procedure joins
  • using an index to combine data
  • combining summary and detail data
  • combining data conditionally (self-study)

Sorting SAS Data Sets

  • using the SORT procedure
  • BY-group processing (self-study)

Programmer Efficiency

  • introduction
  • writing flexible programs (combining raw data files vertically)
  • creating views
  • using FILE and PUT statements to create a SAS program file
  • using the FCMP procedure (self-study)

Customizing Your SAS Session (Self-Study)

  • introduction
  • editing the configuration file
  • creating an file
  • using the SAS Registry

Learning More

  • conclusions
  • SAS resources
  • beyond this course

Software Addressed

This course addresses the following software product(s): Base SAS. This course is appropriate for learners who are using SAS 8 or SAS 9 software.