Proceedings

Get Updates

Join our e-mail list:

MWSUG 2017 Training Classes

MWSUG offers a full menu of pre-conference training courses. These training classes are learning opportunities which allow you to delve more deeply into a topic. Classes are offered on the Saturday and Sunday prior to the conference.

Registration Type Half Day Full Day Two Day Bundle - BEST VALUE!
Conference Attendee $175 $350 $650
Without Conference $275 $550 $1,000
Full-Time Student $100 $200 N/A

To register for a training class, please select the corresponding class during the registration process. Seating for the training classes are limited and registration will be accepted on a first-come, first-served basis.

The two day bundle price may be used for any combination of training courses equivalent to two full days (four half days).

Courses Offered

Saturday, October 7, 2017

Course Title (click for description) Instructor(s) (click for bio) Time Location
Advanced Reporting and Analysis Techniques for the SAS® Power User: It's Not Just About The PROCs! Art Carpenter 8:00 AM - 5:00 PM Sterling 6
Advanced SAS® Base Programming Techniques Kirk Lafler 8:00 AM - 12:00 PM Sterling 8
Fifty-Five Functions to Supercharge your SAS Code Josh Horstman 1:00 PM - 5:00 PM Sterling 2
Data Cleaning Techniques for SAS® Users Kirk Lafler 1:00 PM - 5:00 PM Sterling 8
Introduction to Statistical Principles and Quantitative Analytics using SAS/STAT® Michael G. Wilson 1:00 PM - 5:00 PM Sterling 9

Sunday, October 8, 2017

Course Title (click for description) Instructor(s) (click for bio) Time Location
SQL I: An Introduction to PROC SQL Ben Cochran 8:00 AM - 12:00 PM Sterling 2
Mastering Output Delivery System (ODS): The Basics and Beyond Kirk Lafler 8:00 AM - 12:00 PM Sterling 8
Building Dynamic Programs and Applications Using the SAS® Macro Language Art Carpenter 1:00 PM - 5:00 PM Sterling 6
SQL II: An Advanced look at PROC SQL Ben Cochran 1:00 PM - 5:00 PM Sterling 2
SG Procedures and ODS GRAPHICS for the Non-Statistician Cynthia Zender 1:00 PM - 5:00 PM Sterling 8




Course Descriptions

Advanced Reporting and Analysis Techniques for the SAS® Power User: It's Not Just About The PROCs!
Art Carpenter
Saturday, October 7, 2017, 8:00 AM - 5:00 PM, Location: Sterling 6


There are literally hundreds of techniques used on a daily basis by the users of SAS® software as they perform analyses and generate reports. Although often obscure, most of these techniques are relatively easy to learn and generally do not require specialized training before they can be implemented. Unfortunately a majority of these techniques are used by only a very small minority of the analysts and programmers. They are not used more frequently, because a majority of SAS users have simply not been exposed to them. Left to ourselves it is often very difficult to ‘discover’ the intricacies of these techniques and then to sift through them for the nuggets that have immediate value.

This one day course presents a series of those nuggets. It covers a broad range of SAS topics that have proven to be useful to the intermediate and advanced SAS programmer who is involved with the analysis and reporting of data. The intended audience is expected to have a firm grounding in Base SAS. For most of the covered topics, the course will introduce useful techniques and options, but will not ‘teach the procedure’. No matter how experienced we are, no matter how well we know a procedure or a technique, there is still more that we do not yet know.

The course includes options and techniques associated with:
  • Newer, powerful, and little used options in MEANS/SUMMARY
  • Reporting procedures including TABLULATE and REPORT
  • Understanding more about the REPORT compute block
  • In the DATA step (functions, options, statements)
  • Working with data
  • Taking full advantage of formats
  • Interfacing with the Macro Language
  • Output Delivery System, ODS, extras
  • Operating System Interfaces and how you can take advantage of them
  • Advanced Table look-up techniques
  • Importing and exporting data
  • . . . . much, much more
Students attending this seminar will be exposed to a broad range of techniques, procedures, options, and statements. Throughout the seminar the discussion will include comparisons of coding and operating efficiencies. Even the most advanced students will come away from the training with a broader appreciation for the SAS System, its depth and its flexibility, and the programmer’s ability to tap into those capabilities.

Intended Audience Level: Strong intermediate to Advanced
Delivery Method: Seminar style
Class Material: Course no tes


Advanced SAS® Base Programming Techniques
Kirk Lafler
Saturday, October 7, 2017, 8:00 AM - 12:00 PM, Location: Sterling 8


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; hash object programming techniques; exploring the details associated with index rules and strategies; using specialized ODS techniques for improved output including ODS statistical graphics; and data-driven and drill-down (interactive) programming techniques.

Intended Audience: All SAS users
Prerequisites: Minimum 1-year SAS Base programming experience


Fifty-Five Functions to Supercharge your SAS Code
Josh Horstman
Saturday, October 7, 2017, 1:00 PM - 5:00 PM, Location: Sterling 2


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!

Materials: Course notes will be provided


Data Cleaning Techniques for SAS® Users
Kirk Lafler
Saturday, October 7, 2017, 1:00 PM - 5:00 PM, Location: Sterling 8


Are you spending too much time and money dealing with data quality issues? SAS® users often turn to off-the-shelf, or user-built, tools to handle messy data issues. Unfortunately, and all too often, many tools in use today fall short and/or have steep learning curves to master. This course explores the problems found in data, the types of data quality issues, and the various programming techniques users can learn and use to clean their data, once and for all. Attendees learn how to check and clean character and numeric data issues, handle missing data, remove duplicate data, read and write date/time variables, and apply data integrity rules to prevent messy data from creeping into a data set or table using PROC FREQ, PROC PRINT, DATA step, BY-group processing, FIRST. and LAST. processing, PROC SORT, PROC SQL, numerous SAS functions, and PROC SUMMARY programming techniques.

Intended Audience: All SAS users
Prerequisites: SAS Essentials course or 6-months SAS Base software experience


Introduction to Statistical Principles and Quantitative Analytics using SAS/STAT®
Michael G. Wilson
Saturday, October 7, 2017, 1:00 PM - 5:00 PM, Location: Sterling 9


Statistical Principles and Quantitative Analytics are investigative tools to extract meaningful information from data reliably and to guide smarter decisions. SAS/STAT has a rich, successful history of making those tools readily available and allowing for rapid customization. In this course, implementation of these tools using SAS/STAT will be introduced. Understanding fundamental concepts will be emphasized over mathematical derivation and formulae. Specific examples of categorical data analysis, logistic regression, general linear mixed models, and proportional hazards regression will be used. At the conclusion of the course, participants will be able to communicate with statisticians more effectively, better clarify specific report requirements and have an improved understanding of statistical material in multi-disciplinary discussions and reports.

Intended Audience Level: Intermediate-Experienced SAS User
Delivery Method: Seminar style
Class Material: Course Notes provided to those who pre-register. No tests.


SQL I: An Introduction to PROC SQL
Ben Cochran
Sunday, October 8, 2017, 8:00 AM - 12:00 PM, Location: Sterling 2


This half day workshop is an introduction to the SQL Procedure. It begins with an indepth look at the syntax and shows many examples of how to use the various clauses found in the Query Expression. After looking at this foundation, the next topics include: Retrieving Data from ONE table, and then retrieving data from more than one table. This course contains a step by step approach to doing many data retrieval tasks with the Proc SQL procedure.


Mastering Output Delivery System (ODS): The Basics and Beyond
Kirk Lafler
Sunday, October 8, 2017, 8:00 AM - 12:00 PM, Location: Sterling 8


Since its release, Output Delivery System (ODS) has provided SAS users with powerful output formatting features. This course explores the various techniques associated with formatting and delivery output/results using the Output Delivery System (ODS). Detailed explanations, statement syntax, and numerous examples will be presented giving attendees a better understanding of how to effectively use ODS for the delivery of output, data and results anyway desired. Topics include SAS-supplied formatting statements and options; producing trace log listings; selecting output objects with Selection or Exclusion Lists; exploring the various output mediums (destinations); formatting output/results as RTF, PDF, MS-Excel®, and HTML files; using the Escape character to enhance RTF output formats; implementing scrollable tables in HTML output with static column headers; generating HTML hyperlinks in RTF output; adding images to RTF output; enabling/disabling output borders; removing gridlines and shading in RTF output; producing built-in hyperlinks to PDF content; creating a printable table of contents in PDF output; sending output to Microsoft Excel; and using Base-SAS software to construct drill-down applications with the DATA step, ODS, and ODS Statistical Graphics.

Intended Audience: All SAS users
Prerequisites: SAS Essentials course or 6-months SAS Base software experience


Building Dynamic Programs and Applications Using the SAS® Macro Language
Art Carpenter
Sunday, October 8, 2017, 1:00 PM - 5:00 PM, Location: Sterling 6


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 Level: Strong understanding of the macro language
Delivery Method: Seminar style
Class Material: Course notes


SQL II: An Advanced look at PROC SQL
Ben Cochran
Sunday, October 8, 2017, 1:00 PM - 5:00 PM, Location: Sterling 2


This course goes beyond the basics of PROC SQL by introducing the student to topics such as:
  • Using Subqueries
  • Creating Indexes and Views
  • Using Options to Debug Queries
  • Improving Query Performance
  • Using the Macro Facility with Proc SQL
  • Using Dictionary Tables
  • Comparing Tables
  • Accessing NON-SAS Data (DBMS)



SG Procedures and ODS GRAPHICS for the Non-Statistician
Cynthia Zender
Sunday, October 8, 2017, 1:00 PM - 5:00 PM, Location: Sterling 8


Do you need to produce simple series plots and bar charts and maybe the occasional box plot? Do you want to generate "small multiple" or paneled charts, as recommended by Edward Tufte? This seminar illustrates how to use the new SG procedures, in particular, SGPLOT and SGPANEL to produce simple plots and bar charts. Primary SGPLOT types covered will be VBAR, HBAR, SERIES, VBOX and HBOX. Once you know the basics of the SGPLOT statements to produce single graphs, learning SGPANEL to created paneled output will be a cinch. Through concrete examples, this seminar will guide you through the basics of producing and customizing simple graphs using the new SG procedures. (Note: The SGSCATTER and SGRENDER procedures are topics that are not covered in this seminar. ) In addition, use of the ODS GRAPHICS statement for setting or changing graph options will be covered.





Instructor Biographies


Art Carpenter

Art Carpenter’s publications list includes five books, and numerous papers and posters presented at JASA, SUGI, SAS Global Forum, and other SAS user group conferences. He provides data processing, data analysis, and statistical consulting services to a variety of industries. Art has been using SAS® since 1977 and has served in various leadership positions in local, regional, national, and international user groups. He is a SAS Certified Advanced Programmer and through California Occidental Consultants he teaches SAS courses and provides contract SAS programming support nationwide. Specialties: General Linear Models, Base SAS, SAS/STAT, SAS Macro Language, SAS/GRAPH. Art is a member of the Community Advisory Board for sasCommunity.org, a SAS wiki information site. See his sasCommunity.org profile at: http://www.sascommunity.org/wiki/User:ArtCarpenter

Ben Cochran

After more than 11 years with SAS Institute in the Professional Services (as an Instructor) and Marketing Departments (as Marketing Manager for the SAS/EIS product), Ben Cochran left to start his own consulting and SAS Training business in the fall of 1996 – The Bedford Group. As an affiliate member of SAS Institute’s Alliance Partner Program, Ben has been involved in many teaching and consulting projects over the last 20+ years. Ben has authored and presented several papers at SUGI, SGF, and regional user groups on a variety of topics since 1988.

Josh Horstman

Josh Horstman is an independent statistical programmer based in Indianapolis with 19 years experience using SAS in the life sciences industry. He is a SAS Certified Programmer specializing in analyzing clinical trial data, and his clients have included major pharmaceutical corporations, biotech companies, and research organizations. Josh loves coding and has enjoyed presenting numerous times at SAS Global Forum, PharmaSUG, MWSUG, and other SAS User Group meetings.

Kirk Lafler

Kirk Paul Lafler has been programming in SAS® since 1979 and is consultant and founder of Software Intelligence Corporation. Kirk teaches SAS programming classes at UC San Diego Extension and to the public, is a SAS Certified Professional, application developer, programmer, data analyst, mentor, and provider of IT consulting services and education to SAS users around the world. As the author of six books including Google® Search Complete! (Odyssey Press. 2014) and PROC SQL: Beyond the Basics Using SAS, Second Edition (SAS Institute. 2013); Kirk has written hundreds of papers and articles; been an Invited speaker at hundreds of SAS International, regional, special-interest, local, and in-house user group conferences/meetings; and is the recipient of 25 “Best” contributed paper, hands-on workshop (HOW), and poster awards.

Michael G. Wilson

Michael G. Wilson has been a practicing statistician using SAS/STAT for 29 years. In addition, he has been a part-time faculty and adjunct faculty member for the past 12 years teaching statistics at the university, advanced graduate and medical school levels. Michael has co-authored over 50 peer-reviewed research journal articles. Currently, he is an independent biostatistician and co-investigator of NIH and VA studies.

Cynthia Zender

Cynthia Zender has been with SAS since 1996 as an instructor and course developer. She currently serves as the Curriculum Manager for the Report Writing and Output Delivery System curriculum. Cynthia is a frequent speaker at SAS Global Forum and at regional SAS user groups. She is working on an "SG" procedure graphics course, as well as a SAS/Graph course. Cynthia is a SAS Certified Professional, with over 25 years of experience programming and reporting with SAS. Prior to joining SAS, she worked with a variety of industries (including education, public utilities, and telecom), using SAS for application development and report writing.