MWSUG 2010 Pre- and Post-Conference Training

This year, MWSUG is offering several full- and half-day training courses. These training classes are learning opportunities which allow you delve more deeply into a topic. Classes are offered on the Friday, Saturday, and Sunday prior to the conference and the Wednesday following the conference.

Registration with conference: $300 for full-day, $150 for half-day
Registration without conference: $450 for full-day, $225 for half-day

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-serve basis.

Friday, October 8
Time Course Title Instructor Room (map)
8:00am - 5:00pm Advanced Reporting Techniques Art Carpenter Mitchell
8:00am - 5:00pm Generating Reports with the SAS System, Including ODS CANCELLED
Saturday, October 9
Time Course Title Instructor Room (map)
8:00am - 5:00pm Advanced SAS Programming for Efficiency Ben Cochran MacArthur
8:00am - 5:00pm Beginning Macro Language Art Carpenter Mitchell
8:00am - 5:00pm Printable Reporting in SAS Pete Lund Walker
8:00am - 12:00pm DATA Step Versus PROC SQL Programming Techniques Kirk Lafler Oak
1:00pm - 5:00pm SAS Programming: Beyond the Basics Kirk Lafler Oak
Sunday, October 10
Time Course Title Instructor Room (map)
8:00am - 5:00pm Advanced Macro Language Art Carpenter Mitchell
8:00am - 5:00pm Ins and Outs of SAS Formats CANCELLED
8:00am - 5:00pm JMP for Data Exploration Sandra Schlotzhauer Wright C
8:00am - 5:00pm Manipulating Data Using Functions and Arrays Ben Cochran MacArthur
8:00am - 12:00pm PROC SQL Programming: Beyond the Basics Kirk Lafler Oak
1:00pm - 5:00pm Creating Complex Reports Cynthia Zender Kilbourn
1:00pm - 5:00pm Transferring Data between SAS and Excel Using SAS Software Kirk Lafler Oak
Wednesday, October 13
Time Course Title Instructor Room (map)
8:00am - 12:00pm Building Dynamic Applications with SAS Macro Language Art Carpenter Mitchell
8:00am - 12:00pm Output Delivery System: The Basics and Beyond Kirk Lafler MacArthur
1:00pm - 5:00pm Advanced PROC REPORT - Understanding the Compute Block Art Carpenter Mitchell
1:00pm - 5:00pm Data Manipulation Techniques Using SAS Software Kirk Lafler MacArthur



Course Descriptions




Advanced Reporting and Analysis Techniques for the SAS® Power User: It's Not Just About The PROCs!
Art Carpenter
Friday, October 8, 2010, 8:00am – 5:00pm


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:
. . . . much, much more

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



Advanced SAS Programming for Efficiency
Ben Cochran
Saturday, October 9, 2010, 8:00am – 5:00pm


This course looks at basic efficiency issues, accessing data, saving space by compressing SAS data sets, saving time by indexing SAS data sets, table lookup techniques, advanced DATA step processing, and advanced utility operations. (Without workshops, this could be a one day).


From %Macro to %MEND: An Introduction to the SAS® Macro Language
Art Carpenter
Saturday, October 9, 2010, 8:00am – 5:00pm


This one-day course 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 day you will understand how the Macro Language works, what the Macro Symbol Table is and how values are 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 example Macros shown in the course materials demonstrate the power and flexibility of this part of the SAS System and will enable you to apply the functionality of the Macro Language to your own programs right away.

This session is suited for the SAS user who already has a basic understanding of the Data Step and Procedure Steps, and who is new to the Macro Language facility in SAS System software. It is a beginning-level course that assumes no prior understanding of the SAS Macro Language. It is also suitable for SAS users who want to understand the Macros found in programs that have been "inherited" from other programmers.

Intended Audience Level: Beginner to early intermediate
Delivery Method: Seminar style
Class Material: Carpenter’s Complete Guide to the Macro Language, 2nd Edition



Printable Reporting in SAS
Pete Lund
Saturday, October 9, 2010, 8:00am – 5:00pm


The SAS Output Delivery System (ODS) is a wonderful thing. It can help you create web pages, make datasets from procedures that don’t do it on their own and send output to multiple destinations at the same time.

But, one of the most powerful features of ODS is that it gives you the capability of creating high quality printable output that requires no post-hoc manipulation. This class will give you tips and tricks to use in creating PDF, RTF and Excel files in your SAS jobs. We’ll look at a number of topics: All of the examples in the class are taken from real-world, production code and most will run in 9.1.3. We’ll also take a look at some new things available in version 9.2 that extend and simplify some of the techniques used.


DATA Step versus PROC SQL Programming Techniques
Kirk Lafler
Saturday, October 9, 2010, 8:00am – 12:00pm


Should the DATA step or SQL procedure be used to perform certain programming tasks? This course contrasts the similarities and differences between DATA step versus PROC SQL programming techniques including conditional logic concepts and constructs including IF-THEN-ELSE, SELECT- WHEN, and PROC SQL CASE expressions; and the techniques for constructing effective merges and joins. Attendees explore examples that contrast DATA step versus PROC SQL programming techniques to conduct conditional logic scenarios, one-to-one match-merges and match-joins, and an assortment of inner and outer joins programming techniques.

Intended Audience: All SAS users
Prerequisites: Minimum 1-year SAS programming experience
Delivery Method: Instructor-led with code examples
Length: 4-Hours
Course Material: Course Notes are included



SAS® Programming: Beyond the Basics
Kirk Lafler
Saturday, October 9, 2010, 1:00pm – 5:00pm


SAS users who have acquired basic skills presented in a SAS Software Basics course and want to expand their knowledge in the DATA step as a programming language will want to attend this SAS Programming: Beyond the Basics course. Attendees learn complex programming topics and techniques in the areas of data access, data manipulation, data management, data presentation, and much more.

Topics include DATA step programming techniques including reading a variety of file formats; using column and line pointers; specifying system and language options; coding loops, ranges, and arrays; performing lookup operations with hash tables; using operators and modifiers; reshaping columns of data; techniques on managing data; custom report writing techniques; specialized ODS techniques for improved output, and testing and debugging 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 included



Advanced Techniques in the SAS® Macro Language
Art Carpenter
Sunday, October 10, 2010, 8:00am – 5:00pm


This one day course is designed for students with a good understanding of the DATA and PROC steps and who already understand the basic structure and syntax of the SAS Macro Language. The course will start with a short review of the macro basics and quickly move on topics selected to improve your macro language expertise. Several key macro functions will be introduced, explained and demonstrated.

Course topics include: Learn how the macro language thinks as you use it to write your programs.

Intended Audience Level: Intermediate
Delivery Method: Seminar style
Class Material: Carpenter’s Complete Guide to the Macro Language, 2nd Edition



JMP for Data Exploration
Sandra Schlotzhauer
Sunday, October 10, 2010, 8:00am – 5:00pm


Since this course assumes no prior JMP knowledge, the course begins by introducing the basics of JMP data tables. The course then looks at exploring individual variables, pairs of variables, and many variables. In addition, the course discusses using JMP features to enhance graphs and reports, and importing or exporting to other software packages (SAS®, Excel®, and Word®, for example).
The intent of the course is to help participants understand that their data has a message, and that in addition to formal statistical methods, exploring the data using JMP can help them discover that message. Performing statistical analyses without first exploring the data can lead to inaccurate conclusions—perhaps because of a data entry error or perhaps because of an outlier or data point representing a special cause. Data exploration includes tasks that are typically performed to check data for errors. However, data exploration expands on those tasks, and focuses on using graphs and tables to gain insight into data.



Manipulating Data Using Functions and Arrays
Ben Cochran
Sunday, October 10, 2010, 8:00am – 5:00pm


This course is a one day subset of the SAS II course. It focuses solely on the DATA step and sheds much light on the power and functionality of the many Functions in the SAS System. An in-depth look is given to the Arrays, how to create them, how they work, and how to manipulate data with them. Includes many new SAS9 functions.


PROC SQL Programming: The Basics and Beyond
Kirk Lafler
Sunday, October 10, 2010, 8:00am – 12:00pm


This course expands your PROC SQL programming skills using numerous examples and techniques of this powerful database language. Topics include strategies for creating and using virtual tables known as views, using case expressions to perform conditional logic and reclassification of data values, complex queries using inner and outer join constructs including set operators, database design concepts including basic normalization rules, examples of implementing table integrity constraints, accessing information contained in read-only dictionary tables, interfacing PROC SQL with the macro facility to create macro variables and macro variable lists, rules associated with index creation and usage, undocumented and hard-to-find PROC SQL (and non-PROC SQL) features for debugging purposes, and PROC SQL (and non-PROC SQL) performance tuning strategies including techniques for limiting the amount of data transferred between the native data base (e.g., Oracle, DB2, MySQL, MS- Server, etc.) and SAS.

Intended Audience: All SAS users
Prerequisites: SAS Basics course or 6-months SAS software experience
Delivery Method: Instructor-led with code examples
Length: 4-Hours
Course Material: Course Notes are included



Creating Complex Reports
Cythnia Zender
Sunday, October 10, 2010, 1:00pm – 5:00pm


This 3-4 hour seminar is based on the SAS Global Forum paper of the same name (http://www2.sas.com/proceedings/forum2008/173-2008.pdf ). This seminar is for intermediate SAS programmers. In the seminar, we will investigate how eight (8) complex reports were produced with SAS. All the code that produced the reports will be covered, in detail. All report output is produced using ODS (rather than LISTING) output. The reports to be covered include three versions of a standard demographic report, producing a color-banded report with PROC TABULATE, producing a report which uses special fonts (Bissantz SparkFonts) to produce a sparkline report, several graph examples and several unique report ordering examples. Procedures/Topics to be covered include: REPORT, TABULATE, FORMAT, MEANS, FREQ, Macro processing and DATA _NULL_ programming (as used to produce the reports) . Refer to the SAS Global Forum paper to see the actual reports which will be discussed in detail.


Transferring Data between SAS® and Excel® Using SAS® Software
Kirk Lafler
Sunday, October 10, 2010, 1:00pm – 5:00pm


This course focuses on the various techniques and methods associated with transferring data between SAS® and Excel®. Topics covered include the approaches available to users for transferring data and output from SAS to Excel as well as from Excel to SAS. A collection of proven techniques along with code examples are presented to illustrate popular transfer methods including Dynamic Data Exchange (DDE), the EXPORT and IMPORT procedures in SAS/ACCESS® software, a LIBNAME statement, the SAS Display Manager System, the ODS HTML destination, the MSOFFICE2K tagset to create a single- sheet Excel workbook and the EXCELXP tagset to create multi-sheet Excel workbooks.

Intended Audience: All SAS and Excel users
Prerequisites: SAS Basics course, or some SAS and Excel software experience
Delivery Method: Instructor-led with code examples
Length: 4-Hours
Course Material: Course Notes are included



Building Dynamic Programs and Applications Using the SAS® Macro Language
Art Carpenter
Wednesday, October 13, 2010, 8:00am – 12:00pm


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:
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



Output Delivery System: The Basics and Beyond
Kirk Lafler
Wednesday, October 13, 2010, 8:00am – 12:00pm


This course explores the various techniques associated with output formatting and delivery using the Output Delivery System (ODS). Numerous examples will be presented to command mastery of ODS capabilities while providing a better understanding of ODS statements and options to deliver output anyway that is needed. Topics include SAS-supplied Formatting statements and options; Formatting Output as RTF, PDF, MS-Excel®, and HTML; Selecting output objects with Selection or Exclusion Lists; using the Escape character to enhance output formats; exploring ODS statements and options; constructing drill-down applications with the DATA step, ODS, and SAS/GRAPH software; creating thumbnail charts; techniques on creating user-defined ODS styles; and an introduction to the customization of output with the TEMPLATE Procedure.

Intended Audience: All SAS users
Prerequisites: SAS Basics course or 6-months SAS software experience
Delivery Method: Instructor-led with code examples
Length: 4-Hours
Course Material: Course Notes are included



Advanced PROC REPORT: Understanding the Compute Block and the Report Process
Art Carpenter
Wednesday, October 13, 2010, 1:00pm – 5:00pm


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 Level: Familiar with basic PROC REPORT



Data Manipulation Techniques Using SAS Software
Kirk Lafler
Wednesday, October 13, 2010, 1:00pm – 5:00pm


This course is for those who need to learn the various data manipulation techniques using SAS® Software to access, transform and summarize data. An examination of proven data manipulation techniques with code examples are presented using SAS Software. Attendees learn accepted and proven data manipulation techniques including, the methods of summarizing data vertically and horizontally; controlling the input and output of data; transforming character and numeric data; creating and using formats for table lookup operations; using one-dimensional and multi-dimensional arrays to manipulate data; restructuring data sets with the DATA step or TRANSPOSE procedure; and combining the contents of data sets horizontally using match merging and join techniques.

Intended Audience: All SAS users
Prerequisites: Minimum 1-year SAS programming experience
Delivery Method: Instructor-led with code examples
Length: 4-Hours
Course Material: Course Notes are included