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-dayRegistration 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:
- New, 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
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:
- putting results from multiple procedures on the same page – even side by side
- explore new ways to mix text and graphic output in the same report
- controlling the appearance of reports produced by the REPORT and TABULATE procedures, even down to affecting the look of a single cell
- adding blocks of text to your output to make your reports more understandable
- creating formatted Excel spreadsheets, with frozen headers, specific column widths, page numbers, etc.
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:
- Macro Language Review
- Macro Functions, Using and Creating
- Writing Dynamic Code
- Controlling Your Environment
- Working With SAS Data Sets
- Using SAS Macro Libraries
- Miscellaneous Macro Topics
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:
- 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
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