Hilton Austin Airport, Nov. 4 & 7, 2018
The South Central SAS Users Group (SCSUG) is pleased to offer an extensive menu of pre- and post-conference training seminars as part of our annual SCSUG Educational Forum. Seminars are taught by well-known SAS experts from across the country and cover a wide variety of SAS programming topics. Mix and match four different half-day seminars to create your own custom training curriculum and enjoy special bundle pricing!
Seminar Schedule
Seminar Fees
- With Conference Registration: $170 per half-day seminar
- Without Conference Registration: $220 per half-day seminar
Seminar Descriptions
ODS Graphics I: Creating Quick and Easy Graphs with the Statistical Graphics (SG) Procedures
Sunday, November 4, 2018, 8am – Noon
Josh Horstman
The ODS Statistical Graphics (SG) Procedures represents a complete paradigm shift for the creation of high-quality graphics using the SAS system. Legacy SAS/GRAPH functions produce crude graphics that frequently do not meet today’s standards of presentation. While customization is possible, it can require extensive coding and a number of tricks to achieve desirable results. With the introduction of the SG procedures, all of that changed. This course will provide an overview of the major procedures such as SGPLOT, SGPANEL, and SGSCATTER as well as related statements and common options through the use of numerous examples. Advanced techniques such as attribute maps, axis tables, and annotations are also covered. Upon completion of the course, students will have the tools they need to start producing high-quality graphics and performing basic customization using the options available. While the Graph Template Language (GTL) is outside the scope of this course, it will provide the foundation necessary for using GTL.
Intended Audience: SAS users having no or limited experience with the SG procedures
Prerequisites: Minimum 1-year Base SAS programming experience
Delivery Method: Instructor-led with code examples
Length: 4 Hours
Course Material: Course Notes are provided
Driving Miss Data: Data-Driven Techniques
Sunday, November 4, 2018, 8am – Noon
Richann Watson
We have all been there. We write a program based on the data we have. Then, we get new data and we must update the program. Making these updates can be time consuming. Not only must you update the production version of the program, but someone must also update any associated validation or QC programs. Wouldn’t it be nice if there were ways around this? This is where data-driven techniques come in handy. Using detailed examples, you will learn how to write robust code that is ready to handle an unexpected bend in the road! This half-day course will cover advanced techniques such as: discovering and using information about data sets and variables even if it’s not known in advance; generating dynamic formats that are based on the data instead of hard-coded into your program; using complex looping structures to control your program flow based on the data; building code on the fly, even from within a DATA step; and much more!
Intended Audience: All SAS users
Prerequisites: Basic familiarity with DATA step programming and the macro facility
Delivery Method: Instructor-led with code examples
Length: 4 Hours
Course Material: Course Notes are provided
PROC SQL Programming: The Basics and Beyond
Sunday, November 4, 2018, 8am – Noon
Kirk Paul Lafler
This popular course teaches SAS® and SQL users core concepts and features about PROC SQL. Attendees learn how to use PROC SQL to access data in SAS datasets (tables); review essential programming tasks including retrieving, subsetting, ordering, and grouping data; construct logic scenarios with case expressions; explore one-to-one, one-to-many, and many-to-many data relationships; understand the similarities and differences between DATA step merges and joins; create inner and outer join constructs as well as apply set operators to combine two or more tables together; use summary (statistical) functions to aggregate data; create new tables using three different methods; interface PROC SQL and the macro facility to create single-value and multi-value (list) macro variables; create “virtual” tables known as views; and apply “select” query debugging techniques to help detect coding errors, warnings and other messages.
Intended Audience: All SAS and SQL users
Prerequisites: SAS Essentials course and/or 6-months SAS software experience
Delivery Method: Instructor-led with code examples
Length: 4 Hours
Course Material: Course Notes are provided
Fifty-Five Functions to Supercharge your SAS Code
Sunday, November 4, 2018, 1pm – 5pm
Josh Horstman
The SAS System includes an extensive collection of DATA step functions that can provide great utility and convenience for the programmer. Many of these functions are relatively new and unknown. In this half-day course, we’ll look at some SAS functions that should be in every programmer’s toolbox. Each function will be presented with concrete examples so you’ll be able to take what you’ve learned and put it to use right away. We will cover functions from a broad range of categories such as string manipulation, logic and program control, dates and times, metadata, and much more. This course is suitable for beginning SAS programmers, but even seasoned veterans will probably find something new!
Intended Audience: All SAS users
Prerequisites: None
Delivery Method: Instructor-led training with code examples
Length: 4 Hours
Course Material: Course Notes are provided
ODS Graphics II: Mastering Custom Graphs with Graph Template Language (GTL)
Sunday, November 4, 2018, 1pm – 5pm
Richann Watson
Anyone who has produced a graph using ODS Graphics has unknowingly used the Graph Template Language (GTL). ODS graphics produced by SAS® procedures such as the Statistical Graphics (SG) procedures actually rely on pre-defined templates built with GTL. GTL generates graphs using a template definition that provides extensive control over its format and appearance. Although most of the graphs produced within a procedure are adequate for most situations, they sometimes lack those one or two extra features you need to really make your graphs stand out and impress your clients or customers. GTL, as an extension of ODS Graphics, allows users much greater flexibility in creating specialized graphs. In this class, you’ll learn how to use GTL to create complex, highly customized graphics that you could only dream about before. We’ll cover the different types of layouts provided by GTL as well as various types of plots. The focus of the course will be on three specific layouts (i.e., OVERLAY, GRIDDED and LATTICE) and the more common types of plots (e.g., BARCHART, BLOCKPLOT, BOXPLOT, HIGHLOWPLOT, SCATTERPLOT and SERIESPLOT). Through the use of detailed examples, you will learn how to build your own template to make customized graphs and how to create that one highly desired, unique graph that at first glance seems impossible.
Intended Audience: All SAS users
Prerequisites: Minimum 1-year Base SAS programming experience
Delivery Method: Instructor-led training with code examples
Length: 4 Hours
Course Material: Course Notes are provided along with several custom “cheat sheet” reference guides
Advanced PROC SQL Programming Concepts and Programming Techniques
Sunday, November 4, 2018, 1pm – 5pm
Kirk Paul Lafler
The power of PROC SQL as a database programming language is well known. This instructor-led course teaches advanced PROC SQL concepts and programming techniques to exploit SQL as a programming language to access, manipulate, restructure and validate data. Attendees learn how to construct queries to identify and access FIRST.row, LAST.row, and BETWEEN.rows during By-group processing; perform “fuzzy” matching programming techniques; create and explore the application of “virtual” tables known as views; apply rule-based and cost-based optimization strategies; influence the optimizer to choose from the available join algorithms; apply strategies associated with the design and creation of simple and composite indexes; construct table validation rules using table integrity constraints; and explore “select” query performance tuning techniques.
Intended Audience: All SAS and SQL users
Prerequisites: Introductory SQL course, SAS Essentials course and/or 6-months SAS software experience
Delivery Method: Instructor-led with code examples
Length: 4 Hours
Course Material: Course Notes are provided
Introduction to SAS Programming
Sunday, November 4, 2018, 1pm – 5pm
Clarence Jackson
The purpose of this class is to introduce BASE SAS System to non and new SAS users and programmers of other software languages. Originally developed as a class for city of Dallas programmers using COBOL and ALC on the mainframe, this half-day course will be provide a foundation for using SAS for anyone. We will review how to write a SAS program using common DATA step statements and common PROCedures statements, a review of SAS DATASETS, SAS PDV processing, and how to read and understand SAS programs written by others. The objective is for you to be able to understand BASE SAS and how it works so that you can write your own programs, follow programs written by others, and and where to go to get more info about SAS. This course is suitable for new and beginning SAS programmers wanting to write SAS right.
Intended Audience: New and beginning SAS users
Prerequisites: None
Delivery Method: Instructor-led training with code examples
Length: 4 Hours
Course Material: Course Notes are provided
From %Macro to %MEND: An Introduction to the SAS® Macro Language
Wednesday, November 7, 2018, 8am – Noon
Josh Horstman
This half-day seminar is designed for the SAS programmer who is new to the Macro Language. We will start at the basics and cover the fundamentals necessary to start applying SAS macros in your programs. By the end of the class you will understand how the Macro Language works, what the Macro Symbol Table is and how to access values stored in it, how the SAS System uses Macro Variables, key Macro Language concepts, important SAS Macro Language statements, and how to invoke Macros in your programs. The examples shown in the course materials demonstrate the power and flexibility of this part of the SAS System and will enable you to apply its functionalities to your own programs right away.
Intended Audience: All SAS users
Prerequisites: Minimum 1-year Base SAS programming experience
Delivery Method: Instructor-led with code examples
Length: 4 Hours
Course Material: Course Notes are provided
Getting Started with PROC REPORT: Understanding the Building Blocks
Wednesday, November 7, 2018, 8am – Noon
Richann Watson
Although PROC REPORT has been available since Version 6.07, the procedure is generally underutilized. One reason is that the syntax of the procedure is unique with the SAS System. Learning the basic structure in an organized way allows the programmer to easily transition from simple to increasingly more complex tables.
This Seminar will show how PROC REPORT works and thinks through a series of increasingly more complex examples. Examples will include:
- An introduction to the basic syntax of the PROC step
- Introduction to the COLMN, DEFINE, COMPUTE, BREAK, and RBREAK statements
- The demonstration of addition of text to headers and value descriptions
- The use of the DEFINE statement to form groups and columns
- The generation of breaks before and after groups
- The generation of breaks before and after the report
- Use of Aliases
Intended Audience: Beginner to PROC REPORT
Prerequisites: Minimum 1-year Base SAS programming experience
Delivery Method: Instructor-led with code examples
Length: 4 Hours
Course Material: Course Notes are provided
SAS® Fuzzy Matching Programming Techniques
Wednesday, November 7, 2018, 8am – Noon
Kirk Paul Lafler
Data comes in all forms, shapes, sizes and complexities. Stored in files and data sets, SAS® users across industries know all too well that data can be, and often is, problematic and plagued with a variety of issues. One issue, in particular, stems from the complexities associated with linking, or matching, observations from two or more data sets where a common unique identifier, referred to as the key, is not reliable or does not exist. What happens when a unique identifier such as a subscriber name, mailing address, and/or email address is misspelled, has one or more characters transposed, or is partially and/or incorrectly recorded? This instructor-led course introduces fuzzy matching programming techniques; the assortment of data issues users have to deal with; popular data cleaning and data restructuring techniques; the application of functions such as SUBSTR, SCAN, INDEX, COMPARE, CAT, SOUNDEX (for phonetic matching), SPEDIS, COMPLEV, COMPGED; and an assortment of programming techniques used to resolve key identifier issues and to merge, join and match less than perfect or messy data.
Intended Audience: All SAS users
Prerequisites: Minimum 1-year Base SAS programming experience
Delivery Method: Instructor-led training with code examples
Length: 4 Hours
Course Material: Course Notes are provided
Building Dynamic Programs and Applications Using the SAS® Macro Language
Wednesday, November 7, 2018, 1pm – 5pm
Josh Horstman
This seminar shows you how to take advantage of SAS Macro Language capabilities that enable you to write dynamic programs and applications. By mastering the concepts and techniques presented in this class your programs will become free of hard-coded data dependencies, thus eliminating the need to re-write the code every time a data set name, variable name, or other data attribute, changes. Let “them” change the project’s specifications as often as “they” want…your code is ready!
The dynamic programming techniques that you will learn about during this seminar:
- Are flexible and are easily adaptable to changing data structures, data table names, and variable (field) attributes
- Reduce maintenance requirements by removing data dependencies from within the programs
- Provide significant resource savings during program/application development cycles
- Gives the end-user extensive control over program execution by using tables such as SAS data dictionaries, SAS data sets, and Excel tables
- Reduce program validation efforts by providing reusable and generalized code that can be applied to many different applications
- Establish controlled data environments, thus insuring data integrity throughout your organization
This course makes extensive use of example macros that have been gathered from real world applications, and it concentrates on the techniques necessary to make effective use of these tools.
Intended Audience: All SAS users
Prerequisites: Strong understanding of the SAS Macro Language
Delivery Method: Instructor-led with code examples
Length: 4 Hours
Course Material: Course Notes are provided
Advanced PROC REPORT: Understanding the Compute Block and the Report Process
Wednesday, November 7, 2018, 1pm – 5pm
Richann Watson
One of the unique features of the REPORT procedure is the Compute Block. This PROC step tool allows the use of most DATA step statements, logic, and functions. Through the use of the compute block you can modify existing columns, create new columns, write text, and more!
As is so often the case, this power and flexibility comes at a price. The compute block can be complicated. There are a number of column identification and timing issues that can confound the PROC REPORT user. Of course, to make matters even more interesting, there can be multiple compute blocks that can interact with each other and that can execute for different portions of the report table.
What is one to do?
This Seminar will discuss the essential elements of the compute block, its relationship to the Computed Summary Information, and how it interacts with temporary variables and report items. We will discuss timing issues and naming conventions through a series of example tables.
The Seminar participant should have a working knowledge of the REPORT procedure and should have at least attempted the occasional compute block.
Intended Audience: All SAS users
Prerequisites: Familiarity with PROC REPORT
Delivery Method: Instructor-led with code examples
Length: 4 Hours
Course Material: Course Notes are provided
Advanced Base SAS® Programming Techniques
Wednesday, November 7, 2018, 1pm – 5pm
Kirk Paul Lafler
SAS® users who have acquired basic skills presented in a SAS Software Basics course and want to expand their programming knowledge in the DATA and PROC steps will want to attend this Advanced SAS Programming Techniques course. Attendees learn complex programming topics and techniques in the areas of data access, data manipulation, data management, data presentation, and more. Topics include DATA step programming techniques such as reading and writing data/output from/to MS-Excel spreadsheets; controlling the flow of data in the input buffer and program data vector (PDV); creating and using user-defined formats and functions; reshaping columns and rows of data with the TRANSPOSE procedure; coding and using one-dimensional and multi-dimensional arrays, loops, and ranges; using operators and modifiers to search data; DATA step hash object programming techniques; exploring details associated with index rules and strategies; using specialized ODS techniques for improved output including ODS statistical graphics and Excel spreadsheets; drill-down (interactive) programming techniques; and data-driven programming techniques.
Intended Audience: All SAS users
Prerequisites: Minimum 1-year Base SAS programming experience
Delivery Method: Instructor-led with code examples
Length: 4 Hours
Course Material: Course Notes are provided