This online course is delivered using a blended learning pathway via our digital learning platform and will provide you with the techniques to make your programs smarter and easier to maintain.
There are mini quizzes and comprehensive exercises throughout to help assess and reinforce your learning with the opportunity to join an end of day Q&A session(s) with the instructor.
By the end of this course you will be able to:
On day 1 we invite you to join a short online welcome to meet your instructor, introduce you to our Digital Learning platform and get you started on the eLearning modules of this course.
You will need 2.5 hours to complete the 3 eLearning modules with additional time for exercises. We ask you to complete these modules before joining us for an online Masterclass in the afternoon of day 1.
This is followed by 2 x 4 hour live online classes to complete your learning.
In addition, you will also need to set aside time to complete the Hands-On exercises.
Each day finishes with an open Q&A session with the instructor if you need any further support.
What you should already know...
To get the most out of this course it is expected that you should have attended the Fundamentals – the Language of SAS and the Intermediate – the Language of SAS courses (or comparable courses of study). If not, we would advise that you have at least six months experience of developing code in the language of SAS, including:
- Use of Global statements e.g. LIBNAME FILENAME and OPTIONS
- Use of functions to transform character data e.g. SCAN, FIND and SUBSTR
- Use of functions to transform numeric data e.g. CEIL, INT, FLOOR and ROUND
- Use of functions to transform dates e.g. DAY, MONTH, YEAR and 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 e.g. DO WHILE and DO UNTIL
- Analyse data with the FREQ, MEANS and TABULATE procedures
- Combine data horizontally and vertically using MERGE and SET
- Summarise data using BY Groups
- Understand the two phases of DATA Step processing
For the hands-on practice activities in the course, you will need access to an environment that runs the programming Language of SAS. On our courses, we signpost you to some of the free tools available.
Check out the links below to review system requirements:
What you'll be taught...
Introduction to Macro Processing (eLearning)
Learning Objective: Explain basic Macro Processing in the Language of SAS.
- Compilation and Execution phases
- Macro Triggers
- The %PUT Statement
- Displaying macro variable values
Introduction to Macro Variables (eLearning)
Learning Objective: Describe six different features of Macro Variables.
- Macro Variable Storage
- Macro Variable Resolution
- User-Defined Macro Variables
- The %LET Statement
- The SYMBOLGEN Option
- Delimiting Macro Variables
Macro Functions (eLearning)
Learning Objective: Identify three different types of Macro Functions.
- Character Functions – review
- Using Macro Functions
- Macro Functions for Numbers
- The %SYSFUNC and other functions including: %INDEX, %SCAN, %SUBSTR, %UPCASE, %BQUOTE, %STR, %NRBQUOTE, %NRSTR, %EVAL and % SYSEVALF
Macro Programs (Live Online Class)
Learning Objective: Create and store macro programs to simplify repetitive tasks
- Macro Calls
- Generating Code
- The MPRINT Option
- Autocall Macros
- Best Practices
- Macro Program Parameters
Global and Local Symbol Tables (Live Online Class)
Learning Objective: Utilise Macro Variables on the Global and Local Symbol Tables
- The Global Symbol Table
- The Local Symbol Table
- Nested Macros
- Creating and Updating Macro Variables
- Resolving Macro Variables
DATA Step and PROC SQL (Live Online Class)
Learning Objective: Creating Macro Variables in DATA Step and Proc SQL
- Creating Macro Variables in DATA Step
- Compare CALL SYMPUTX and %LET
- Indirect Macro Variable References
- Create Macro Variables in PROC SQL
- Store multiple values in a Macro Variable
Conditional Processing (Live Online Class)
Learning Objective: Implement Conditional Macro Processing %IF -%THEN - %ELSE
- Conditionally Returning a Program Step
- Conditionally Returning a Statement
- Conditionally Returning a Partial Statement
- %DO - %END
- The &INCLUDE Statement
Iterative Processing (Live Online Class)
Learning Objective: Generate dynamic, data driven code - using Conditional Iterative Processing
- Iterative Processing in a Macro Program
- Generate Program Code Iteratively – Dynamic Code
- Perform Conditional Iterative Processing