MWSUG 2009 Hands-On Workshops

The conference program also includes free hands-on workshops (HOWs), so you have the opportunity to both learn new things and gain experience using them. The year's HOWs will be presented by Art Carpenter, Kirk Lafler, and SAS's own Vince DelGobbo.

Day/Time Instructor Hands-On Workshop Title (click for description)
Monday - 8:00-9:30am Kirk Lafler Exploring DATA Step and PROC SQL Programming Techniques
Monday, 10:00-11:30am Vince DelGobbo More Tips and Tricks for Creating Multi-Sheet Microsoft Excel Workbooks the Easy Way with SASŪ
Monday, 1:30-3:00pm Art Carpenter SASŪ Macro: Symbols of Frustration? %Let us help! A Guide to Debugging Macros
Monday, 3:30-5:00pm Art Carpenter List Processing Basics: Creating and Using Lists of Macro Variables
Tuesday, 8:15-9:45am Art Carpenter PROC REPORT: Compute Block Basics
Tuesday, 10:00-11:30am Kirk Lafler Exploring DICTIONARY Tables and SASHELP Views
Tuesday, 1:00-2:30pm Art Carpenter Table Lookups: From IF-THEN to Key-Indexing
Tuesday, 2:45-4:15pm Kirk Lafler SASŪ Performance Tuning Techniques



Workshop Descriptions

H01 : List Processing Basics: Creating and Using Lists of Macro Variables
Art Carpenter, Caloxy (presenter)
Ronald J. Fehd, Centers for Disease Control and Prevention
Monday, 3:30-5:00pm, Erie/Superior


List Processing or dynamic programming techniques free up your programming time by eliminating hard-coded parameter values. List values can be obtained directly from information you already have, and there is more than one way to do it! Commonly the list is stored as a series of macro variables or as a macro variable with a series of values, or even as values in a data set.

This paper compares and contrasts the basic methods of treating variable values as parameters and placing them into repetitive code.


H02 : SASŪ Macro: Symbols of Frustration? %Let us help! A Guide to Debugging Macros
Art Carpenter, Caloxy (presenter)
Kevin P. Delaney, Centers for Disease Control and Prevention
Monday, 1:30-3:00pm, Erie/Superior


Are you just learning to write MACROS? Are you baffled by when to use single quotes and double quotes - or one inside the other? Are you confused by when to use statements such as DO versus %DO? Want to know the difference between a GLOBAL and LOCAL Macro variable? Do you have macros that don't give the right results yet don't give error messages either? This workshop will introduce a few MACRO concepts that are often misunderstood. You'll also learn how to use options such as MPRINT and SYMBOLGEN, and statements such as %PUT, to help you determine why your macro doesn't run, or why it does run but gives you the wrong results.


H03 : PROC REPORT: Compute Block Basics
Art Carpenter, Caloxy
Tuesday, 8:15-9:45am, Erie/Superior


One of the unique features of the REPORT procedure is the Compute Block. Unlike most other SAS procedures, PROC REPORT has the ability to modify values within a column, to insert lines of text into the report, to create columns, and to control the content of a column. Through compute blocks it is possible to use a number of SAS language elements, many of which can otherwise only be used in the DATA step.

While powerful, the compute block can also be complex and potentially confusing. This tutorial introduces basic compute block concepts, statements, and usages. It discusses a few of the issues that tend to cause folks consternation when first learning how to use the compute block in PROC REPORT.


H04 : Table Lookups: From IF-THEN to Key-Indexing
Art Carpenter, Caloxy
Tuesday, 1:00-2:30pm, Erie/Superior


One of the more commonly needed operations within SAS(r) programming is to determine the value of one variable based on the value of another. A series of techniques and tools have evolved over the years to make the matching of these values go faster, smoother, and easier. A majority of these techniques require operations such as sorting, searching, and comparing. As it turns out, these types of techniques are some of the more computationally intensive, and consequently an understanding of the operations involved and a careful selection of the specific technique can often save the user a substantial amount of computing resources.

This workshop will demonstrate, compare, and contrast the following techniques: IF-THEN, IF-THEN-ELSE, SELECT, user defined formats (PUT function), MERGE, SQL joins, merging with two SET statements, using the KEY= option, use of ARRAYS, and Key-Indexing.


H05 : Exploring DICTIONARY Tables and SASHELP Views
Kirk Paul Lafler, Software Intelligence Corporation
Tuesday, 10:00-11:30am, Erie/Superior


SAS(r) users can quickly and conveniently obtain useful information about their SAS session with a number of read-only SAS data views called DICTIONARY tables or SASHELP views. At any time during a SAS session, information about currently defined system options, libnames, table names, column names and attributes, formats, indexes, and more can be accessed and captured. This paper explores the purpose of DICTIONARY tables and views, how they are accessed, and what information is available to SAS users. Attendees will learn how these important tables and views can be accessed and applied using real-world scenarios.


H06 : SASŪ Performance Tuning Techniques
Kirk Paul Lafler, Software Intelligence Corporation
Tuesday, 2:45-4:15pm, Erie/Superior


As SAS(r) software becomes increasingly more popular, guidelines for its efficient use are critical. Areas deserving special consideration include program execution, I/O, disk space, and program maintenance. A collection of techniques and sample code are presented to illustrate numerous practical methods for gaining efficiency while using SAS software.


H07 : Exploring DATA Step and PROC SQL Programming Techniques
Kirk Paul Lafler, Software Intelligence Corporation
Monday - 8:00-9:30am, Erie/Superior


Are you considering whether to use a DATA step or PROC SQL in your next project? This presentation explores the similarities and differences between DATA step and PROC SQL programming techniques. Topics include IF-THEN-ELSE, SELECT-WHEN, and PROC SQL CASE expressions conditional logic concepts and constructs; 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 join programming constructs.


H08 : More Tips and Tricks for Creating Multi-Sheet Microsoft Excel Workbooks the Easy Way with SASŪ
Vince DelGobbo, SAS Institute Inc.
Monday, 10:00-11:30am, Erie/Superior


Transferring SAS data and analytical results between SAS and Microsoft Excel can be difficult, especially when SAS is not installed on a Windows platform. This paper explains how to use the XML support in Base SAS(r)9 software to create multi-sheet Microsoft Excel workbooks (for Excel versions 2002 and later.) You will learn step-by-step techniques for quickly and easily creating attractive multi-sheet Excel workbooks that contain your SAS output, and also tips and tricks for working with the ExcelXP ODS tagset. Most importantly, the techniques that are presented in this paper can be used regardless of the platform on which SAS software is installed. You can even use them on a mainframe! The use of SAS server technology is also discussed. Although the title is similar to previous papers by this author, this paper contains new and revised material not previously presented.