Hands-On-Workshops

A Hands-on Introduction to SAS® DATA Step Hash Programming Techniques

Kirk Paul Lafler

SAS software supports a DATA step programming technique known as hash that enables faster table lookup, search, merge/join, and sort operations. This hands-on workshop reviews match-merge and join techniques, introduces what a hash object is, how hash objects work, and the hash object syntax required to take advantage of the speed that available memory offers. Attendees learn essential hash object programming techniques to define a simple key, sort data, search memory-resident data using a simple key, match-merge (or join) two data sets, handle and resolve collision scenarios where two distinct pieces of data have the same hash value, as well as more complex programming techniques that use a composite key to search for multiple values.

Interactive Graphs!

Richann Watson and Kriss Harris

This paper demonstrates how you can use interactive graphics in SAS® 9.4 to assess and report your safety data. The interactive visualizations that you will be shown include the adverse event and laboratory results. In addition, you will be shown how to display "details-on-demand" when you hover over a point.
Adding interactivity to your graphs will bring your data to life and help improve lives!

An Animated Guide to PROC Report in a HOW

Russ Lavery

PROC Report is a powerful big data tool because PROC Report reads the source data set only one time and performs all other calculations on a hidden internal file- greatly reducing run time. If the data being fed into PROC Report is in the proper structure, using PROC Report can save run time as well as hundreds of lines of SAS code.

PROC Report combines the convenience of a Proc Print with the power of the Data Step and can produce complete, complex and colorfully traffic-lighted reports in one procedure call. This mini-seminar concentrates on the internal processes of product report – how calculations are done. Understanding internal processes are required in order to calculate nested percentages and totals that are often required for complicated reports. Creating colorful and highly nested reports, using PROC Report, has been covered in many SUG papers but this topic, calculations, has not.

This talk (slides and an accompanying audio) was burned onto a CD and was glued onto the back cover of Art Carpenter’s excellent book on PROC Report. If you have a hard-cover copy of that book, you already have this mini-seminar. Since that book is now being sold as a soft cover, The CD can no longer be purchased but the talk can now be presented at SUGs.

Everything is better with friends: Executing SAS code in Python scripts with SASPy

Isaiah Lankham and Matthew Slaughter

SASPy is a module developed by SAS Institute for the Python programming language, providing an alternative interface to the SAS system. With SASPy, SAS procedures can be executed in Python scripts using Python syntax, and data can be transferred between SAS datasets and their Python DateFrame equivalent. This allows SAS programmers to take advantage of the flexibility of Python for flow control, and Python programmers can incorporate SAS analytics into their scripts.

In this hands-on workshop, we use the Jupyter Notebook interface for SAS University Edition to complete common data-analysis tasks using both normal SAS code and SASPy within a Python script. We also highlight important tradeoffs for each approach, emphasizing the value of being a polyglot programmer.

As background, Python is an open-source language originally developed for teaching programming in the 1990s. Highly praised for its straightforward syntax, Python initially became popular as a "glue" language and is now widely used in many problem domains, from data science to web development. Many popular websites are Python applications, including YouTube and Instagram.

This workshop is aimed at users of all skill levels, including those with no prior experience using Python or Jupyter Notebook, and assumes only basic familiarity with SAS syntax. Attendees wishing to follow along using their own computer should pre-install the latest version of SAS University Edition, which includes everything needed to try out SASPy.

Using PROC FCMP to the Fullest: Getting Started and Doing More

Art Carpenter

The FCMP procedure is used to create user defined functions. Many users have yet to tackle this fairly new procedure, while others have only attempted to use only its simplest options. Like many tools within SAS®, the true value of this procedure is only appreciated after the user has started to learn and use it. The basics can quickly be mastered and this allows the user to move forward to explore some of the more interesting and powerful aspects of the FCMP procedure.

Starting with the basics of the FCMP procedure, this paper also discusses how to store, retrieve, and use user defined compiled functions. Included is the use of these functions with the macro language as well as with user defined formats. The use of PROC FCMP should not be limited to the advanced SAS user; even those fairly new to SAS should be able to appreciate the value of user defined functions.

Doing More with the SGPLOT Procedure

Josh Horstman

Once you’ve mastered the fundamentals of using the SGPLOT procedure to generate high-quality graphics, you’ll certainly want to delve in to the extensive array of customizations available. This workshop will move beyond the basic techniques covered in the introductory workshop. We’ll go through more complex examples such as combining multiple plots, modifying various plot attributes, customizing legends, and adding axis tables.

PARSING: Using SAS® When the Data Are Hiding in a Non-Standard Format

Andrew Kuligowski

Sequential files? Spreadsheets? Databases? There are numerous tutorials that instruct the SAS® user in techniques to extract data from standard sources. Sometimes, however, the desired data is hidden inside a non-standard source; information may be found within the flow of a text document, for example.

This presentation will address some techniques that can be used when not dealing with cleanly formatted data, through use of an example where data are found within a free-form text file. It will deal with identifying what can be considered useful data and what can be discarded, then tackle techniques to extract the data for further analysis, reporting, or whatever is the desired end result.