Richann Watson; Lynn Mullins

This paper compares the use of Hash objects in a data step, the standard data step and PROC SQL with different data sets to determine if one method is more efficient in certain situations.

Let SAS® Do Your DIRty Work

Richann Watson

The use of command interpreter (CMD shell) or UNIX commands can help to automate the moving or archiving of files.

Check Please: An Automated Approach to Log Checking

Richann Watson

In this paper, the author discusses her approach to checking logs using a macro that she developed.

When ANY Function Will Just NOT Do

Richann Watson; Karl Miller

Often times we need to determine if a particular variable contains a specific type of value or character.  This can be done using a variety of functions that the author refers to as the ‘ANY’ and ‘NOT’ functions.  These functions look for the specific character or the lack of a specific character within a value.

Let’s Get FREQy with our Statistics: Data-Driven Approach to Determining Appropriate Test Statistic

Richann Watson; Lynn Mullins

As programmers, we are often asked to program statistical analysis procedures to run against the data.  Sometimes, the statistical procedures to use need to be data dependent.  To run these procedures based on the results of previous procedures' output requires a little more preplanning and programming.  A macro that will dynamically determine which statistical procedure to run based on previous procedure output is presented.

Automated Validation of Complex Clinical Trials Made Easy

Richann Watson; Josh Horstman

In this paper, the authors discuss various ways to approach validation of clinical trials with some of the approaches being manual.  In addition, they discuss the pros and cons of these approaches.  These pros and cons lead to the development of a macro that can be used to parse the Compare procedure output.

Animate your Data!

Kriss Harris; Richann Watson

The authors demonstrate how you can use animation in SAS® 9.4 to report your safety data. You will also learn how to use the EXPAND procedure to ensure that your animations are smooth.

Great Time to Learn GTL

Kriss Harris; Richann Watson

It’s a Great Time to Learn GTL! Do you want to be more confident when producing GTL graphs? Do you want to know how to layer your graphs using the OVERLAY layout and build upon your graphs using multiple LAYOUT statement? This paper guides you through the GTL fundamentals!





Using a Picture Format to Create Visit Windows

Richann Watson

Often times people over look various functionalities of PROC FORMAT, in this paper I illustrate the use of the PICTURE format to build visit windows.

Automated or Manual Validation: Which One is for You?

Richann Watson and Patty Johnson

Validation is an essential part of the development process in clinical trial. It is common practice that derived data sets are validated using a more automated method. However, table and listing outputs typically use a manual approach. The manual method of checking the informational aspects of the output is a time consuming process and is subject to human error. This paper presents an automated approach for performing a 100% validation of the informational portion of summary table and listing outputs.

Generating Least Square Means, Standard Error, Observed Mean, Standard Deviation and Confidence Intervals for Treatment Differences using Proc Mixed

Great Time to Learn GTL: A Step-by-Step Approach to Creating the Impossible

Interactive Graphs

Richann Watson

Richann Watson, DataRich Consulting

Kriss Harris, SAS Specialists Limited; Richann Watson, DataRich Consulting

The DOMIXED macro allows for the calculation of least square means, standard error, observed mean, standard deviation and confidence intervals for treatment difference. The macro will also calculate p-values.  It produces data sets in one of two layouts depending on desired layout.

Output Delivery System (ODS) graphics, produced by SAS® procedures, are the backbone of the Graph Template Language (GTL). Procedures such as the Statistical Graphics (SG) procedures dynamically generate GTL templates based on the plot requests made through the procedure syntax. For this paper, these templates will be referenced as procedure-driven templates. GTL generates graphs using a template definition that provides extensive control over output formats and appearance. Would you like to learn how to build your own template and make customized graphs and how to create that one highly desired, unique graph that at first glance seems impossible? Then it’s a Great Time to Learn GTL! This paper guides you through the GTL fundamentals while walking you through creating a graph that at first glance appears too complex but is truly simple once you understand how to build your own template.

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!

‘V’ for … Variable Information Functions to the Rescue

Richann Watson; Karl Miller

There are times when we need to use the attributes of a variable within a data set.  With the use of the ‘V’ functions (e.g., VNAME, VVALUE, etc.), the various attributes can be obtained and used immediately within the data step.

Exploring HASH Tables vs. SORT/DATA Step vs. PROC SQL



Quick, Call the “FUZZ” : Using Fuzzy Logic

What's Your Favorite Color?

Controlling the Appearance of a Graph

Richann Watson, DataRich Consulting; Louise Hadden, Abt Associates Inc.

Richann Watson, DataRich Consulting

SAS® practitioners are frequently called up on to do a comparison of data between two different data sets and find that the values in synonymous fields do not line up exactly. A second quandary occurs when there is one data source to search for particular values, but those values are contained in character fields in which the values can be represented in myriad different ways. This paper discusses robust, if not warm and fuzzy, techniques for comparing data between, and selecting data in, SAS data sets in not so ideal conditions.

The appearance of a graph produced by the Graph Template Language (GTL) is controlled by Output Delivery System (ODS) style elements. These elements include fonts and line and marker properties as well as colors. A number of procedures, including the Statistical Graphics (SG) procedures, produce graphics using a specific ODS style template. This paper provides a very basic background of the different style templates and the elements associated with the style templates. However, sometimes the default style associated with a particular destination does not produce the desired appearance. Instead of using the default style, you can control which style is used by indicating the desired style on the ODS destination statement. However, sometimes not a single one of the 50-plus styles provided by SAS® achieves the desired look. Luckily, you can modify an ODS style template to meet your own needs. One such style modification is to control which colors are used in the graph. Different approaches to modifying a style template to specify colors used are discussed in depth in this paper.

Are you Ready? Preparing and Planning

to Make the Most of your Conference Experience

What Kind of WHICH Do You CHOOSE to be?

“Bored”-Room Buster Bingo - Create Bingo Cards Using

SAS® ODS Graphics

Richann Watson, DataRich Consulting; Louise Hadden, Abt Associates Inc.

Richann Watson, DataRich Consulting; Louise Hadden, Abt Associates Inc.

Richann Watson, DataRich Consulting; Louise Hadden, Abt Associates Inc.

Whether you are a first-time conference attendee or an experienced conference attendee, this paper can help you in getting the most out of your conference experience. As long-standing conference attendees and volunteers, we have found that there are some things that people just don’t think about when planning their conference attendance. In this paper we will discuss helpful tips such as making the appropriate travel arrangements, what to bring, networking and meeting up with friends and colleagues, and how to prepare for your role at the conference. We will also discuss maintaining a workplace presence with your paying job while at the conference.

A typical task for a SAS® practitioner is the creation of a new variable that is based on the value of another variable or string. This task is frequently accomplished by the use of IF-THEN-ELSE statements. However, manually typing a series of IF-THEN-ELSE statements can be time-consuming and tedious, as well as prone to typos or cut and paste errors. Serendipitously, SAS has provided us with an easier way to assign values to a new variable. The WHICH and CHOOSE functions provide a convenient and efficient method for data-driven variable creation.

Let’s admit it! We have all been on a conference call that just … well to be honest, it was just bad. Your misery could be caused by any number of reasons – or multiple reasons! The audio quality was bad, the conversation got sidetracked and focus of the meeting was no longer what it was intended, there could have been too much background noise, someone hasn’t muted their laptop and is breathing heavily – the list goes on ad nauseum. Regardless of why the conference call is less than satisfactory, you want it to end, but professional etiquette demands that you remain on the call. We have the answer – SAS®-generated Conference Call Bingo! Not only is Conference Call Bingo entertaining, but it also keeps you focused on the conversation and enables you to obtain the pertinent information the conference call may offer.


This paper and presentation introduce a method of using SAS to create custom Conference Call Bingo cards, moving through brainstorming and collecting entries for Bingo cards, random selection of items, and the production of bingo cards using SAS reporting techniques and the Graphic Template Language (GTL). (You are on your own for the chips and additional entries based on your own painful experiences)! The information presented is appropriate for all levels of SAS programming and all industries.

©2018 DataRich Consulting | Produced by Philip Gregory




CDISC Papers

SAS Papers