Home    |    Meetings    |    Resources    |    Contacts   


Archive of Past Presentations

Late Winter meeting - Friday, March 12, 2004, 9am

Testing and Validating SAS Programs OR Beyond Debugging: Program Validation
Neil Howard / Ingenix Pharmaceutical Services

Powerpoint presentation from the meeting

"Act in haste and repent at leisure; code too soon, and debug forever." Raymond Kennington

Overheard at an interview for a SAS programming position:  "But you don't have to test SAS programs!!!"  As the interviewers quickly escort the confused candidate out the door, they recall how often it is assumed that a fourth generation language "does so much for you" that you don't have to test the code.  The SAS system is easy to use, and the learning curve to productivity is relatively short.  But SAS is just as easy to ABUSE. Programmers and analysts must not lose sight of the indisputable facts: data is seldom clean, logic is too often faulty, and fingers walk clumsily over keyboards.  Condition codes and clean logs are not accurate indicators of successful programs.

Good debuggers make good programmers. And good analysts and problem-solvers make good programmers. And just because a SAS® program is free of errors, warnings, notes, and bugs does not guarantee that the program is doing what it is supposed to do. This paper addresses the process of debugging, testing and validating SAS programs and the tools available in the SAS language to facilitate the process.  It covers techniques for ensuring that the logic and intent of the program is correct, that the requirements and design specifications are met, and that data errors are detected.  Since as much as 80% of a programmer's time is invested in testing and validation, it's important to develop a personal approach to testing and a routine testing methodology in your group.

Neil Howard is Manager of Statistical Programming at i3 Data Services in Basking Ridge, NJ; she was with Pfizer previously.  A SAS user for more than twenty years, Neil has been an invited speaker since 1983 on such topics as: efficiency techniques, DATA step processing and internals, advanced DATA step techniques, testing and validation, graphics, effective presentations, and interviewing/hiring SAS programmers.  She was a contract instructor for SAS Institute for seven years teaching fundamentals, programming, macro, report writing, graphics and the annotate facility.  She has been a member of the SUGI Executive Committee since 1993 and was proud to chair SUGI 20 in Orlando.  She is currently the Academic Chair for SESUG '04 to be held in Nashville in October 2004.


ODS on SAS V9.1
Sandy McNeil, SAS (Eric Gebhart replaced Sandy for the talk )

SAS 9.1 is out -- are you ready??  Take a quick trip with me through ODS-land to see what's new and useful in the Output Delivery System.   Some of the highlights will be a discussion of two new destinations, MARKUP and DOCUMENT, and how they can be useful to you.

Eric has been with SAS since 1995. He is one of the original ODS developers and is responsible for HTML and the new MARKUP destination and Tagsets.

Sandy McNeill is the manager of the Output Delivery and Reporting department at SAS. The ODR department is responsible for ODS and the BASE reporting procedures -- Print, Tabulate, and Report.  Sandy joined SAS in 1995 to support PROC REPORT, for which she is still the lead development support person.

Prior to joining SAS, Sandy worked at Square D where she wrote firmware for Programmable Logic Controllers, and then was the programming lead for the graphical user interface used to program the PLCs.  Sandy's previous experience before Square D was six years with GTE Government Systems where she worked on the firmware for a communication device used by the Army during Operation Desert Storm.  Sandy graduated Magna Cum Laude in 1985 with a B.S. in Computer Science from North Carolina State University.


Spring meeting - Tuesday, June 8, 2004, 9am

Mrs. Clean Tackles Dirty Data
Janet Stuelpner / Independent Consultant

What is clean data and how do you clean it?  This is an age-old question that has some pretty easy answers.  There are some techniques that can be used to find invalid data values in both numeric and character data, missing values and duplicate observations.  Simple procedures and DATA steps can be used to ferret out inappropriate observations.  This presentation will illustrate some of the techniques used after data entry is complete and the data has to be reviewed and cleansed.

Janet Stuelpner provides programming support in the areas of clinical trials, outcomes research and the financial industry. She also provides both individual and group technical training when needed at the client sites.  Janet has several degrees in the sciences. She has been a SAS user for 20 years on many different platforms. Originally a systems programmer, she has now turned her focus to applications programming and teaching. She has been a presenter at users groups at all levels.


The Input Statement: Where It's @
Ron Cody / Professor, Robert Wood Johnson Medical School

The INPUT statement is one of the most powerful and flexible features of SAS software.  You can read data values separated by spaces or commas (or other delimiters), data values in specified columns, or data stored in a variety of formats such as packed decimal, or binary.  You can also read date values in most of the standard formats. Along with an INFILE statement, you can read data from external files as well.  You can place the data for several observations on a single data line or you can read several lines of data and create a single observation.  Finally, you can read values from a line of data and, depending on the value, decide how to read the remaining data.  This talk will tell you where it's @.

Dr. Ron Cody is a Professor in the department of Environmental and Community Medicine at the Robert Wood Johnson Medical School, Piscataway, New Jersey.  He has been a SAS user since the late 70's  and is the author of "Applied Statistics and the SAS® Programming Language" (fourth edition), published by Prentice Hall.  He has also authored or co-authored the following books for the SAS Institute as part of their Books by Users series: SAS Functions by Example (just published), The SAS Workbook, SAS Programming by Example, Cody's Data Cleaning Techniques, and Longitudinal Data and SAS: A Programmer's Guide.  Ron has presented invited papers for numerous local, regional, and national SAS conferences.


Early Autumn meeting - Friday, September 24, 2004, 9am

ODS:  Step by Step
Wendi Wright, Educational Testing Service

The Output Delivery System (ODS) was developed by SAS® to create professional looking output reports, among other reasons. This paper introduces the beginning ODS user to the basic concepts of creating RTF and HTML files using SAS ODS on the MS Window platform. This paper is based on the same set of steps that I used when I was first learning ODS.

Wendi Wright has been working at Education Testing Service since 1986. She has been using SAS for almost that long and currently is responsible for teaching the language to new hires in her department as well as using the language for programming assignments.


PROC SQL - Is It a Required Tool of Good SAS®Programming?
Dr. Ian Whitlock

No one SAS tool can be the answer to all problems. However, it should be hard to consider a SAS programmer well versed in SAS, who does not use DATA steps. SQL should be classified with the DATA step rather than procedures because it is really a programming language in itself.

In the past many good SAS programmers have resisted learning PROC SQL on the basis that it is a database tool and that they can get along without it. It is time (or past time) to reconsider the question and change that belief.

SQL has dramatically changed the nature of what good SAS macro code looks like. It can simplify and standardize a number of common SAS programming patterns involving combinations of the DATA step, PROC SUMMARY, PROC SORT, and PROC PRINT.

This tutorial will focus on problem examples with code where PROC SQL has a distinct advantage in terms of code simplicity over use of the more traditional SAS tools mentioned above.

Dr. Ian Whitlock has been programming largely in SAS since 1981 using an interactive environment to develop programs for execution in a batch environment. He is active on SAS-L, and has presented many different papers at national, regional, and local SAS User Group meetings.


Late Autumn meeting - Friday, 10Dec2004, 9am

SAS 9 and Business Intelligence
Terry Druckman, SAS, Bedminster, NJ

This presentation will highlight some of the major V9 enhancements and focus on the Business Intelligence Tools
Product Demonstration will consist of the following:

  • Enterprise Guide
  • Stored Process Capability
  • Web Report Studio
  • Portal
  • Terry is a presales Senior Systems Engineer in the Health and Life Sciences Division of SAS since the summer of 1997. He is based in Bedminster, New Jersey and supports the sales force across pharma, healthcare providers and healthcare insurers. He is currently focused on the Business Intelligence Tools that SAS offers much of which are new for SAS V9.
    Prior to SAS, Terry worked for a small software development company that specialized in a 3rd and 4th generation Business Basic Language and various Accounting applications. He holds the BS degree from Villanova University and also has experience in the accounting field.


    %SYSFUNC; a powerful SAS tool
    Foster Kerrison

    %SYSFUNC is a very powerful and flexible component of the SAS ® system. This presentation is designed to teach you how to understand the basic elements of %SYSFUNC, and how to apply it to your daily tasks. You don't need to be a macro guru to use it. %SYSFUNC allows you to undertake a wide range of tasks related to your data by using consistent syntax. Understanding how to use %SYSFUNC is the key to success, and this presentation will teach you how. Paper

    Foster Kerrison is a self taught SAS programmer. He is the founder, and first President, of the New Hampshire & Vermont SAS users group. He is a strong believer in self help amongst SAS programmers, and is always interested in learning and teaching new ways to use SAS. A graduate of Harvard University, he is currently a masters student in Healthcare Informatics at the Royal College of Surgeons/University of Bath in the UK. He is a self employed contractor, who has worked in the Healthcare, Direct Marketing, and financial services industry, so he has a broad perspective on SAS applications.