SAS Macro Language 1: Essentials

This course focuses on the components of the SAS macro facility and how to design, write, and debug macro systems. Emphasis is placed on understanding how programs with macro code are processed.

This course can help prepare you for the following certification exam(s): SAS Advanced Programming Exam for SAS 9, SAS Certified Clinical Trials Programmer Using SAS 9.

Learn how to

  • perform text substitution in SAS code
  • automate and customize the production of SAS code
  • conditionally or iteratively construct SAS code
  • use macro variables and macro functions.

Prerequisites

Before attending this course, you should have completed the SAS Programming 2: Data Manipulation Techniques course or have equivalent knowledge. Specifically, you should be able to

  • use a DATA step to read from or write to a SAS data set or external file
  • use DATA step programming statements such as IF-THEN/ELSE, DO WHILE, DO UNTIL, and iterative DO
  • use SAS data set options such as DROP=, KEEP=, and OBS=
  • use character functions such as SUBSTR, SCAN, INDEX, and UPCASE
  • form subsets of data using the WHERE clause
  • create and use SAS date values and constants
  • use SAS procedures such as SORT, PRINT, CONTENTS, MEANS, FREQ, TABULATE, and CHART.

Course Outline

Introduction 

  • course logistics
  • purpose of the macro facility
  • program flow

Macro Variables 

  • introduction to macro variables
  • automatic macro variables
  • macro variable references
  • user-defined macro variables
  • delimiting macro variable references
  • macro functions

Macro Definitions 

  • defining and calling a macro
  • macro parameters

DATA Step and SQL Interfaces 

  • creating macro variables in the DATA step
  • indirect references to macro variables
  • creating macro variables in SQL

Macro Programs 

  • conditional processing
  • parameter validation
  • iterative processing
  • global and local symbol tables

Learning More 

  • SAS resources
  • beyond this course

Supplemental Materials 

  • program flow