Analytics Leadership and Open Analytics

Paper Authors Title Key Takeaways
Paper 101 Brian Varney Getting Started with SAS Viya and the R SWAT Package Using the R SWAT package with SAS Viya gives a user the flexibility of using the R programming language on data sitting in a SAS Viya CAS library.

Using the R SWAT package will allow SAS and R developers to collaborate more easily using the same data sources.
Paper 103 Melvin Alexander Model Comparison of Machine Learning Techniques to detect signs of Penetrating Abdominal and Pelvic Injuries using Base JMP and R Integration Combining SAS and JMP with open source technologies like R expands and extends the data visualization and statistical analytics capabilities of analysts, statisticians, and data explorers.
Paper 122 Kirk Paul Lafler Exploring Professional Data Science / Analytics Skills Data is everywhere. And because data has found its way into virtually every aspect of our lives, the multidisciplinary field of data science / analytics is experiencing huge growth, soaring expectations, and interest from students, academics, industry, Government, and the world in general. As a multidisciplinary field, data science / analytics requires technical skills in mathematics; statistics; programming languages such as Python, R and SAS; SQL; data acquisition, cleaning, transformation, and visualization; AI; and machine learning. Non-technical skills include critical thinking; research; business knowledge; storytelling; and verbal and written communications.

In Merrimack College's article on “Data Science and Analytics Trends for 2019“, they project that “The Federal Government will experience a 19% growth rate in the field of computer and information research scientists by 2026.“

The following list of technical and non-technical skills highlights the common (or core) elements / skills deemed as essential building blocks for students seeking degrees and certifications from these institutions.

Technical Skills:
  • Programming including R, Python and SAS
  • SQL
  • Statistics - Descriptive and Inferential techniques
  • Mathematics
  • Ability to Work with Structured and Unstructured Data
  • Data Wrangling
  • Data Visualization
  • Knowledge of Machine Learning
  • AI
  • Deep Learning
Non-Technical Skills:
  • Critical Thinking
  • Intellectual Curiosity
  • Business Acumen
  • Verbal and Written Communication
  • Storytelling
  • Ability to Work in a Team (Collaboration)

Hands-on Workshops

Paper Authors Title Key Takeaways
Paper 135 David Horvath Handling complex data sources in Python and SAS using Jupyter Notebook in SAS University Edition VM Will cover consumption of complex data files using SAS and Python

Industry Solutions

Paper Authors Title Key Takeaways
Paper 104 Hengwei Liu Check the aCRF through Programming use regular expression to analyze texts
Paper 106 Peter Zsiga Using Proc Report to Produce Easy to Understand Student Performance and Progress Analyses for Educators SAS is for schools

SAS colors visualize data across variables

Proc Report is adaptable and malleable

Paper 108 Hengwei Liu Some Korn Shell Scripts for SAS Programmers use short Linux shell scripts to handle text files.
Paper 137 Chris Smith and Josh Horstman Upgrading Clinical Trial Reports from ODS LISTING to ODS TAGSETS.RTF The reader will learn how to use ODS TAGSETS.RTF to produce RTF files.

The reader will learn how to use style overrides (i.e. STYLE= and ~S=) in order to enhance or customize the RTF outputs.

The reader will overcome PROC REPORT options available for the ODS LISTING destination that are not available in ODS TAGSETS.RTF such as HEADLINE, HEADSKIP, SPACING=, WIDTH=, SPLIT=, and SKIP.
Paper 148 Jayanth Iyengar NHANES Dietary Supplement component: a parallel programming project The process for creating public use files for National Health Surveys

The pros and cons of parallel programming
Paper 153 Amarnath Vijayarangan, Sarah Anderson, Santhiya Poongavanam and Aravind Umapathy Analysis and Reporting of Reactogenicity Events in Vaccine Clinical Trials Reactogenicity Events in Vaccine Clinical Trials
Paper 156 Kelly Smith Equity Data: Using SAS® to Establish the Baseline Data should be thoroughly understood before selecting interventions and policy changes to improve educational equity.

SAS offers a variety of useful procedures for the analysis and visualization of equity data.

The choice of procedure depends on the question being asked, the type of variable being used, and the audience who will use the infromation.
Paper 159 Noga Meiry-Lewin, Aimee Wahle, Amarnath Vijayarangan and Abigail Matthews Learning from Experience Requires a Collaborative Team Effort: an Integrated-Software Solution for Automated and Reliable Distributed Reporting System. collaboration of multiple expertise

building on previous experience while learning from others

Know Your SAS: Advanced Techniques

Paper Authors Title Key Takeaways
Paper 109 Robert Matthews RUN; RUN; RUN; - Methods for Running Multiple Programs in a Series Methods for running multiple programs

SAS macro concepts
Paper 112 Peter Knapp Log Reviewing Made Easy Log Review Ease
Paper 113 Kannan Deivasigamani UFO Search Automate repetitive things

Use the power of macros and become a power user

Reduce key strokes while accomplishing more by converting even small tasks to macros that can be called by an auto-call library (maclib)
Paper 119 Kirk Paul Lafler An Introduction to SAS® DATA Step Hash Programming A hash object is a data structure that contains an array of items that are used to map identifying values, known as keys (e.g., employee IDs), to their associated values (e.g., employee names or employee addresses). As implemented, it is designed as a DATA step construct and is not available to any SAS PROCedures.

A hash object permits table lookup, match/merge, sort and transpose operations to be performed often faster than other available methods found and used in the SAS system.

Users with DATA step programming experience will find the hash object syntax relatively straight forward to learn and use. Available in all operating systems running SAS 9 or greater, the hash object is called using methods. The syntax for calling a method involves specifying the name of the user-assigned hash table, a dot (.), the desired method (e.g., operation) by name, and finally the specification for the method enclosed in parentheses.
Paper 134 David Horvath Wildcarding in Where Clauses SAS provides many ways of searching text fields
Paper 138 David Horvath Code Generating Code: An alternative to Macros Self-generated code as an alternative to macros
Paper 139 David Horvath Executing long-running processes under UNIX/Linux It is better to execute long running SAS programs under the command line!
Paper 144 Thomas Billings Joining SAS® and a Complex, Sparsely Populated Database for Machine Learning/Data Mining SQL and the DATA step are complementary and both are very useful tools when joining SAS with databases.
Paper 145 Thomas Billings User-Written Functions to Check for SAS® Macro Quoting Triggers The K-functions available in SAS are useful to internationalize the handling of string data.
Paper 146 Thomas Billings and James Walker Efficiently Apply a Change File to a Large File via DATA Step MODIFY and _IORC_ DATA step MODIFY allows programmers to update a vary large file with a change file, efficiently.
Paper 149 Alexander Feigin The efficient alternative to LAG function without LAG's pitfalls Simple way to combine values from as many as needed preceding records belonging only to the same BY-group without using LAG function
Paper 150 Jayanth Iyengar and Josh Horstman Look Up Not Down: Advanced Table Lookups in Base SAS The advanced table lookup methods available in BASE SAS

The advantages and disadvantages of varous table lookup methods
Paper 152 Jason Su A Game Plan for Beating the IF-THEN-ELSE Overhead in DATA Steps There are an array of efficient tools which may be great alternatives to the traditional IF-THEN construct, depending on the circumstances.

The game plan serves as one exemplary and straightforward guideline to assist fellow SAS programmers in landing an alternative tool with much reduced or no overhead.

Know Your SAS: Foundations

Paper Authors Title Key Takeaways
Paper 102 Brian Varney Data Step versus Everybody: Approaching Problems as a Beginning Coder There is not one consistent go to tool for every data processing task.

Knowing multiple tools such as the SAS Data Step, PROC SQL, and other SAS procedures will definitely make you a much more effective and efficient problem solver.
Paper 107 Bruce Gilsen Tales from the Help Desk: How the Problems Get Solved Minimizing the data required to solve problems makes debugging easier

Writing DATA step or macro variable values concisely make debugging easier

Some reasons a program might stop working even though the user did nothing
Paper 110 Aaron Brown Custom Errors, Warnings, and Notes in SAS®, Plus a Somewhat Practical Use of PROC EXPLODE You can add custom-made notes, warnings, or errors to the SAS log.

PROC EXPLODE can be used to print very large comments, to help a reader notice them.
Paper 116 Stephen Sloan Twenty Ways to Run Your SAS® Program Faster and Use Less Space Why it's important to have programs run faster and use less space

Where the different methods are most appropriate

How to shrink numeric and character variables
Paper 118 Stephen Sloan Running Parts of a SAS Program while Preserving the Entire Program Why we need to run part of a program but keep the entire program

How to run part of a program but keep the entire program

Which method is appropriate in different circumstances
Paper 168 Imelda Go Controlling the Order of Data in SAS Custom sort order

Planning and Data Architecture

Paper Authors Title Key Takeaways
Paper 123 Kirk Paul Lafler Exploring the MSGLEVEL= SAS® System Option and PROC SQL _METHOD Option SAS users can control how much information the SAS System writes to the SAS log by specifying the MSGLEVEL= SAS System option in an Options statement. The MSGLEVEL= option supports two possible values: N (which is the default) to print standard notes, warnings, and error messages; and I to print standard notes, warnings, error messages, plus additional information about sort, merge, and index processing.

The PROC SQL _METHOD option can be specified as an effective way to analyze a query process or for debugging purposes. Processing information from the _METHOD option is automatically displayed on the Log using a variety of codes.

When it comes to performing PROC SQL joins, users supply the names of the tables for joining along with the join conditions, and the PROC SQL optimizer determines which of the four available join algorithms to use for performing the join query operation.
Paper 129 Stephen Sloan Reducing the space requirements of SAS® data sets without sacrificing any variables or observations Understand the process of shrinking SAS variables, and thus observations

Knowing why some variables can be shrunk more than others

How to appraise the results of running the program to reduce the size of SAS data sets
Paper 142 Stephen Sloan Getting a Handle on All of Your SAS® 9.4 Usage How to look for SAS objects using the Unix or Windows operating system

How to categorize the results

Why we would want to search for SAS objects outside of SAS
Paper 164 Rajasekar Sundaram and Kiran Venna Data Security in SAS® using Encryption and Hashing data security using encryption and hashing
Paper 167 Allan Bowe and Krishna Acondy Building SAS® Powered Web Applications with the SASjs Framework Building complex web applications with SASjs reduces project risk and helps maintain delivery velocity

Building apps with SASjs means they can be easily ported to SAS Viya

The only SAS tool you need to build web apps is SAS Studio (or Enterprise Guide)

Reporting and Visualization

Paper Authors Title Key Takeaways
Paper 121 Kirk Paul Lafler Making Your SAS® Results More Meaningful with Color Make sure any background color being used in your results is consistent and avoids the use of gradients. Also, use background and foreground colors that contrast sufficiently with the visual being used.

Best practice graphical techniques emphasize essential visual elements in a graph or chart for maximum effectiveness. Here are a few things to consider:
  • Group similar elements together to differentiate them from other elements;
  • Use distinct colors to set elements apart
  • Use different shapes to distinguish points on a line graph
  • Varying 2-dimensional elements in a line graph offers an effective way to indicate differences, as well as how much difference exists
  • Length serves as an excellent way to communicate differences between elements
  • Size can show that differences exist but doesn't show the amount of difference between elements
  • Width is good for showing that differences exist but fails to show the actual difference between elements
  • Color saturation is useful for showing distinctions and differences between elements.
ODS Statistical Graphics and its many capabilities are available to SAS software users in the form three procedures: SGPLOT, SGSCATTER and SGPANEL.
Paper 136 David Horvath Lazy Programmers write Self-Modifying code OR Dealing with XML file Ordinals SAS has effective tools for processing XML files
Paper 140 Pravinvijay Varatharaj Transform a SAS dataset to an Excel file format on the Linux server using the Python script Integration python and SAS
Paper 141 John Taylor Custom SAS Studio Tasks for All Occasions Custom SAS Studio Tasks can be developed by anyone for almost any purpose.

There are a limited number of references on the topic of developing custom SAS Studio Tasks.

SAS can be used for much more than just industry problems.
Paper 143 Louise Hadden Visually Exploring Proximity Analyses Using SAS® PROC GEOCODE and SGMAP and Public Use Data Sets PROC GEOCODE, included in BASE SAS, is an incredible SAS(R) asset, allowing practitioners to pinpoint geographic locations at fine levels.

Public use data in the geographic and analytic areas can be valuable resources for the SAS programmer.

SAS ODS graphics and SAS/GRAPH procedures allow SAS programmers to produce data visualizations effectively and attractively.
Paper 154 Ross Bettinger Outlier Detection and Treatment Outliers in a set of data may contain important information about the process that generated the data and ought not to be simply discarded.

There are many techniques for identifying outliers and many techniques for properly including them in a model.

The SAS macro, %LOF_LoOP, may be used to detect and label outlying observations for additional analysis and modelling using the Local Outlier Factor and Local Outlier Probability algorithms.
Paper 155 Amarnath Vijayarangan Log the SAS Log Analyzer for Audit Better way of documenting of SAS Log for Audit
Paper 163 Ballari Sen Creating Data Listings Utilizing PROC Procedures Creation of Data Listings Utilizing SAS SQL Procedures

Statistics and Data Analysis

Paper Authors Title Key Takeaways
Paper 105 Deanna Schreiber-Gregory A Doctor's Dilemma: How Propensity Scores Can Help Control For Selection Bias in Medical Education Propensity scores are applicable in educational research

Propensity scores are simple to create and there are many uses for them

Paper 131 Stephen Sloan and Lindsey Puryear Advanced Project Management beyond Microsoft Project, Using PROC CPM, PROC GANTT, and Advanced Graphics The logic behind PROC CPM and PROC GANTT

How to bring project requirements into SAS

How to format the output
Paper 157 Yida Bao and Philippe Gaillard Application and comparison with several types of Ensemble Algorithms Ensemble algorithm
Paper 165 Martha Pohl SAS GRAPH Animation Examples used in Data Visualization of Analytical Procedures with Public Federal Data Displaying Cardinality of Sets using Venn Diagrams

Animation is a tool for data analysis

Visual displays enhance the quantification of data


Paper Authors Title Key Takeaways
Paper 111 Abbas Tavakoli, Jacob Kay and Navid Tavakoli Using GENMOD to Calculate Prevalence Ratio for Concussion and Suicidal behaviors among U.S. High School Students Examine the relationship of concussion with attempt to suicide


weighted and unweighted sample calculated
Paper 132 Kirk Paul Lafler A Visual Step-by-step Approach to Converting an RTF File to an Excel File A file's format determines what you can do with it and which programs can open it. Essentially a file' format is composed of its own language where the format is understood by a specific application and/or platform.

Rich Text Format (RTF) files were first developed by Microsoft in 1987. RTF lets users exchange text files between different word processors in different operating systems. Saving files in RTF ensures that documents can be opened regardless of the type of word processor being used.

The Excel (XLSX) extension is an open source XML-based filename format developed by Microsoft in 2005 for Office Excel 2007 SP2 and above. XLSX files can be opened and edited with Excel (version 2007 and above), Google Sheets, Zoho Docs, Kingsoft Spreadsheets, OpenOffice Calc, and other software.