WUSS 2023 Papers - Index
81 papers. Source: WUSS (Western Users of SAS Software) conference proceedings.
| # | Title× | Authors× | Abstract× | Keywords× | Extras | Pages |
|---|---|---|---|---|---|---|
| 1 | 10 Quick Tips for Getting Tipsy with SAS | Lisa A. Mendez, Richann J. Watson |
There are many useful tips that do not warrant a full paper but put some cool SAS code together and you get a cocktail of SAS code goodness. This paper will provide ten great coding techniques that will help enhance your SAS programs. We will show you how to 1) add quotes around each tokens in a text string, 2) create column headers based values using TRANSPOSE Procedure (PROC TRANSPOSE), 3) set missing values to zero without using a bunch of if-then-else statements, 4) using short-hand techniques for assigning lengths of consecutive variables and for initializing to missing, 5) calculating the difference between the visit's actual study day and the target study and accounting for no day zero (0); 6) use SQL Procedure (PROC SQL) to read variables from a data set into a macro variable, 7) use the XLSX engine to read data from multiple Microsoft EXCEL Worksheets, 8) test to see if a file exists before trying to open it, such as an Microsoft EXCEL file, 9) using the DIV function to divide |
macro variable, proc step, sas log, proc sql, proc transpose, excel, missing value, proc report, numeric variable, sample, cpu time, sas enterprise guide, do loop, if-then-else, libname statement, macro call, work library, macro definition | source | 16 |
| 2 | A Batch Processing Companion, how to write Windows *.bat and *.cmd files for my-program.sas | Ronald J. Fehd | regression analysis, batch processing | source | 9 | |
| 3 | A Beginner's Step-by-Step Guide to Digital Marketing Data Mining and Analysis Using SAS | Mahsa Tahmasebi Ghorabi, Leon Rod Davoody |
Digital marketing leverages search engine optimization (SEO), data analytics, and content management to capture and nurture customer leads. The most used digital channels involve search engines, social media, and email marketing. Each channel generates important customer data which can be analyzed to glean business insights and develop effective inbound and outbound marketing campaigns. This paper will present the "hard skills" in terms of the SAS tools and techniques as well as the "soft skills" in terms of the personal essential skills for the beginner digital marketers. It is important to develop a balanced combination of both types of skills such that aspiring digital marketers can get a head start for a successful career. | data mining, a/b testing, time series analysis | source | 7 |
| 4 | A Dash of SAS , a Pinch of R: Cooking up Dashboards Using Two Very Different Programming Languages | Joshua J. Cook | Dashboards are often utilized by businesses, schools, and hospitals as a key tool to organize, analyze, and visualize data that is subject to frequent updates and changes. In this way, effective dashboards enable leaders to make data-informed decisions regarding their organizations. However, there are many approaches to "cooking up" effective dashboards that utilize both proprietary and open-source software, including the SAS and R programming languages. Using base-SAS code as your primary ingredient, one might build an effective dashboard using a colorful combination of the Output Delivery System (ODS), PROC PRINT, PROC SGPLOT, and PROC SGPIE. In someone else's kitchen, they might include R packages as the main ingredients for their dashboard, such as quarto, readxl, tidyverse, and gt. |
proc step, proc sql, proc print, proc sgplot, create table, output delivery system, excel | source | 15 |
| 5 | A Deep Dive into Enhancing SAS/GRAPH and SG Procedural Output with Templates, Styles, Attributes, and Annotation | Louise S. Hadden | Enhancing output from SAS/GRAPH has been the subject of many a SAS paper over the years, including my own, some written with co-authors. The more recent graphic output from the SG procedures is often "camera-ready" without any user intervention, but occasionally there is a need for additional customization. SAS/GRAPH is a separate SAS product for which a specific license is required, while the SG procedures and the Graph Template Language are available to all BASE SAS users. This presentation will explore both new opportunities within BASE SAS for creating remarkable graphic output as well as creating visualizations with SAS/GRAPH. Techniques in SAS/GRAPH, SG procedures and GTL such as PROC TEMPLATE, PROC GREPLAY, PROC SGRENDER, and GTL, SAS -provided annotation macros and the concept of "ATTRS" in SG procedures will be explored, compared, and contrasted. As background, a discussion of the evolution of SG procedures and the rise of GTL will be provided. |
proc step, proc sgplot, sas base, proc greplay, sample, histogram, bubble plot, proc gmap, output delivery system | source | 17 |
| 6 | A SAS Macro for 30-Year Cardiovascular Risk Predication | Matt Zhou, Hui Zhou, Jaejin An |
insurance risk score, do loop | source | 11 | |
| 7 | A unique and innovative end-to-end demand planning and forecasting process using a collection of SAS products | Stephen B. Sloan, Kevin K. Gillette |
Forecasting demand can be a very tricky process. Questions arise about which statistical algorithms to use when forecasting based on past sales, how to incorporate business knowledge into the forecast, planning for unforeseen events, and planning for unique events that would not be predictable from sales history. As an example, COVID caused many forecasts to be wrong about quantities when purchasing switched from services to goods, from in-store sales to remote purchases, and from work in the office to remote work. Even when the total quantities of a product were forecasted incorrectly, the percentage distribution of the sales for some of the subcategories within the larger categories was often accurate, and vice versa. An example of this is the switch from eating and drinking in restaurants to take-out, where the total quantities of the items might have been the same, but the packaging changed (fewer kegs, more six-packs). | sas enterprise guide, proc step, sas data integration studio, excel, data mart, staging area, dataset | source | 13 |
| 8 | Advanced Project Management beyond Microsoft Project, Using PROC CPM, PROC GANTT, and Advanced Graphics | Stephen B. Sloan, Lindsey Puryear |
The Challenge: Instead of managing a single project, we had to craft a solution that would manage hundreds of higher- and lower-priority projects, taking place in different locations and different parts of a large organization, all competing for common pools of resources. Our Solution: Develop a Project Optimizer tool using the CPM procedure to schedule the projects and using the GANTT procedure to display the resulting schedule. The Project Optimizer harnesses the power of the delay analysis feature of PROC CPM and its coordination with PROC GANTT to resolve resource conflicts, improve throughput, clearly illustrate results and improvements, and more efficiently take advantage of available people and equipment. |
proc step, proc sql, excel | source | 10 |
| 9 | Adventures in Independent Consulting: Perspectives from Two Veteran Consultants Living the Dream | Joshua M. Horstman, Richann J. Watson |
While many statisticians and programmers are content in a traditional employment setting, others yearn for the freedom and flexibility that come with being an independent consultant. In this paper, two seasoned consultants share their experiences going independent. Topics include the advantages and disadvantages of independent consulting, getting started, finding work, operating your business, and what it takes to succeed. Whether you're thinking of declaring your own independence or just interested in hearing stories from the trenches, you're sure to gain a new perspective on this exciting adventure. | clinical trial, credit card | source | 7 |
| 10 | An Overview of the SASSY System | David J. Bosak | This presentation will provide an overview for a set of R language packages called the sassy system. The sassy system is designed to make R easier for SAS Programmers. The system includes tools to create a log, declare a LIBNAME, perform a datastep, define a format, generate a report, and more. The overall experience makes writing code in R more similar to writing code in SAS. If you are a SAS programmer who wants to be more comfortable and productive in R, then this presentation will be of interest to you. The presentation will be given by David J. Bosak, who is the author of the system. |
proc step, if-then-else, data step, proc freq, proc means, user-defined format, sas programmer, sample, data cleaning, libname statement | source | 16 |
| 11 | Another Glance at Good Programming Practice from the Perspective of FDA Reviewers | Hongbo Li | Statistical programs/codes are part of submission packages to regulatory agencies for new drug/biological product applications in the pharmaceutical industry. In the PharmaSUG 2023 conference at San Francisco, one of the FDA panel presentations did raise some critical issues about the submitted SAS programs based on FDA reviewer's perspective, for example, lack of sufficient comments, lack of necessary information in the program header, not all macros called in the program have been submitted, all analysis performed in one program, lack of usefulness. Therefore, it is essential that the statistical programmers in this industry follow the guidelines of Good Programming Practice (GPP). PhUSE GPP Steering Board is a voluntary industry group with representatives from a diverse array of health and life sciences organizations, who had developed a guidance on GPP in March 2014 which could be found on phUSE Wiki. | pharmaceutical industry, proc step | source | 6 |
| 12 | Application of Fuzzy Matching Techniques Using SAS Software | Kirk Paul Lafler, Stephen B. Sloan |
Data comes in all forms, shapes, sizes and complexities. Stored in files and datasets, SAS users across industries recognize that data can be, and often is, problematic and plagued with a variety of issues. Data files can be joined without problem when each file contains identifiers, or "keys", with unique values. However, many files do not have unique identifiers and need to be joined by character values, like names or E -mail addresses. These identifiers might be spelled differently, or use different abbreviation or capitalization protoco ls. | proc step, proc sql, character variable, proc sort, data cleaning, sas function, missing value, numeric variable, order by, proc format, proc contents, data transformation, proc print, character functions, proc transpose | source | 30 |
| 13 | Automating Reports Using Macros and Macro Variables | Ekaterina Roudneva | Report generation can involve manually updating code when you get new information. This paper will go over some techniques that can help you automate your reports and remove the need to manually change code when a dataset is updated or when working with different data. Topics include using PROC SQL to create macro variables and data driven programs. This will be applied to a real-world example that automates the creation of a data dictionary and a frequency report of all variables for specified datasets. In the example, macro variables in combination with %DO loops and macro arrays are used to create dynamic code that links variables with defined formats and outputs a report of all frequencies for every single variable. Using macros and %IF %THEN branching logic can further make the code more flexible and validate the input. This paper is intended for an audience that has basic knowledge of the SAS macro language. |
macro variable, proc step, proc sql, proc freq, excel, sashelp, data dictionary, macro put, do loop, proc contents, put statement, %if-%then-%else, macro parameter, variable list, data cleaning, macro loop, macro definition, select, macro function | source | 18 |
| 14 | Blinding Indexes - Generalized and Unified Framework - a SAS Macro | Eduard Poltavskiy, Rima Nandi, Jeehyoung Kim, Heejung Bang |
There is a SAS macro (Wu & Zhu, 2022) that can calculate James' and Bang's blinding indexes (BIs). However, its capabilities are somewhat limited to the most common, simplistic scenarios. This paper extends this macro to be more flexible and comprehensive to accommodate different data types and functions/options available in the assessment of the effectiveness of blinding in clinical trials. | clinical trial, proc step | source | 10 |
| 15 | Calculate Physical Length of String in RTF file with 'Times New Roman' by SAS | Yueming Wu, Steven Li |
While using PROC REPORT with ODS RTF for output table/listing generation, people often wish to know the 'Physical Length' of a string, instead of the number of characters in the string. The 'Physical Length' of a string is the length which is displayed on the RTF output file. The physical length of a string could be used to decide the column's minimum width without word wrapping up. This paper created a custom SAS function through PROC FCMP to calculate the physical length of either 'Times', or 'Times New Roman' font, and a concept of 'characteristic width' of character is introduced. |
proc report, proc step | source | 14 |
| 16 | Creating and Customizing High-Impact Excel Workbooks from SAS with ODS EXCEL | Joshua M. Horstman | Love it or hate it, Microsoft EXCEL is used extensively throughout the business world. As a SAS user, you can enhance the impact of your work by using the ODS EXCEL destination to create high -quality, customized output in EXCEL format directly from SAS. This paper walks through a series of examples demonstrating the flexibility and power of this approach. In addition to complete control over visual attributes such as fonts, colors, and borders, the ODS EXCEL destination allows the SAS user to take advantage of EXCEL features such as multiple tabs, frozen or hidden rows and columns, and even EXCEL formulas to deliver the high-impact results you and your customers want! |
excel, by group processing, proc step, xls, output delivery system, proc report, ods excel, proc template, macro variable, macro loop, do loop, sas output, macro definition, proc print | source | 16 |
| 17 | Creating Dated Archive Folders Automatically with SAS | Derek P. Morgan | When creating patient profiles, it can be useful for clinical scientists to compare current data with previous data in real time without having to request those data from an Information Technology (IT) source. This is a method for using SAS to perform the archiving via a daily scheduled job. The primary advantage of SAS over an operating script is its date handling ability, removing many difficult calculations in favor of intervals and functions. This paper details an application that creates dated archive folders and copies SAS data sets into those dated archives, with automated aging and deletion of old data and folders. The application allows clinical scientists to customize their archive frequency (within certain limits .) It also keeps storage requirements to a minimum as defined by IT. This replaced a manual process that required study programmers to create the archives, eliminating the possibility of missed or incorrectly dated archives. | macro variable, proc freq, proc step, sysdate9, macro loop, %if-%then-%else, proc sql, date variable, macro definition, excel, proc copy, dataset | source | 19 |
| 18 | D-I-D the policy have an impact? Difference-in-difference methods applied to survey data in SAS | Melanie Dove | PROC SURVEYLOGISTIC was used to conduct a difference-in-difference (DID) analysis to compare how youth e-cigarette use changed pre-policy to post-policy and between students exposed to a flavored tobacco sales restriction relative to unexposed students. To obtain the DID odds ratio, an interaction term between the year and policy group was included in the model. This paper will explore the options needed to perform this type of logistic regression modelling. |
odds ratio, interaction effect, regression analysis, confidence interval, proc step, proc surveylogistic | source | 7 |
| 19 | Dashboard Development: From Prepping to Visualizing Data | Humberto Cisneros, Richard Rivera |
Enhance your career and knowledge in data dashboards development. Technological innovations, such as data dashboards, help organizations track performance and key performance indicators (KPIs) as well as have utility for policy and decision making. SAS is a powerful analytical tool to prepare data for any data visualization software. We will discuss stages of dashboard development, such as how to prepare data in SAS 9.5 Windows, how to frame data to enhance visualizations, and what to consider in creating efficient, practical and accessible data dashboards. We will illustrate concepts via two dashboards: (a) Court Case Activity: filing, disposition & sentencing and (b) ) Court Personnel: characteristics with incorporation of two external data sources: Census and State Bar demographics. https://www.azcourts.gov/statistics/Interactive-Data-Dashboards Data dashboard development will improve and expand your job performance and increase job opportunities. | proc step, proc export, excel, proc contents, sample, proc tabulate | source | 19 |
| 20 | Data Access Made Easy Using SAS Studio | Kirk Paul Lafler, Shaonan Wang, Nuoer Lu, Zheyuan (Walter) Yu, Daniel Qian, Swallow Xiaozhe Yan |
SAS OnDemand for Academics (ODA) gives students, faculty, and SAS learners free access to SAS software and the SAS Studio user interface using a web browser. SAS Studio provides users with a comprehensive and customizable integrated development environment (IDE) for all SAS users. A number of techniques will be introduced to showcase SAS Studio's ability to access a variety of data files; the application of point-and-click techniques using the Navigation Pane's Tasks and Utilities; the importation of external delimited text (or tab-delimited), comma-separated values (CSV), and EXCEL spreadsheet data files by accessing Import Data under Utilities; read JSON data files; and view the results and SAS data sets that are produced. We also provide key takeaways to assist users learn through the application of tips, techniques, and effective examples. |
dataset, sas studio, proc step, sas library, excel, proc contents, delimited file, bar chart, work library, histogram, proc import, csv | source | 26 |
| 21 | Demystifying Intervals | Derek P. Morgan | Intervals have been a feature of base SAS for a long time, allowing SAS users to work with commonly (and not-so-commonly) defined periods of time such as years, months, and quarters. With the release of SAS 9, there are more options and capabilities for intervals and their functions. This paper w ill first discuss the basics of intervals in detail, and then we will discuss several of the enhancements to the interval feature, such as the ability to select how the INTCK() function defines interval boundaries and the ability to create your own custom intervals beyond multipliers and shift operators. | sample, datetime20., sas 9 | source | 17 |
| 22 | Demystifying the define.xml: Overcoming the challenges of CRT Package. | Yoganand Budumuru | New regulatory guidelines for electronic submissions have significantly changed the statistical programming life and sometimes it is very tedious and inefficient particularly when we are creating Case Report Tabulation (CRT) package. Regulatory submissions are the most crucial part in clinical trials data analysis and accurate CRT package is needed during submissions for accelerating research investments to help bringing the advantage of new drugs or treatments to patients. Submitting poor quality CRT package would risk the outcome of the trial and hamper the years of research and development including cost escalation as Sponsors are investing huge efforts and billions of dollars in new technologies and solutions to optimize the processes to improve the quality of electronic submissions. Creating Case Report Tabulation (CRT) can come with several challenges. Ensuring consistency and harmonization across different data sources is crucial for accurate CRTs. | clinical trial, regulatory submission, adam dataset, cdisc | source | 10 |
| 23 | Developing and running an in-house SAS Users Group | Stephen B. Sloan | Starting an in-house SAS Users Group can pose a daunting challenge in a large worldwide organization. However, once formed, the SAS Users Group can also provide great value to the enterprise. SAS users (and those interested in becoming SAS users) are often scattered and unaware of the reservoirs of talent and innovation within their own organization. Sometimes they are Subject Matter Experts (SMEs); other times they are new to SAS but provide the only available expertise for a specific project in a specific location. In addition, there is a steady stream of new products and upgrades coming from SAS Institute and the users may be unaware of them or not have the time to explore and implement them, even when the products and upgrades have been thoroughly vetted and are already in use in other parts of the organization. | source | 5 | |
| 24 | Effective Presentations: More than Just PowerPoint | Derek P. Morgan | Ever dreaded giving a presentation? Have you ever wondered why you get so many blank looks during a presentation? Have you ever looked at someone else's PowerPoint slides and wished you could communicate as effectively? Have you ever run out of time before you get halfway through a presentation? Then this is the paper for you. Topics covered will include: how to start; organizing your presentation; developing your presentation; tips for making a bigger impact with PowerPoint; and speaking. | order by, job security | source | 13 |
| 25 | Five Reasons To Swipe Right on PROC FCMP, the SAS Function Compiler for Building Modular, Maintainable, Readable, Reusable, Flexible, Configurable User-Defined Functions and Subroutines | Troy Martin Hughes | The FCMP procedure (aka, the SAS function compiler) empowers SAS practitioners to build our own user-defined functions and subroutines-callable software modules that containerize discrete functionality, and which effectively extend the Base SAS programming language. This introduction explores five high-level problem sets that user-defined functions can solve. Learn how to hide a hash object (and its complexity) inside a function, how to manipulate SAS arrays, how to design a format (or informat) that calls a function, how to run a DATA STEP (or SAS procedure) inside of a DATA STEP (aka, DPDD), and how to avoid unnecessary usage of the SAS macro language. Interwoven throughout the discussion are the specific software quality characteristics-such as modularity, maintainability, readability, reusability, and configurability-that are achieved through the design and implementation of FCMP user-defined functions. For additional information, context, and examples, please consult that author's 2024 SAS Press book: PROC FCMP User-Defined Functions: An Introduction to the SAS Function Compiler. (Hughes, 2024) |
proc fcmp, sas function, data step, sas programming | source | 11 |
| 26 | From Data Access to Exploratory Data Analysis My Journey into the World of Python | Leon Rod Davoody | Kids who learn to code with Python can improve their critical and logical thinking and problem- solving skills. They can better understand everything by breaking complex tasks into smaller steps. Also, by building something from scratch, they can exercise their creativity and see firsthand the result of their efforts. In this paper I will share with you my journey through the world of Python and the basic statistics using Python. | dataset, excel | source | 7 |
| 27 | From Interactive Mapmaking to Beautiful Geospatial Visualizations: Harnessing the Power of Python and Google Earth Engine for Extracting, Analyzing, and Visualizing High Resolution Spatiotemporal Data | Ryan Paul Lafler, Anna T. K. Wade |
Google Earth Engine is a powerful cloud-based storage platform for accessing publicly available geospatial data from third party sources, including satellite imagery, geophysical, socioeconomic, climatological, census, and meteorological data measured over time for academic -use, personal -use, research, and business applications. Through a combination of beautiful visualizations and easy -to-implement Python code, users will be given the tools to conduct their own analysis with Google Earth Engine. Using the intuitive Python API, along with a suite of visualization packages and map -making libraries available for Python, this paper showcases methods for accessing, querying, extracting, and visualizing Earth Engine's spatiotemporal data to develop interactive ma ps. Optimized techniques permitting intensive spatiotemporal analysis on large, complex datasets are introduced through server -side operations in Google Earth Engine. | data visualization, data science | source | 23 |
| 28 | Generation of AE (Adverse Events) summary tables by worst CTC Grade utilizing SAS | Ballari Sen | Adverse event (AE) analysis is an essential piece in the safety assessment, and AEs are collected in almost every trial and clinical study report [1]. Hence, it is essential that we are clear and very careful while creating these tables and displaying correct counts. AE summary tables by worst CTCAE (Common Terminology Criteria for Adverse Events) grades are tabulated and programmed using MedDRA System Organ Class (SOC) and Preferred Term (PT), and each subject is counted only once within SOC and within PT. Sorting is by descending frequency order of SOC and PT within a treatment arm of interest.[1]. AE tables with additional CTCAE sub-categories (e.g., Grades 3-4, Grade 5), percentage cuts (e.g., >= 5% frequency), and long MedDRA dictionary text (i.e., up to 40 characters) creates additional programming complexity [2]. This paper presents a practical approach for generating different types of AE toxicity grade tables using the SAS software approach. | adverse events, system organ class, ctcae grade, adverse event summary, create table, group by, proc step, proc sql, order by, safety population, proc freq, proc report, clinical trial | source | 14 |
| 29 | Getting a Handle on All of Your SAS 9.4 Usage | Stephen B. Sloan | SAS is popular, versatile, and easy to use, so it proliferates rapidly through an organization. It can handle systems integration, data movement, and advanced statistics and AI, has links to a large amount of file types (Oracle, EXCEL, text, and others), and has functionality for almost every need. In addition to SAS Base, there are a large number of specialized SAS products, some of the most popular of which are SAS STAT, SAS OR, SAS Graph, SAS Enterprise Miner, and SAS Forecast Server. SAS EG allows for quick creation of useful artifacts and facilitates saving the generated code for later use as part or all of another program. As a result, sometimes it is difficult to track all the SAS programs and artifacts being used across an organization, economies of scale can be overlooked, and repetition and "reinventing the wheel" sometimes take place. Programs and macros developed in one area can be useful in other areas and they can be improved by this internal crowd-sourcing. |
proc step, data mining, dataset, macro call, sas enterprise guide, macro definition | source | 6 |
| 30 | Getting Started with the SGPLOT Procedure | Joshua M. Horstman | Do you want to create highly-customizable, publication-ready graphics in just minutes using SAS? This workshop introduces the SGPLOT procedure, which is part of ODS Statistical Graphics, included in Base SAS. Starting with the basic building blocks, you can construct basic plots and charts in no time. We work through several plot types, and you learn some simple ways to customize each one. |
proc sgplot, bar chart, vertical bar chart, scatter plot, nominal variable, line chart, box plot, response variable, histogram, proc step, bubble plot, heatmap, series plot, sas base, density plot, group by, regression analysis | source | 18 |
| 31 | Going Command(o): Power(Shell)ing Through Your Workload | Richann J. Watson, Louise S. Hadden |
Simplifying and streamlining workflows is a common goal of most programmers. The most powerful and efficient solutions may require practitioners to step outside of normal operating procedures and outside of their comfort zone. Programmers need to be open to finding new (or old) techniques to achieve efficiency and elegance in their code: SAS by itself may not provide the best solutions for such challenges as ensuring that batch submits preserve appropriate log and lst files; documenting and archiving projects and folders; and unzipping files programmatically. In order to adhere to such goals as efficiency and portability, there may be times when it is necessary to utilize other resources, especially if colleagues may need to perform these tasks without the use of SAS software. These and other data management tasks may be performed via the use of tools such as command-line interpreters and Windows PowerShell (if available to users), used externally and within SAS software sessions. | txt, excel, sample, if-then-else, dataset | source | 45 |
| 32 | Great Time to Learn GTL | Richann J. Watson, Kriss Harris |
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 statements? This paper guides you through the GTL fundamentals! | bar chart, macro variable, proc template, proc step | source | 12 |
| 33 | How Do We Git There? Best Practices for using Git with SAS | Joe Matise | Git is a powerful tool for managing version control that is commonly used in professional programming environments as well as by researchers, academics, and students across the globe. It can be, however, somewhat overwhelming for new programmers, particularly those who do not have exposure to it through other languages. In this presentation, we will give a brief introduction to Git, tour a few tools for helping to manage Git workflows, and explain best practices for using Git in a SAS programming environment. This presentation is aimed at novice Git users, regardless of SAS programming level; i t requires no previous experience with SAS or Git. | sas studio, sas programming, data step, excel, imputation | source | 8 |
| 34 | How to Assemble Macros from Metadata and Execute them | Karen Walker | In the past, a Statistical Analysis Plan was written then parsed. The parsing algorithm is triggered by bookmarks for the Title, Column Headers, Body, Footnote, Programmers Notes, and Biostatistician Notes. The parsed data was used to make a program index text file to be used as input parameters to execute the plan. As the program index text file grew larger, so did the need to save the index in a separate document. This document called the shared Shell is the focus for our paper. The file type of the Shell document depends on the operating system and platform. The programming can be "one off" and very specific. The SAP file needs to be converted to Rich Text Format before it's parsed. Unicode translation constraints were prone to errors, and program testing required much iteration to resolve the issues. Figure 1. Flow Diagram ICH E9 Statistical Principles for Clinical Trials | excel, statistical programmer, macro definition, dataset, libname statement, data science | source | 12 |
| 35 | How To Easily Ingest (Lots Of) External Data Into The SAS Ecosystem By Only Setting One Parameter - Welcome to Data Ingestion Auto Pilot (DIAP) | Stephan Weigandt | This paper is about the "Data Ingestion Auto Pilot - DIAP" custom step which is freely available in the public GitHub SAS Studio Custom Step repository for download and runs on Viya 4. One of the highlights is that DIAP automatically determines the separators (comma, semicolon, pipe, tab, exclamation mark, hash, blank) when ingesting a text file and can deal with XLSX, JMP, SHP, JSON, XML, CSV, TXT files. This list is constantly expanding. DIAP can handle most exceptions which will be outlined more in detail during this paper. It has been interesting for me to observe (first within myself, but then also with others), that the task of ingesting external files often comes with a form of frustration and can form a stumbling block in the progress of a project. Even though there are many out-of-the-box capabilities for importing external files (making it supposedly easy), in many cases there is more to be done. It quickly becomes cumbersome when there are many different files to be read in. |
lookup, txt, sas studio, excel | source | 13 |
| 36 | How to Understand Therapeutic Area User Guide for Reactogenicity Events in Vaccine Studies | Yanwei Han | Vaccine clinical trial safety data submission should include reactogenicity events, unsolicited AEs, medically attended adverse events (MAAEs), and death. Reactogenicity is a set of pre-defined adverse events collected within a prespecified time frame, typically collected on either diary CARDS or reactogenicity case report forms. Reactogenicity events can be classified as either administration site events (e.g., redness, itching, and pain) or systemic events (e.g., fever, fatigue, vomiting, and headache). Reactogenicity data are required to be represented primarily in the SDTM Clinical Events (CE) with Findings About Clinical Events (FACE) domain and Vital Sign (VS) domain to provide the specific information for each event. In this paper, I will discuss on how to understand Therapeutic Area Data Standards User Guide for Vaccines (TAUG-VAX) three model strategies "Flat Model", "Nested Model", and "Highly Nested Model" when mapping diary CARDS into FACE, VS, and CE domains. |
adverse events, clinical trial, cdisc | source | 9 |
| 37 | Introduction to Machine Learning - Descriptions and Best Practices | Jim Box | Artificial Intelligence and Machine Learning (AI & ML) are THE hot topics these days. In this talk, we'll define ML and go over the many types of models and explain how they work and what they are used for. We'll also cover the best practices around using ML models, including how to identify the best model. Finally, we will explore some of the concerns about implementing ML models - specifically covering how to analyze the model process for human biases that can have dramatic impacts on society. | machine learning, neural network, proc hpsplit, logistic regression, regression analysis, confusion matrix, training set, logistic distribution, proc princomp, response variable, supervised learning, sample, artificial intelligence, type ii error, type i error, missing value, association rules, nominal variable, roc curve, proc hpforest, outlier | source | 13 |
| 38 | Let's Get FREQy with our Statistics: Data-Driven Approach to Determining Appropriate Test Statistic | Richann J. Watson, Lynn Mullins |
As programmers, we are often asked to program statistical analysis procedures to run against the data. Sometimes the specifications we are given by the statisticians outline which statistical procedures to run. But other times, 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. We present a macro that dynamically determines which statistical procedure to run based on previous procedure output. The user can specify parameters (for example, fshchi, plttwo, catrnd, bimain, and bicomp), and the macro returns counts, percents, and the appropriate p-value for Chi-Square versus Fisher Exact, and the p-value for Trend and Binomial CI, if applicable. | macro parameter, proc freq, binomial distribution, proc step, sample, sas output, class variable | source | 14 |
| 39 | Leveraging Logistic Regression and Bootstrap Sampling to Assess a Decision Threshold in Classification Predictive Analytics | Colleen E. McGahan | This presentation will focus on a healthcare example to illustrate the practical application of logistic regression in SAS in combination with bootstrap validation and the utilization of ROC curve data to obtain sensitivity and specificity which are used to assess a decision threshold as part of the prediction capability of the model. Logistic regression is a statistical technique commonly used for classification and predictive analytics. It enables us to estimate the probability of an event occurring based on various input variables and with the use of a decision threshold can be used as a classification tool. Its utility extends across many application areas, including natural language processing, manufacturing, wildlife habitat, finance, healthcare, and marketing. | logistic regression, logistic distribution, bootstrap, data cleaning, sample, regression analysis, roc curve, predictor variable, proc step, proc logistic, key performance indicator, out=, response variable, proc reg, interval variable, model validation, feature selection, by group processing, odds ratio, likelihood function, proc means, training set | source | 15 |
| 40 | Leveraging Teradata ClearScape Analytics to Improve ROI | Gregory Goralski, Paul Segal |
Presentation | proc sql, proc step, machine learning, feature engineering, proc transpose, model deployment, model training | source | 40 |
| 41 | List Processing Macro Call-Macro | Ronald J. Fehd | macro call, macro variable, proc freq, macro quoting function, macro function, proc step, macro definition, %if-%then-%else | source | 18 | |
| 42 | List Processing using SQL Select Into to Replace Call Symputx Creating Indexed Arrays of Macro Variables | Ronald J. Fehd | proc sql, macro variable, call symputx, proc step, character functions, macro put, out=, proc freq, proc sort, macro definition | source | 13 | |
| 43 | Make You Holla' Tikka Masala: Creating User-Defined Informats Using the PROC FORMAT OTHER Option To Call User-Defined FCMP Functions That Facilitate Data Ingestion Data Quality | Troy Martin Hughes | You can't just let any old thing inside your tikka masala-you need to carefully curate the ingredients of this savory, salty, sometimes spicy delicacy! Thus, when reviewing a data set that contains potential tikka masala ingredients, an initial data qualit y evaluation should differentiate approved from unapproved ingredients. Cumin, yes please; chicken, the more meat the merrier; coriander, of course; turmeric, naturally; yeast, are you out of your naan -loving mind?! Too often, SAS practitioners first inge st a data set in one DATA STEP, and rely on subsequent DATA STEP s to clean, standardize, and format those data. This text demonstrates how user -defined informats can be designed to ingest, validate, clean, and standardize data in a single DATA STEP. |
hash table, proc format, missing value, lookup, input statement, data cleaning, raw data, txt, data ingestion, proc fcmp | source | 10 |
| 44 | Mining For SAS Gold? | Thomas Mannigel | SAS applications can be a gold mine for SAS developers, their managers, and their customers. The author Tom Mannigel knows this because he has spent over four decades working as a programmer building success SAS applications some earning millions of dollars. In this paper he describes how to find those high value SAS applications. | source | 18 | |
| 45 | Navigating SAS and CDISC Certification with Apprenticeship | Sarvar Khamidov | EDA is developing an apprenticeship program to address a shortage of SAS and Study Data Tabulation Model (SDTM) specialists. The program focuses on achieving SAS and Clinical Data Interchange Standards Consortium (CDISC) certification in a condensed timeframe of 12- to 24-weeks through immersive learning. The primary aim is to equip participants with the essential knowledge and skills for success as a clinical trials programmer. In this paper, I discuss the effectiveness of this accelerated approach, which is characterized by intensive training sessions, hands-on exercises, group projects, and mentorship, which has spanned more than three months thus far. I share the challenges and achievements during my journey as I evaluate the program's structure. This case study aims to provide guidance for the development of future clinical talent programs to enhance the work force and the industry. | clinical trial, clinical data, independent qc, adam dataset, clinical research, sas base, mock shell, data science, cdisc | source | 7 |
| 46 | Open-Source Essentials HOW - R and RStudio | Wendy Christensen | In this Open-Source Essentials Hands-On Workshop, attendees will learn the basics of using the R/RStudio environment to create and import data sets, manipulate data, combine data sets, and produce summary statistics. Previous experience with these topics in SAS or other software is useful but not required, and no previous experience with R or RStudio is assumed - all levels of experience are welcome. Attendees of this interactive workshop will access workshop material and complete hands-on exercises in RStudio through Posit Cloud (free account required). | proc freq, merge statement, proc means, nominal variable, interval variable, key, box plot, character variable, histogram | source | 17 |
| 47 | Panel Discussion: Benefits, Challenges, and Opportunities with Open Source Software (OSS) Integration | Kirk Paul Lafler, Ryan Paul Lafler, Joshua J. Cook, Anna T. K. Wade, Stephen B. Sloan |
The open-source world is alive, well and growing in popularity. This paper highlights the many benefits found with open source software (OSS) including its flexibility, agility, talent attraction, and the collaborative power of community; the trends show that open-source is ubiquitous penetrating many critical technologies we depend on, where more technology companies recognize the importance of the open-source community leading to more initiatives and sponsorships that support open-source creators; the challenges of open source including compatibility vulnerability issues, security limitations, intellectual property issues, warranty issues, and inconsistent developer practices; and the opportunities coming out of the open source community including cloud architecture, open standards, and the collaborative nature of community. | source | 5 | |
| 48 | Picking Scabs and Digging Scarabs: Refactoring User-Defined Decision Table Interpretation Using the SAS Hash Object To Maximize Efficiency and Minimize Metaprogramming | Troy Martin Hughes, Louise S. Hadden |
Decision tables allow users to express business rules and other decision rules within tables rather than coded statically as conditional logic statements. In the first author's 2019 book, SAS Data -Driven Development, h e describes how decision tables embody the data independence that data -driven programming requires, and demonstrates a reusable solution that enables decision tables to be interpreted and operationalized through the SAS macro language. In their 2019 white paper Should I wear pants?, the authors demonstrate the configurability and reusability of this solution by utilizing the same data structure and underlying code to interpret unrelated business rules that describe unrelated domain data -pants wearing and vacationing in the Portuguese expanse. | macro facility, hash table, data validation rules, macro definition, if-then-else, response variable, proc sql, dataset, proc fcmp, proc import, macro variable, lookup | source | 15 |
| 49 | Processing Large Volumes of Communicable Disease Data: SAS Techniques from the COVID-19 Experience in San Diego County | Whitney Webber, Nathaly Moran, Jacob Ritz, Fatema Sakha, Jacquelyn Ho, Jennifer Nelson |
San Diego County is one of very few counties in California that maintains its own electronic communicable disease reporting and surveillance system. Epidemiologists routinely extract and analyze data from the system to identify and report on the status of diseases in the county. The large influx of COVID-19 lab reports during the pandemic challenged the system and surveillance operations and the ability of epidemiologists to provide daily counts of COVID-19 cases, hospitalizations, and deaths in a timely, efficient manner. This paper will examine how the COVID-19 surveillance epidemiologists in San Diego County, primarily new users of SAS, reimagined how to manage and analyze COVID-19 data with Base SAS to meet the information needs of leaders (for priority-setting and policy decisions) and the public. | proc step, proc append, proc import, dataset, quality assurance, keep statement, cpu time, excel | source | 10 |
| 50 | Q&A with the Macro Maven: Do we need Macros? An Essay on the Theory of Application Development | Ronald J. Fehd | symbol table, macro facility, macro variable, proc sql, macro definition, proc step | source | 11 | |
| 51 | Quality Control - Defining an Acceptable Quality Standard without Achieving Perfection | Bill Coar | In statistical programming, we spend vast amounts of time trying to have a zero- error rate. But time and time again we see that errors still occur even with the gold standard of independent programming. Risk based approaches to quality control have been proposed to emphasize focusing on what matters most. It is human to make mistakes even though there is an inherent drive to achieve perfection. We often spend time trying to be perfect even with the understanding that some issues may be minor and/or inconsequential. Mistakes will continue to happen, but that does not necessarily imply poor quality. In Juran's Quality Handbook, quality is defined as "fitness for purpose" [1]. The author suggests that to be fit for purpose, products or services must meet two criteria: (1) the product/service must have the right features to satisfy their needs, and (2) they must be free from failure. | quality control, clinical trial, change from baseline, data review, independent qc, laboratory abnormality, likelihood function | source | 9 |
| 52 | Reducing the Space Requirements of SAS Data Sets without Sacrificing any Variables or Observations | Stephen B. Sloan | The efficient use of space can be very important when working with large SAS data sets, many of which have millions of observations and hundreds of variables. We often need to fit the data sets into a fixed amount of space. Many SAS data sets are created by importing EXCEL or Oracle data sets or delimited text files and the default length of the variables in the SAS data sets can be much larger than necessary. When the data sets don't fit into the available space, we sometimes need to make choices about which variables and observations to keep, which files to zip, and which data sets to delete and recreate later. There are things we can do to make the SAS data sets more compact and use our space more efficiently. These things can be done in a way that allows us to keep all the desired data sets without sacrificing any variables or observations. SAS has compression algorithms that can shrink the space of the entire data set. |
character variable, numeric variable, dataset, proc means, proc step, macro loop, %if-%then-%else | source | 7 |
| 53 | Regression Analysis Made Easy Using SAS Studio | Kirk Paul Lafler, Zheyuan (Walter) Yu, Nuoer Lu, Nicklas (Rebel) Yee, Yanzhang Gavin Chen, Kai Kang |
SAS OnDemand for Academics (ODA) provides students, faculty, and SAS learners with free access to SAS software and the SAS Studio user interface using a web browser. SAS Studio provides a comprehensive and customizable integrated development environment (IDE) for all SAS users. To showcase SAS Studio's many features, numerous techniques will be introduced to access, clean, transform, analyze, and visualize data using the point-and-click features found in SAS Studio's Navigation Pane's Tasks and Utilities. Plus, we'll demonstrate the generated SAS code that is automatically produced from the point-and-click techniques. To obtain a high-level understanding of the datasets being used, we'll demonstrate tasks associated with exploratory data analysis (EDA) to identify missing values, explore outliers, and evaluate trends in the data. | regression analysis, proc reg, predictor variable, sas studio, dataset, correlation, logistic regression, response variable, multiple regression, proc step, simple linear regression, logistic distribution, odds ratio, sas library, confidence interval, data transformation, interval variable, scatter plot, proc freq, outlier, missing value, proc sql, proc means, excel | source | 43 |
| 54 | Running Parts of a SAS Program while Preserving the Entire Program | Stephen B. Sloan | The Challenge: We have long SAS programs that accomplish a number of different objectives. We often only want to run parts of the programs while preserving the entire programs for documentation or future use. Some of the reasons for selectively running parts of a program are: Part of it has run already and the program timed out or encountered an unexpected error. It takes a long time to run so we don't want to re-run the parts that ran successfully. We don't want to recreate data sets that were already created. This can take a considerable amount of time and resources and can also occupy additional space while the data sets are being created. We only need some of the results from the program currently, but we want to preserve the entire program. We want to test new scenarios that only require subsets of the program. | proc step, run, macro variable, sas enterprise guide | source | 5 |
| 55 | SAS Code Hidden in Plain Sight | Bartosz Jabłoński | Sometimes there is a need to share a SAS○Rmacro in a way that the execution of the macro is possible, but at the same time the source code is not "readable" (e.g., the code is a proprietary solution). In this article, a programming-based solution utilizing encrypted user-written functions (FCMP) and SAS data sets, which gives requested effect, will be explained. Furthermore, the solution (in contrary to operating-system-dependent SAS catalogs) allows for code exchange between different operating systems! As a cherry on top, the GSM (Generate Secure Macros) package, which allows users to create secured macros stored in SAS PROC FCMP functions and share them between different operating systems without showing their code, will be presented. |
cpu time, macro put, macro definition, proc step, proc fcmp, macro variable, data step, proc sql, sas packages | source code |
28 |
| 56 | SAS Log Parsing Made Easy with Python | Erin O'Dea | The intention of this paper is to provide an educational experience for SAS Users who are interested in learning more about using Python in their work. Many SAS users will regularly run the exact same program daily, weekly, or monthly - sometimes they will run 50 or 100 SAS programs on a regular basis. Each of these programs might output a log, and many of those logs may have a n error or warning that the user expects to see. While best practice in coding is to completely remove these warnings or errors, there are many situations where it would require a significant amount of re-writing to remove them. SAS users may have inherited this code or may be under time constraints in their work. Python has the ability to read log outputs, and with some clever engineering, can compare those outputs to previous runs and output a list of new warnings or errors. This cuts down substantially on the time it takes to read and interpret SAS log outputs. | txt, sas log, proc printto, proc step | source | 7 |
| 57 | SAS Outputs as the Hub of Your Organization's Data Ecosystem | Michael Aleman | Are data outputs just for end-user viewing and analyzing or are outputs able to do more? One of my sore points in a business environment is that SAS is a diverse platform of data inputs, throughput, and outputs. As SAS users, analysts, and programmers, the community tends output data in spreadsheets, databases, infographics, or a visual analytics platform. As SAS users, we can provide more value to our organizations with creating processes that feed other platforms with the organization's vital data as well as provide world class data delivery. EXCEL, JSON, XMLs have their benefits and drawbacks in delivering data or creating products through the data output. I will elaborate more on XMLs (one of my favorite ways to deliver data) by using XSLs (stylesheets) and PROC XSL and SAS XML Mapper that transforms row level XML SAS output and transforms it into a universal data format that platforms can ingest to make SAS the main hub of your data ecosystem. |
proc step, sas enterprise guide, proc import, excel | source | 10 |
| 58 | Share your code with SAS Packages - a Hands-on-Workshop | Bartosz Jabłoński | When working with SAS○Rcode, especially when it becomes more and more complex, there is a point in time when a developer decides to break it into small pieces. The developer creates separate files for macros, formats/informats, and for functions or data too. Eventually the code is ready and tested and sooner or later you will want to share code with another SAS programmer . Maybe a friend has written a bunch of cool macros that will help you get your work done faster . Or maybe you have written a pack of functions that would be useful to your friend. There is a chance you have developed a program using local PC SAS, and you want to deploy it to a server , perhaps with a different OS. If your code is complex (with dependencies such as multiple macros, formats, datasets, etc.), it can be difficult to share. Often when you try to share code, the re- ceiver will quickly encounter an error because of a missing helper macro, missing format, or whatever ... | sas enterprise guide, sas packages | source | 2 |
| 59 | Soft Skills to Gain a Competitive Edge in the 21st Century Job Market | Kirk Paul Lafler | The 21st-century economy is converging with existing technologies such as software, the Internet, robotics, and the Cloud with emerging technologies such as artificial intelligence (AI), machine learning, IoT, nanotechnology, and biotechnology. As we collect, curate, and process vast quantities of information at breakneck speeds, the boundaries between humans and machines are blurring. A consequence of this technological revolution is an economy that is changing faster than ever, and organizations, along with today's workforce, must learn how to adapt. Today's economy requires it workforce to acquire two types of skills: hard skills or job-related knowledge and abilities to help us perform specific job responsibilities effectively, and soft skills or personal qualities that help us thrive in the workplace. So, what are examples of hard skills? Examples of hard skills include SAS and Python programming, data analysis, project management, and market research. | source | 4 | |
| 60 | Sorting a Bajillion Variables: When SORTC and SORTN Subroutines Have Stopped Satisfying, User-Defined PROC FCMP Subroutines Can Leverage the Hash Object to Reorder Limitless Arrays | Troy Martin Hughes | The SORTC and SORTN built-in SAS subroutines sort character and numeric data, respectively, and are sometimes referred to as "horizontal sorts" because they sort variables rather than observations. That is, all elements within a SORTC or SORTN sort must be maintained in a single observation. A limitation of SORTC and SORTN is their inability to sort more than 800 variables when called inside the FCMP procedure. To overcome this disagreeable, arbitrary threshold, user-defined subroutines can be engineered that leverage the hash object to sort limitless variables. The hash object orders values that are ingested into it using the ORDERED argument, which can specify either ASCENDING or DESCENDING. This text demonstrates three failure patterns that occur when the OF operator specifies an array inside the FCMP procedure, which affect both character and numeric arrays, and which cause all built -in functions and subroutines to fail with runtime errors. |
proc fcmp, hash table, character variable, missing value, array, integer, character functions | source | 16 |
| 61 | Survey Data Analysis in SAS | Denis Nyongesa, Marianne Jurasic, Gregg Gilbert, Tamara Lischka |
While few surveys use a simple random sampling design to collect data, regular statistical software analyzes data as if the data were collected using simple random sampling. Ignoring the sampling design in analysis of survey data may lead to incorrect point estimates and their standard errors. This paper provides an overview of the SAS procedures used in analyzing survey data. The SAS procedures handled in this paper include PROC SURVEYMEANS, PROC SURVEYFREQ, and PROC SURVEYLOGISTIC. The STRATA and WEIGHT statements for the procedures mentioned above will be discussed in relation to the sampling design used during the generation of the weighted estimates. Both univariate and multivariable weighted logistic regression models will be discussed. |
proc step, proc surveylogistic, sample, odds ratio, proc calis, chi-square test, proc surveyfreq, proc surveymeans, logistic distribution, logistic regression, random sampling, proc freq, regression analysis, predictor variable | source | 11 |
| 62 | Table Lookup by Enclosing Hash in FCMP | Wenyu Hu | Table lookup or searching is a common task performed in SAS. There are many lookup methods such as SET with KEY=, arrays, SQL joins, formats, MERGE with a BY statement, and DATA STEP hash object. Beginning with SAS 9.3, hashing is available to user-defined subroutines through the SAS Function Complier (FCMP) procedure. FCMP enables programmers to create and store frequently used complex and repetitive code into reusable and customized functions and subroutines. Embedding a hash object in PROC FCMP functions can enhance a user's capability to handle large data by improving performance while retaining program simplicity. This paper introduces table lookup using hashing in PROC FCMP and demonstrate how it can improve performance and streamline existing programs. |
hash table, lookup, proc step, proc sql, proc fcmp | source | 7 |
| 63 | Tapping the Power of PRX Functions in SAS 9.4 and in SAS Viya | John M. LaBore, Edwin Xie |
SAS programmers learn to use many basic SAS functions within the DATA STEP, but typically only a few advanced users learn about the SAS PRX (Perl Regular Expression) functions and call routines. The SAS PRX functions provide a powerful means to handle complex string manipulations by enabling the same end result with fewer lines of code, or by enabling the analysis of data previously out of reach of the basic string manipulation functions. The PRX functions and call routines that became available in SAS version 9 are accessible within the DATA STEP, and are tools that every advanced SAS programmer should have in their toolkit. A subset of these PRX functions are already available in SAS Viya. Examples are provided in SAS 9 and in SAS Viya to give a quick introduction to the syntax, along with a review of the resources available to the programmer getting started with PRX functions. |
cas, data step, sas programmer, sas viya, macro variable, proc sql | source | 15 |
| 64 | TARDIS: Tracking Alterations and Record Differences in SAS, a Macro to Add Color to Your Dataset Comparisons | Inka Leprince | Time Lords are an ancient race of time- and space-travelers from the planet Gallifrey. They have taken upon the vital role of safeguarding time-travel technology to protect and preserve order in the universe. The bureaucratic part of this responsibility requires that the High Council of Time Lords keeps a record of events and continually cross-references the current version of events against previous iterations of events. To describe the task of monitoring individuals visiting (or potentially invading) planet Earth-let alone the rest of the universe-as "challenging" would be putting it lightly. The Tracking Alterations and Record Differences in SAS (TARDIS) macro was developed to ease the High Council's burden by dynamically coloring records to identify antiquated or expunged incidents from the preceding version of events when compared against the current version of events. Additionally, TARDIS applies text formatting to highlight new events that had previously not occurred. | sample, proc report, adverse events, proc step, character variable, macro variable, full join, sas output, macro parameter, macro definition | source | 21 |
| 65 | Ten Rules for Better Charts, Figures and Visuals | Kirk Paul Lafler | The production of charts, figures, and visuals should follow a process of displaying data in the best way possible. However, this process is far from direct or automatic. There are so many ways to represent the same data: histograms, scatter plots, bar charts, and pie charts, to name just a few. Furthermore, the same data, using the same type of plot, may be perceived very differently depending on who is looking at the figure. A more inclusive definition to produce charts, figures, and visuals would be a graphical interface between people and data. This paper highlights and expands upon the work of Nicolas P. Rougier, Michael Droettboom, and Philip E. Bourne by sharing ten rules to improve the production of charts, figures, and visuals. | bar chart, proc sgplot, histogram, proc step, scatter plot, proc sgpanel, excel, vertical bar chart, box plot, bubble plot, proc freq, data science, series plot, class variable, correlation | source | 19 |
| 66 | The 5 CATs in the Hat - Sleek Concatenation String Functions | Kirk Paul Lafler | SAS functions are an essential component of the SAS Base software. Representing a variety of built -in and callable routines, functions serve as the "work horses" in the SAS software providing users with "ready -to-use" tools designed to ease the burden of writing and testing often lengthy and complex code for a variety of programming tasks. The advantage of using SAS functions is evident by their relative ease of use, and their ability to provide a more efficient, robust, and scalable approach to simplifying a process or programming task. SAS functions span several functional categories, including character, numeric, character string matching, data concatenation, truncation, data transformation, search, date and time, arithmetic and trigonometric, hyperbolic, state and zip code, macro, random number, statistical and probability, financial, SAS file I/O, external files, external routines, sort, to name a few. | sas function, character functions | source | 3 |
| 67 | The Battle of the Titans: DATA Step versus PROC SQL | Kirk Paul Lafler, Richann J. Watson, Joshua M. Horstman, Charu Shankar |
Should I use the DATA STEP or PROC SQL to process my data? Which approach will give me the control, flexibility, and scale to process data exactly the way I want it? Which approach is easier to use? Which approach offers the greatest power and capabilities? And which approach is better? If you have these and other questions about the pros and cons of the DATA STEP versus PROC SQL, this presentation is for you. We will discuss, using real-life scenarios, the strengths (and even a few weaknesses) of the two most powerful and widely used data processing approaches in SAS (as we see it). We will provide you with the knowledge you need to make that difficult decision about which approach to use to process all that data you have. |
proc sql, proc step, create table, group by, inner join, relational database, select, if-then-else | source | 22 |
| 68 | The Delta Method in Statistical Inference, with Applications in the SAS IML Procedure | Carter Sevick, Camille Moore, Samantha MaWhinney |
Testing of substantive hypotheses may involve complex computations on estimated model parameters without clear, or immediate, standard errors. Possible examples include a difference in group proportions, from a multivariable lo gistic regression, or summary effects from a pattern mixture model. Inference can often be readily carried out using resampling methods, such as the bootstrap, but these strategies may be impractical in cases of large data, computationally intensive models or both. The Delta Method has a long and rich history in statistics and may be able to deliver valid and reliable inferences within acceptable time frames when resampling methods would not. In this work, the Delta Method is reviewed with attention to cases when it works well and when other strategies would be advisable. Included examples are graded from simple to complex, and detailed code using the IML procedure is provided. |
confidence interval, covariance, logistic distribution, logistic regression, regression analysis, sample, likelihood function, sample size, normal distribution, proc iml, proc calis, maximum likelihood estimation, bootstrap, proc step | source | 14 |
| 69 | The Essentials of SAS Dates and Times | Derek P. Morgan | The first thing you need to know is that SAS software stores dates and times as numbers. However, this is not the only thing that you need to know. This presentation gives you a solid base for working with dates and times in SAS. It introduces you to functions and features that enable you to manipul ate your dates and times with surprising flexibility. This paper shows you some of the possible pitfalls with dates (and times and datetimes) in your SAS code and how to avoid them. We show you how SAS handles dates and times through examples, including the ISO 8601 formats and informats and how to use dates and times in TITLE and FOOTNOTE statements. The presentation closes with a brief discussion of EXCEL conversions. |
sysdate9, date variable, sample, excel, macro variable, proc format, proc step, missing value, error message, user-defined format, character variable, input statement, numeric variable, time, elapsed time, time., macro function | source | 24 |
| 70 | The Great Escape(char) | Louise S. Hadden | SAS provides programmers with many ways to enhance ODS output in addition to the use of both SAS-supplied and user-written ODS styles. Inline formatting of titles, footnotes, text fields, and table cells, and formatting of data using user-written formats and within the DATA STEP can be accomplished by using ODS ESCAPECHAR. A quick overview of syntax for some of the many possibilities for enhancing ODS output with ODS ESCAPECHAR currently available in SAS 9.4M7 will be presented, including underlines, pre- and post-images, special functions, line feeds, super- and subscripts. |
proc step, proc format, title statement, ods pdf, proc freq, proc report, excel, sample | source | 21 |
| 71 | Undo SAS Fetters with Getters and Setters: Supplanting Macro Variables with More Flexible, Robust PROC FCMP User-Defined Functions That Perform In-Memory Lookup and Initialization Operations | Troy Martin Hughes | Getters and setters are common in some object-oriented programming (OOP) languages such as C++ and Java, where "getter" functions retrieve values and "setter" functions initialize (or modify) variables. In Java, for example, getters and setters are constructed as conduits to private classes, and facilitate data encapsulation by restricting variable access. Conversely, the SAS language lacks classes, so SAS global macro variables are typically utilized to maintain and access data across multiple DA TA steps and procedures. Unlike an OOP program that can categorize variables across multiple user -defined classes, however, SAS maintains only one global symbol table in which global macro variables can be maintained. Additionally, maintaining and accessin g macro variables can be difficult when quotation marks, ampersands, percentage signs, and other special characters exist in the data. | macro variable, proc fcmp, symbol table, global symbol table | source | 8 |
| 72 | Univariate Outlier Detection Using SAS | Fan Yang | Outlier detection is an important task for many data analysis projects. It can help identify unusual observations in a dataset that may affect the statistical or analytical method used or have a large influence on the analysis results. This paper will introduce five statistical methods to detect outliers in a univariate dataset. These five methods range from a simple use of the mean and standard deviation statistics to the use of more advanced statistical techniques such as Robust Regression and the Medcouple statistic. This paper also covers some programming aspects about how to implement these five methods in SAS. A custom SAS macro is built using the SAS/IML language to implement an advanced 'FAST' algorithm to calculate the Medcouple statistic for outlier detection that seems not to have been done yet in the SAS community. Finally, the sensitivity of outlier detection for these five methods are compared in a simulation study with some recommendations drawn. |
outlier, box plot, sample, standard deviation, proc robustreg, proc step, regression analysis, proc univariate, sample size, normal distribution, data science, macro definition | source | 12 |
| 73 | Unraveling the Layers within Neural Networks: Designing Artificial and Convolutional Neural Networks for Classification and Regression Tasks using TensorFlow in Python | Ryan Paul Lafler, Anna T. K. Wade |
Capable of accepting and mapping complex relationships hidden within structured and unstructured data, Neural Networks are composed from layers of neurons with functions that interact, preserve, and exchange information between each other to develop highly flexible and robust predictive models. Neural Networks are versatile in their applications to real -world problems; capable of regression, classification, and generati ng entirely new data from existing data sources , Neural Networks are accelerati ng the breakthroughs in deep learning methodologies. | neural network, regression analysis, data cleaning, training set, deep learning, response variable, unstructured data, machine learning, mae, feature extraction, validation set, missing value, proc reg, data science | source | 24 |
| 74 | Visualizing Insights, Empowering Discoveries: SAS Viya Unleashed in Life Science Analytics | Matthew J. Becker | The life sciences industry has recently produced a tremendous amount of data at a quick rate from a variety of sources, including clinical trials, genomics, proteomics, and patient records. For improvements in research, medication discovery, and patient care, it is essential to draw insightful conclusions from this data and make defensible decisions. In this setting, SAS Viya, which provides sophisticated data visualization, analytics, and exploration capabilities, emerges as a potent tool. This paper explores the application of SAS Viya in the life sciences sector, highlighting its benefits, features, and real-world use cases. | sas viya, clinical trial, life sciences, adverse events, randomization | source | 13 |
| 75 | Waterfall vis a vis Spider plots: Complex oncology efficacy endpoint made simpler. | Yoganand Budumuru | Over the past 50 years, cancer diagnosis has transformed medicinal research and advancement. Such changes have only increased the complexity of clinical trials. To analyze such data from oncology studies, scientists measure certain efficacy endpoints such as Best Overall Response (BOR) to evaluate the effect of treatments on tumor response. Among various graphical representations, Waterfall plots and Spider plots have become increasingly efficient in visually depicting tumor shrinkage. However, each of these competing techniques have their share of benefits and drawbacks, causing perplexity within the clinical domain. Waterfall plots, on one hand, display a series of bars, each representing a patient's change in tumor size. While they are clear and concise at allowing scientists to assess differences, they are limited to exhibiting smaller cohorts of patients. | waterfall chart, sample, percent change from baseline, change from baseline, clinical trial, best response, procedures | source | 21 |
| 76 | What's black and white and sheds all over? The Python Pandas DataFrame, the Open-Source Data Structure Supplanting the SAS Data Set | Troy Martin Hughes | Python is a general-purpose, object-oriented programming (OOP) language, consistently rated among the most popular and widely utilized languages, owing to powerful processing, user -friendly syntax, and an unparalleled, abundant open-source community of developers. The Pandas library, a freely downloadable resource, extends Python functionality, and has become the predominant Python analytic toolkit. The Pandas DataFrame is the primary Pandas data structure, akin to the SAS data set in the SAS ecosystem. Just as SAS built-in procedures, functions, subroutines, and statements manipulate and interact with SAS data sets to transform data and to deliver business value, so , too, do Python and Pandas methods , functions, and statements deliver similar functionality. | user-defined format, dataset, master data management, proc sql, macro variable | source | 17 |
| 77 | What's next after model comparison? Model selection and model averaging in SAS | Chong Ho Yu, Charlene Yang |
To enhance the generalizability of the findings and to overcome the replication crisis, it is common practice to run multiple models under the framework of ensemble methods, instead of drawing a conclusion based on a single analysis. At the stage of model comparison, the analyst can choose between model selection and model averaging. In model selection, the best model is retained based on predictive accuracy, error rates, or parsimony, such as F1 score, generalized R-square, RASE, AIC, and BIC. By doing so, the second-best and other less adequate models are totally discarded. | feature selection, regression analysis, mse, posterior probability, sample, f1 score, sample size, stepwise selection, data science, response variable | source | 14 |
| 78 | When ANY Function Will Just NOT Do | Richann J. Watson, Karl Miller |
Have you ever been working on a task and wondered whether there might be a SAS function that could save you some time? Let alone, one that might be able to do the work for you? Data review and validation tasks can be time-consuming efforts. Any gain in efficiency is highly beneficial, especially if you can achieve a standard level where the data itself can drive parts of the process. The ANY and NOT functions can help alleviate some of the manual work in many tasks such as data review of variable values, data compliance, data formats, and derivation or validation of a variable's data type. The list goes on. In this poster, we cover the functions and their details and use them in an example of handling date and time data and mapping it to ISO 8601 date and time formats. | raw data, time variable | source | 8 |
| 79 | Who's Bringing That Big Data Energy? A 47-Year Longitudinal Analysis of 30,000 Presentations in the SAS User Community To Elucidate Top Contributors and Rising Stars | Troy Martin Hughes | This analysis examines presentations at SAS user group conferences between 1976 and 2023. It includes presentations referenced on www.LexJansen.com (aka "the LEX") during this timeframe, which are drawn from multiple conferences, including: SAS User Group International (SUGI, may she rest in peace ), SAS Global Forum (SGF, may she be revived), SAS Explore, Western Users of SAS Software (WUSS), Midwest SAS Users Group (MWSUG), South Central SAS Users Group (SCSUG), Southeast SAS Users Group (SESUG), Northeast SAS Users Group (NESUG), Pacific Northwest SAS Users Group (PNWSUG), and Pharmaceutical Software Users Group (PharmaSUG). This analysis identifies top contributors, including authors who have presented most abundantly at specific conferences, as well as across all conferences . For example, the SAS superstars and most prolific presenters of all time are ranked and recognized for bringing that big data energy (BDE)-Kirk Paul Lafler, Arthur L. | data cleaning, outlier, proc freq, adverse events, macro facility, time series analysis | source | 36 |
| 80 | With a View to Make Your Metadata Function(al): Exploring SAS Sources of Information on SAS Formats | Louise S. Hadden | Many SAS programmers are accustomed to using SAS metadata on SAS data stores and processes to enhance their coding and promote data driven processing. SAS metadata is most frequently accessed through SAS "V" functions, SAS View tables, and dictionary tables. Information can be gained regarding SAS data stores and drilling down, attributes of columns in data files. However, few programmers are aware of SAS's similar resources and capabilities with respect to SAS formats. This paper and presentation will briefly discuss how SAS metadata may be exploited in general, and will demonstrate how to use the FMTINFO() function specifically. | proc step, proc format, proc catalog, dictionary tables, view, format statement, dataset, proc sql, user-defined format | source | 14 |
| 81 | Wrangling Excel Worksheets | Tom Kari | Ah, EXCEL. Sadly, it's EXCEL's world and we only live in it. Anybody experienced with answering questions on the SAS Communities has seen the full gamut of problems that are encountered with worksheets: the data is in the wrong column; the data is in the wrong row; I'm expecting a number in a cell, but it's a character value; the cell should contain a date, but it doesn't; I have too many or too few rows or c olumns. Yes, it's true that on occasion importing data into SAS from an EXCEL workbook can fail, but those are the GOOD results. Worse are the cases where it looks like the import worked, but you got the wrong data in the wrong place. I was faced with the requirement to import multiple EXCEL worksheets monthly, in a production environment. Of course, I was ASSURED that "there wouldn't be any problems with the worksheets", and promptly ran into all of the problems described above. To deal with these problems , I developed BASE SAS code to do the following... |
excel, dataset, proc step, proc sql, proc format | source | 18 |
This site serves as a convenient hosting location and does not work as a publisher. All copyrights belong to their respective owners.
The information on this site is provided for general reference purposes only. Whilst every effort is made to ensure that the site is up to date and accurate, no warrant, nor any responsibility or liability for, the accuracy or completeness of the content or for any loss which may arise from reliance on information contained in this site is provided. Links to other sites are provided for your convenience but no responsibility or liability for the content of those sites or of any external site which links to this site is accepted. References to any specific commercial product, process, service, or corporation are also for information only, and do not constitute endorsement, recommendation or favoring.
SAS is a registered trademark of SAS Institute Inc. SAS, Statistical Analysis System, and all other SAS Institute Inc. product or service names are registered trademarks or trademarks of SAS Institute Inc. in the USA and other countries. ® indicates USA registration.
HOME
QUICK SEARCH
AUTHORS
KEYWORDS
HELP
BUGS