SESUG 2022 Papers - Index
75 papers. Source: SESUG (SouthEast SAS Users Group) conference proceedings.
| # | Title× | Authors× | Abstract× | Keywords× | Extras | Pages |
|---|---|---|---|---|---|---|
| 1 | A Brief History of SAS Software, from a User's Perspective | David Maddox | This paper shares the experiences of the author as a SAS user, administrator, and advocate beginning in the 1970's. The purpose of the paper is to convey to current users how SAS developed and evolved from a user's perspective. While the story of SAS, the company, is quite interesting and informative, the focus here is on the software product itself and some of the applications that were developed over the years. In that context, maybe users of today can better understand how to position SAS in their careers | call records, sas programmer, sas enterprise guide, proc step | source | 5 |
| 2 | A Gentle Introduction to Creating SAS Graphs | Dane A. Korver | Creating graphs using SAS can be intimidating even for an experienced SAS programmer. This paper will provide you with a very gentle introduction to creating graphs in SAS so that it is not an overwhelming experience when you are tasked with creating one | proc sgplot, bar chart, proc step | source | 6 |
| 3 | A SAS Macro for Implementing a Nonparametric Control Charting Scheme for Individual Observations | Austin R. Brown | In process monitoring applications, a commonly encountered scenario is one in which several presumably identical processes are desired to be monitored simultaneously. Such a process is referred to as a "Multiple Stream Process (MSP)." Several parametric control charts have been developed for monitoring MSPs with the majority being derived from the classical Shewhart X-bar chart. These control charts perform best when the assumption of normality is met, but their performance can deteriorate substantially when the underlying data are non-normal. This deterioration is magnified when the sample size is n=1. While some work has been done to address the issue of non-normality through the development of a nonparametric MSP chart, a review of the literature shows an apparent gap for nonparametric MSP charts where the sample size is one | sample, dataset, sample size, nonparametric test, macro function, macro variable, numeric variable, macro definition, binomial distribution | source | 11 |
| 4 | A SAS Macro That Automates Model Fitting of Group-Based Trajectory Modeling Using Proc TRAJ | Donald Warden, Yu Jiang |
The third-party SAS procedure TRAJ developed by Jones et.al gives users a convenient tool for group-based trajectory modeling. The procedure allows the user to fit any number of classes across five polynomial orders that each class follows. To fit these models, users must assess model fit by comparing the Bayesian Information Criteria (BIC) of the models with different polynomial orders. Moreover, the parameter estimate for each class polynomial must be statistically significant - generally presumed as a T test alpha less than 0.05. With each increase in the number of classes, the number of models to check increases exponentially. Traditional methodology employs bootstrapping to generate valid, parsimonious models without checking every model. However, this methodology likely does not find the best fitting model. In this paper, we develop a SAS macro, autoTRAJ, which assesses all possible polynomial orders and outputs a list with the best fitting model based on BIC up to eight classes | proc step, macro variable, response variable, model training, proc sql, macro definition | source | 9 |
| 5 | A SAS Macro to Calculate Blinding Index in Clinical Trials: %blinding_index, an application of PROC IML | Jingwei Wu, Di Zhu |
Randomized clinical trials are often considered as gold standard for clinical research, owing the fact of its rigorous study design and implementation. Success of blinding, i.e., study participants and key layperson are unaware of the treatment assignment or therapeutic allocation they received, is key component to minimize post-randomization bias. There are two commonly used methods that can quantify blinding success in a double-blinded randomized control trial based on administered post-randomization questionnaire data, namely, James Blinding Index (James_BI) and Bang Blinding Index (Bang_BI). James_BI is a scaled number between 0 and 1, increases as the success of blinding increases. Bang_BI is calculated per treatment arm, is a scaled number between -1 to 1, with 0 as the most desirable situation under successful blinding. There is no current SAS macro program that can calculate the two blinding indexes | confidence interval, clinical trial, macro definition, proc iml, randomization, proc step, inferential statistics, treatment arm | source | 7 |
| 6 | A Two-Staged Local Regression Based Binning Method for Weight of Evidence Transformation in Credit Scoring Models | Hui Wang, Shirong Huang, Emma Zhou, Erin Martin |
Weight of Evidence (WOE) variable transformation method is widely and commonly used in credit risk analysis. This work provides a two-staged, local regression based binning method to estimate WOE. Using the banking industry dataset as an example, this paper shows that when a sufficient number of bins are selected and appropriate smooth factor is chosen, the loss of information and prediction accuracy could be minimized. The proposed method performs well on imbalanced dataset. It can also handle either monotonic or U-shaped relationships between the transformed WOE and original variable by delivering results that have business soundness. The model created with this approach can enable the users to experience more smooth credit score migration when a financial ratio shifts from one bin to another | predictor variable, regression analysis, create table, credit risk, data transformation, loess, proc sql, credit score, proc step, pd, type ii error, type i error, logistic regression, correlation, imbalanced data, credit risk analyst, banking, mortgage, order by, sas risk engine, logistic distribution, credit scoring | source | 30 |
| 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, Sushil B. Kumar, Puspita Kumari Padhi |
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 | Acing Technical Questions in SAS Programmer Interviewers | Lauren Rackley | Part of the interview process for SAS programming positions often involves technical assessments or technical questions. Important topics to know are SQL joins, ways to create macro variables, by group processing, and correct use of the RETAIN statement. In an effort to help candidates getting started as a SAS programmer, this paper will provide guidance on how to tackle technical questions and technical assessments given during interviews | sas programmer, sample | source | 4 |
| 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 | Application of Feature Selection and Dimension Reduction Techniques on Large-Scale CT Dataset for Lung Cancer Diagnosis Based on Radiomics | Mostafa Zahed, Maryam Skafyan |
proc princomp, dimensionality reduction, feature extraction, correlation, proc cancorr | source | 22 | |
| 11 | Application of Fuzzy Matching Techniques Using SAS Software - A Panel Discussion | Kirk Paul Lafler, Stephen B. Sloan |
Data comes in all forms, shapes, and sizes. When consistent and reliable identifiers (or keys) between two or more files exist, SAS users are typically able to search and match observations without a problem. But, when a unique identifier (or key) is not consistent or reliable then the matching process can become compromised. This panel discussion will explore topics related to what fuzzy matching is, common data issues, popular data cleaning and validation techniques, the application of the five CAT functions, the application of the SOUNDEX (for phonetic matching) algorithm, the SPEDIS, COMPLEV, and COMPGED functions, and an assortment of SAS programming techniques to resolve key identifier issues and to successfully search, merge/join and sort less than perfect or messy data. Keywords: Fuzzy matching, SAS, character-handling functions, phonetic matching, SOUNDEX, SPEDIS, edit distance, Levenshtein, COMPLEV, COMPGED | proc step, proc sql, character variable, proc sort, data cleaning, sas function, missing value, numeric variable, order by, proc format, character functions, proc contents, data transformation, proc print, proc transpose | source | 30 |
| 12 | Array Searching Algorithms and Techniques | Paul M. Dorfman | As SAS data structures, arrays have a variety of uses, all based on quick direct accessibility of each array element by its own unique index. However, the latter is most important for using arrays for key lookup and data retrieval: Since array indices can be programmatically manipulated in every conceivable way, any known search algorithm can be implemented using SAS arrays. This paper is a classified compendium of array searching algorithms and their practical implementations in the SAS language | hash table, whichc | source | 15 |
| 13 | Assigning Agents to Districts Under Multiple Constraints Using PROC CLP | Stephen B. Sloan, Kevin K. Gillette |
The Challenge: assigning outbound calling agents in a telemarketing campaign to geographic districts. The districts have a variable number of leads and each agent needs to be assigned entire districts with the total number of leads being as close as possible to a specified number for each of the agents (usually, but not always, an equal number). In addition, there are constraints concerning the distribution of assigned districts across time zones, in order to maximize productivity and availability. Our Solution: uses the SAS/OR procedure PROC CLP to formulate the challenge as a constraint satisfaction problem (CSP), since the objective is not necessarily to minimize a cost function, but rather to find a feasible solution to the constraint set |
proc step, macro variable | source | 9 |
| 14 | Calling for Backup When Your One-Alarm Becomes a Two-Alarm Fire: Developing SAS Data-Driven Concurrent Processing Models through Control Tables and Dynamic Fuzzy Logic | Troy Martin Hughes | In the fire and rescue service, a box alarm (or, simply, "alarm") describes the severity of a fire. As an alarm is elevated from a one-alarm fire to a multi-alarm fire, additional, predetermined resources (e.g., personnel and apparatuses) are summoned to c ombat the blaze more aggressively. Thus, a five-alarm fire-or its equivalent "five-alarm" Cincinnati chili-represents something extremely hot and dangerous. After extinguishment, and as smoke and embers recede and overhaul begins, fire and rescue resources are released "back into service" so they can be utilized elsewhere if necessary. Essential to managing complex fireground operations, this load balancing paradigm is also common in grid and cloud computing environments in which additional computational resources can be shifted temporarily to an application or process to maximize its performance and throughput | cpu time, proc sql, macro variable, create table, %if-%then-%else | source | 27 |
| 15 | Cliometrics: An Underused Quantitative Approach to History | Barbara B. Okerson | The study of history emphasizing statistical or quantitative methods is known as cliometrics. Originally applied to the study of economic history, cliometrics now includes the full range of quantitative historic studies. These quantitative studies are used when identifying and studying varied phenomena of the past including wartime patterns, literacy levels, agriculture, and consumerism. Comparing across time and space, we can demonstrate correlations, patterns, and trends that provide insight into cause and consequence. This paper will begin with a review of cliometrics as a field of study and discuss and illustrate some of its applications and relevance | inferential statistics, correlation | source | 7 |
| 16 | Custom Panel Graphs Using PROC TEMPLATE | James E. Blum | PROC SGPANEL gives a variety of styles of panel graphs, but they have significant limitations in the scope of layouts available. Layouts have equal cell sizes, structured in some form of a grid. They also use the same plotting statement(s) for each of the cells, distinguished only by the variables used in the PANELBY statement. PROC TEMPLATE can construct a wide variety of panel graphs, including those with graphs of different sizes, types, and variable sets, This paper gives an overview of the PROC TEMPLATE tools that mimic common PROC SGPLOT figures and the PROC SGPANEL structures, and then focuses on structures that cannot be built in PROC SGPANEL. Example output and code for graphs built from common SASHELP data sets are provided |
proc step, proc template, box plot, proc sgplot | source | 25 |
| 17 | Cutting Edge Regression Methods: Ridge, LASSO, LOESS, and GAM | David J. Corliss | This paper presents a brief introduction to recent advances in regression methods. Techniques demonstrated include ridge regression, LASSO, local polynomial regression (LOESS), and generalized additive models (GAM). Each method is presented separately, with a description of the SAS procedure used to implement them and recommendations for apply the methods in practical situations. A quick introduction to each method followed by two worked examples, with discussion of use cases, and options for SAS procedures and producing graphical output. Ridge Regression In regression analysis, multicollinearity occurs where some predictor variables are partly correlated. These are situations where the correlation between predictor variables to too strong to dismiss those with a weaker correlation to the outcome to dismiss, and yet the predictors are not very highly correlated so that they are effectively equivalent in the prediction | regression analysis, ridge regression, proc step, lasso regression, loess, proc reg, correlation, predictor variable, sample, proc gam, data cleaning, proc glmselect | source | 12 |
| 18 | Data for Good: Statistical Volunteering with SAS and How to Get Involved | David J. Corliss | This presentation brings together experiences from SAS professionals working as volunteers for organizations, charities, and in academic research. Pro bono work, much like that done by physicians, attorneys and professionals in other areas is rapidly growing in statistical practice as important part of a statistical career, offering the opportunity to utilize your skills in a places where they are so needed but cannot be supported in a for-pay position. Statistical volunteers also gain important learning experiences, mentoring, networking, and other opportunities for professional development. The pre senter will share experiences from volunteering for local charities, NGO's and other organizations and causes, both in the US and around the world. The mission, methods and focus of some organizations are presented, including DataKind, Statistics Without Borders, Peace-Work and others | data science, cluster analysis | source | 8 |
| 19 | Data Wrangling in a Highly Regulated Industry | David B. Horvath | Data is rarely clean - it needs to be wrangled into a form that your analysts can actually use it. Wrangling that data becomes more complicated in a highly regulated industry such as Pharma or Banking/Finance. This session will look into those areas and provide suggestions on how to deal with the related issues | interest rate, data audit | source | 11 |
| 20 | Demystifying PROC SQL Join Algorithms | Kirk Paul Lafler | 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 available join algorithms to use for performing the join operation. Attendees learn about the different types of join algorithms and explore nested loop (brute-force), sort-merge, index, and hash join methods along with selected options to control processing |
proc sql, where statement, inner join, data merging, proc step, right join, full join | source | 7 |
| 21 | 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 | |
| 22 | Don't be so One-Dimensional: How to Engineer Multi-Dimensional, High Cardinality Categorical Inputs for Machine Learning | Aleksandar Nikolic | Knowing how to process categorical inputs is a key skill that every data scientist must know. While a wide array of techniques is available to prepare categorical data for machine learning, they do not address all the problems that a data scientist could face. One such problem arises from working with transactional datasets where there could be multiple observations per level of interest. It is possible for a categorical input to not only have a high number of unique values across the entire dataset, but also multiple unique values within the level of interest. Since traditional categorical feature engineering techniques do not address the multi- dimensional aspect of this problem, this paper will outline a novel approach that does. This paper demonstrates the solution using base SAS code, and SAS Cloud Analytic Services (CAS) procedures found in the SAS Viya 3.5 platform for machine learning model comparisons | feature engineering, machine learning, data cleaning, binary variable, group by, target encoding, model training, training set, proc hpsplit, sample, credit card, data science, macro definition | source | 25 |
| 23 | Embracing Cross-Loading to Improve Latent Variable Models Fit: A comparison of available options in SAS, Mplus, and R | Kevin B. Gittner, Niloofar Ramezani, Katherine Mobley |
A major criticism of estimating traditional latent variable measurement models is the unrealistic assumption of fixed zero cross -loadings with non-primary factors. Latent variable modeling has evolved from these traditional zero cross-loadings to allowing estimation of non- zero cross-loadings while validating latent constructs of interest. Even though these non-zero cross-loadings are restricted to minimal cross -loadings, they enable researchers to achieve better model fit while allowing a more realistic relationship between items and factors. Both Exploratory Structural Equation Modeling (ESEM) and Bayesian Structural Equation Modeling (BSEM) est imation methods go beyond the traditional model approaches and allow for relaxing restrictive cross -loading assumptions in measurement models. However, different software packages have been slow in adopting these recent developments in latent variable analysis | latent variable, factor loading, estimate, proc calis, factor analysis, model training | source | 26 |
| 24 | Enhancing Your Skillset with SAS OnDemand for Academics (ODA) Software | Kirk Paul Lafler | The free cloud-based SAS OnDemand for Academics (ODA) software is an exciting development for SAS users and learners around the world! The software includes Base SAS, SAS Studio, SAS/STAT, SAS/GRAPH, SAS/ETS, SAS/OR, SAS/IML, SAS/QC, SAS/CONNECT, SAS Enterprise Miner, and SAS/ACCESS to PC Files. SAS ODA offers users with extensive learning opportunities to enhance skills for career development and advancement using data access, data manipulation, data management, programming techniques, analytics, data visualization, and statistical analysis capabilities. Topics include an introduction and overview of SAS OnDemand for Academics (ODA) software, demonstration of SAS Studio features, and programming examples to showcase this exciting software suite |
dataset, sas studio, proc step, sas library, excel, proc contents, delimited file, work library, bar chart, histogram, proc import, csv | source | 30 |
| 25 | Equity Data and SAS: Modeling Intersectionality | Kelly D. Smith | source | 3 | ||
| 26 | Essential Programming Techniques Every SAS User Should Learn | Kirk Paul Lafler | SAS software boasts countless functions, algorithms, procedures, options, methods, code constructs, and other features to help users automate and deploy solutions for specific tasks and problems, as well as to access, transform, analyze, and manage data. This paper identifies and shares essential programming techniques that a pragmatic user and programmer should learn. Topics include determining the number of by-group levels that exist within classification variables; data manipulation with the family of CAT functions; merging or joining multiple tables of data; performing table lookup operations with user-defined formats; creating single-value and value-list macro variables with PROC SQL; examining and processing the contents of value-list macro variables; determining the FIRST., LAST. and Between by-group rows; processing repetitive data with arrays; and using metadata to better understand the contents of SAS datasets |
proc step, proc sql, hash table, proc freq, proc print, if-then-else, dictionary tables, macro variable, character variable, missing value, excel, order by, dataset, proc append, lookup, character functions | source | 27 |
| 27 | Excel with ODS EXCEL Destination and PROC REPORT! | Devi Sekar | ODS EXCEL destination for creating Microsoft EXCEL workbooks is available starting with SAS 9.4M3. This destination is an extremely easy and handy tool for producing ad-hoc as well as production EXCEL reports. The ODS EXCEL destination has several advantages over ODS ExcelXP tagset. With the ODS EXCEL destination, you can bring all those powerful features available with the REPORT procedure such as predefined styles, traffic-lighting, custom formatting, and compute block flexibility straight into your EXCEL reports. This paper covers various techniques that you can use with PROC REPORT and the ODS EXCEL destination, to bring excellence to your work |
excel, proc report, proc step, ods excel, output delivery system, macro variable, options statement, xls, sas base | source | 19 |
| 28 | Exploring the Skills Needed by the Data Scientist | Kirk Paul Lafler | As 2.5 quintillion bytes (1 with 18 zeros) of new data are created each and every day, the age of big data has taken on new meaning. More and more organizations across industries are embracing Data Science / Computer Research Scientist skills resulting in an emerging demand for qualified and experienced talent. According to the Bureau of Labor Statistics (BLS) the number of data science jobs is expected to grow 19 percent over the next two decades - nearly three times as fast as the average growth rate for all jobs. Energized by this employment outlook, students and professionals across job functions are preparing for tomorrow's growing data science / analytic demands by acquiring a comprehensive skill set. To prepare for this growing demand, many colleges, junior colleges, Universities, and vocational training organizations offer comprehensive degrees and certificate programs to fulfill the increasing demand for analytical skills | data science, data mining | source | 13 |
| 29 | Finding Duplicate Names and Addresses in Your Consumer Database | Joe DeShon | Despite the best efforts of all, duplicates are certain to be created in any consumer database. Because of variations in spelling and formatting of names and addresses, simply processing the database with PROC SORT NODUPKEY is not enough. Many vendors offer services to help de-dupe such databases, but the process can be very inflexible and expensive. This paper describes a system written in Base SAS which identifies the most important parts of each name and address and thus produces a de-duped database with results comparable to most outsourced solutions. This is appropriate for any company with a large consumer database and limited resources needing to detect and respond to duplicate names and addresses in a consumer database |
proc sort, sas base | source | 6 |
| 30 | Functions (and More!) on CALL! | Richann J. Watson, Louise S. Hadden |
SAS Functions have deservedly been the focus of many excellent SAS papers. SAS CALL subroutines, which rely on and collaborate with SAS functions, are less well known, although many SAS programmers use these subroutines frequently. This paper will look at numerous SAS functions and CALL subroutines, as well as explaining how both SAS functions and CALL subroutines work in practice. There are many areas that SAS CALL subroutines cover including CAS (Cloud Analytic Services) specific functions, character string matching, combinatorial functions, date and time functions, external subroutines, macro functions, mathematical functions, sort functions, random number functions, special functions, variable control functions, and variable information functions | sas log, sas function, call execute, proc step, rand, macro variable, call sortn, call sortc, macro call, call symput, character variable, missing value, call symputx, numeric variable, call streaminit, proc fcmp, character functions, symbol table, call missing, proc means, random number generation, cpu time, sample, prxchange, macro facility, proc sql, set statement, length statement, macro definition | source | 33 |
| 31 | Getting Started with DATA Step Hash Objects | Joshua M. Horstman | The hash object provides a powerful and efficient way to store and retrieve data from memory within the context of a DATA STEP. This presentation will introduce the hash object, cover its basic syntax and usage, and walk through several examples that demonstrate how it can offer new and innovative solutions to complex coding problems. This presentation is intended for SAS users who are already proficient with basic DATA STEP programming |
hash table, set statement, conditional do loop, hash iterator, adverse events, dataset, concomitant medications, cpu time | source | 8 |
| 32 | Have a Date with ISO? Using PROC FCMP to Convert Dates to ISO 8601 | Richann J. Watson | Programmers frequently have to deal with dates and date formats. At times, determining whether a date is in a day-month or month-day format can leave us confounded. Clinical Data Interchange Standards Consortium (CDISC) has implemented the use of the International Organization for Standardization (ISO) format, ISO 8601, for datetimes in SDTM domains, to alleviate the confusion. However, converting "datetimes" from the raw data source to the ISO 8601 format is no picnic. While SAS has many different functions and CALL subroutines, there is not a single magic function to take raw datetimes and convert them to ISO 8601. Fortunately, SAS allows us to create our own custom functions and subroutines. This paper illustrates the process of building a custom function with custom subroutines that takes raw datetimes in various states of completeness and converts them to the proper ISO 8601 format | proc fcmp, proc step, return, sas log, sample, time., numeric variable, cdisc | source | 15 |
| 33 | Have your cake and eat it too: Automated, sequential SAS batch jobs conditional on programmed log review | Isaiah Gerber | While it is useful to break processing pipelines across multiple programs, at scale it can also make re-running analyses extraordinarily time-consuming and prone to human error. Prior work has tackled this problem by both laying out how to automatically batch numerous SAS programs in sequence (using tools like SAS Enterprise) as well as by developing macros to automate mass log review. This paper explores an approach which allows users to combine these two useful categories of utilities by sequentially batching any number of SAS programs while requiring each program in that sequence to pass a basic log check before batching the next program. The author reviews a simple SAS interface which calls a PowerShell function developed by the author to both 1) automate SAS programs in sequence and to 2) check each resulting log automatically for errors and warnings | data pipeline, error message | source | 5 |
| 34 | Introduction To SCL Functions For Macro Programmers | Ronald J. Fehd | proc sql, macro variable, macro function, macro definition, macro put, proc freq | source | 20 | |
| 35 | Invoking Survey Weights to Calculate Bayes' Factor with PROC MCMC to Generate More Generalizable Inferences | Tyler Hicks, Graham G. Rifenbark |
In many instances, such as the one considered in this paper, SAS users rely on survey weights to enhance the representativeness of samples. As an example, pollsters use survey weights to better forecast elections with cheaper samples. Naturally, survey weights are also very relevant when generalizing statistical tests to populations. To engage in testing, Bayesian leaning statisticians turn to Bayes' Factors. The Bayes Factor (BF) quantifies the extent to which data support one model better than another. As an example, BF=5 indicates data support the alternate model five times better than the null model. Although adjusting the BF with sampling weights is no small feat, Markov Chain Monte Carlo (MCMC) algorithms enables their successful empirical derivation | sample, sample weight, sample size, proc step, likelihood function, survey weight, logistic regression, null hypothesis, posterior probability, prior probability, bayesian statistics, logistic distribution, regression analysis, alternative hypothesis | 9 | |
| 36 | Leading Change: Using Data and Feedback to Launch a Strategic Plan or New Initiative | Anne L. Oxenreider | Traditionally, new strategic plans begin with reviewing the past plan and scanning the environment. Establishing trust between planners and stakeholders is a crucial first step to managing and leading change. Creating a campus-wide feedback loop with data and ideasharing provides the necessary groundwork to launch transformative change. This presentation will describe a pre-kickoff communication campaign that shared illustrative data points and gathered information from faculty and staff close to practice. The campaign used a Qualtrics survey to perform a gap analysis of core college functions and yielded valuable qualitative data. With current practitioner knowledge in hand, a kick -off event was launched that captured and maximized stakeholders' attention | liquidity gap, treatment effect | source | 5 |
| 37 | Learning Fun(damental) Character String Cleaning and Parsing Methods in SAS! | William Zachary Smith | Cleaning and parsing character strings is an important step in data processing activities to allow the data to be as analytically useful as possible. This often requires character strings to be summarized into discrete numeric categories (coded) or requires using character strings to fuzzy match records between datasets. In order to do these activities, a number of cleaning and parsing techniques are needed. This paper will examine different SAS functions and custom macros to clean character string data, remove or replace unwanted characters and symbols, and parse single character strings into separate strings based on user-defined characters and delimiters. The functions and macros explored within are easy to understand and fundamental for all SAS users at any skill level | compress function, index, sample, tranwrd function, character functions, upcase function, sas function | source | 7 |
| 38 | Leveraging the CONTENTS PROCEDURE for easier SET statements | Tamar C. Roomian | When setting together multiple data sets in the DATA STEP, two common problems can arise. First, the data sets can share variable names in common that are of different datatypes, resulting in error messages in the log. The error messages list which variables are both numeric and character, but fail to mention for which data sets, making it difficult for the user to resolve the issue using the log messages alone. Second, the data sets can share character variables of different lengths, which results in truncation of data when set together. The SAS Institute has published a macro program, %union, to combine data sets that have variables in common of different lengths, however it can only be used for two data sets at a time, and it does not account for differences in case or format length. When joining more than two data sets that contain hundreds of variables in common, resolving these discrepancies becomes time consuming and tedious |
character variable, macro variable, proc contents, error message, work library, proc step, proc sql | source | 8 |
| 39 | Long to Wide Format | Isaiah Omerhi | Reports generated from the various medical record sources may present in the long format with multiple rows for a single ID variable. To perform descriptive analysis on such data all unique ID must be in one row. One way SAS reshape the long format to a wide format -where all unique ID are in a single row is by using the function PROC TRANSPOSE. However, datasets with multiple repeating categorical variables introduces a special challenge to the TRANSPOSE procedure. This is your poster abstract |
proc transpose, proc step, by group processing | source | 1 |
| 40 | Map It Out: Using SG Attribute Maps for Precise Control of PROC SGPLOT Output | Joshua M. Horstman | The SGPLOT procedure, part of the ODS Statistical Graphics package, allows for extensive customization of nearly all aspects of plot output. These capabilities are commonly used to distinguish between groups or categories being compared through the use of distinct plot attributes, such as symbols and colors. However, there are times when it is advantageous to be able to associate specific plot attributes with specific data values. SG attribute maps provide functionality that does exactly that. This presentation will provide an introduction to the use of SG attribute maps in conjunction with PROC SGPLOT. A series of examples will demonstrate how attribute maps are used and why they are useful as a programming tool. Both discrete and range attribute maps will be used to modify a variety of plot attributes, such as plot marker symbols and colors, line styles and fill patterns |
scatter plot, proc sgplot, proc step | source | 11 |
| 41 | Names From Template (NFT) | Kannan Deivasigamani | SAS programmers at times have these datasets with plenty of variables that are similar or cloned from another dataset but contain additional variables due to some intermediate computations. At the end of the day, we are tasked with retaining the original variables and drop any additional ones. We end up copying a list of variables manually or typing them in the keep statement. What if there is a way to automatically have the list available and the copy to be made using the template dataset that has the variables we need. Well, you've got it. This macro does that exactly that. It keeps the variables from the template dataset and makes a new copy or overwrites the existing one depending on your requirement. The macro accepts 3 parameters as input from the user. The first parameter is the input dataset that has all the variables that needs to be cleaned up. The second parameter is the variable-template which is a SAS dataset that has the variables of interest | dataset, out=, flat file, in=, macro variable, %macro parameters | source | 9 |
| 42 | Offensive Programming: A Threesome of Error-Throwing Macros | Quentin McMullen | SAS programming can feel fraught with danger. Each time a program is executed, there is a risk that an error in the source data or the code will lead to undetected erroneous results. Offensive programming techniques are designed to decrease that risk by addin g code to detect and report errors as a program runs. This paper presents three offensive utility macros for runtime validation of SAS jobs: %DupCk detects duplicate key values in a data set; %Assert detects values in a data set that are invalid or unexpected; and %CheckRecordCounts detects the accidental deletion of records. By increasing the detection rates of common errors, these utilities increase the programmer's confidence in their results. Principles of offensive programming are discussed, as are principles of macro design encountered during the development of the macros | error message, record count, macro parameter, %macro parameters, macro variable, sysrc, sas programmer, macro facility, proc sort, sas log, macro definition, by group processing, if-then-else, keyword parameter, options statement, proc step, missing value, macro call, raw data, variable list, data cleaning, merge statement | source | 20 |
| 43 | One Click Excel Cleanup - Generate High Quality SDTM/ADAM Specification | Suresh Acharya | The focus of this paper is to generate a high-quality EXCEL specification document in one click with the help of a Visual Basic for Applications (VBA) macro. In the pharmaceutical SAS programming industry, documents such as SDTM and ADaM specifications are required to create SDTM and ADaM datasets, and most times these are in EXCEL format. Statisticians and SAS programmers typically update these documents multiple times in -life as per the study requirements and analysis needs. These updates are frequently tracked by using various types of markings such as different colored text, highlighted cells, and overstrikes. These updates are often not formatted consistently leaving highly inconsistent text formats and fonts in the document. Removal of formatting is a manual process which is tedious and time consuming. It takes 20 -30 hours per protocol deliverable with increased likelihood of human error and inconsistencies |
excel, adam dataset, cdisc | source | 8 |
| 44 | Orchestrating and triggering SAS process execution from custom process control tables | Angye C. Rivero, Osmel Brito Bigott |
When we have different processes in charge of feeding our Data Warehouse, commonly in the design a process control table is included, from which it must be read in order to generate a trigger that starts the execution of one or more programs that carry a logical sequence at the time of loading information, thus being able to integrate the execution of SAS processes to the execution of processes from different sources or technologies. This paper will expose you to a way to generate this flag or trigger from the data loaded into a control table with a simple and simple design, as well as the implementation so that you can customize it according to your needs. I will also show you a practical example of how you can use a control table, your SAS programs and schedule these executions to improve the automation of the execution of your processes | macro variable, macro put, macro definition, %if-%then-%else | source | 11 |
| 45 | Organizational Considerations When Replacing or Adding a New Software Language | Brian K. Varney | Replacing or adding a new software language for your organization's users can add a lot of value and productivity to your team(s). There are, however, many factors and considerations to consider avoiding chaos and hidden costs | data cleaning, grid computing | source | 3 |
| 46 | Pol-y-mor-phism in SAS, Or, Good Programmers are Lazy | David B. Horvath | This session reviews techniques for implementing simple polymorphism in SAS programs. As part of an effort to productionalize a large number of models with multiple variables with long time series, a datamart was created in SAS datasets to minimize impact on the corporate data warehouse. Rather than coding the inputs multiple times in the build process, a set of macros were created to define the DDL for input to each model. By including different files that define those macros, different functions were implemented: Prime, shift months, define keep string | macro variable, proc datasets, proc step, cpu time, keep statement, time series analysis | source | 21 |
| 47 | PROC IMPORT: Controlling SAS Data Types and Character Variable Lengths When Reading CSV Files | Imelda C. Go, Abbas S. Tavakoli |
The task at hand is we have a SAS data set and the client needs a CSV file containing all the data in that SAS data set. Validate the CSV file to make sure that it contains exactly what is in the SAS data set. Using PROC IMPORT to read CSV files is convenient. However, relying solely on PROC IMPORT features does not always produce data sets with the desired properties, which can make combining two or more data sets difficult. This paper goes through an example of how you can control or adjust variable types in a data set generated by PROC IMPORT by using GUESSINGROWS=NO, reading as the first record a character string that defines the length of variables, and then reading the CSV file. The technique can be useful when we do not have the source SAS data sets and are given CSV files, which we have to read and then combine into a single SAS data set |
character variable, proc step, dataset, proc import, numeric variable, proc contents | source | 5 |
| 48 | Q&A with the Macro Maven: Do we need Macros? An Essay on the Theory of Application Development | Ronald J. Fehd | proc step, macro variable, proc freq, proc sql, symbol table, macro facility, macro loop, macro definition, macro put, %if-%then-%else | source | 11 | |
| 49 | Q&A with the macro maven: is sql our lingua franca? | Ronald J. Fehd | proc sql, quality assurance | source | 9 | |
| 50 | Quote the SASLOG | Andrew T. Kuligowski | "For every action, there is an equal and opposite reaction." Sir Isaac Newton was talking about physics, but the concept also applies to other areas of life - including quotation marks in SAS code. Unfortunately, SAS coders do not always properly provide balanced quotation marks while coding. SAS will detect possible occurrences of this problem, signaling its concern with a SASLOG message: WARNING: The quoted string currently being processed has become more than 262 characters long. You might have unbalanced quotation marks. This presentation contains a few coding suggestions to identify unbalanced quotation marks in SAS code |
macro definition, sas base | source | 6 |
| 51 | REDCap: Your SAS Friend For Electronic Health Record Manual Abstraction | Brooke Ellen Delgoffe, Steffani Roush |
This paper and presentation will demonstrate the utility of REDCap during abstraction of electronic health record (EHR) data. By utilizing REDCap, we can structure our abstraction forms to minimize entry errors and save time; all in a way that works well with SAS and allows electronic data transfer using a secure method. REDCap allows SAS to query against it using an API for easy data exchange. This paper will also feature an advanced export macro that automatically downloads the data dictionary and creates a labeled SAS data set (complete with labels and a format library based on the REDCap data dictionary). Special data concerns when using REDCap for housing PHI and methods for interfacing with an EHR will be reviewed with solutions presented | proc http, proc step, data dictionary, macro variable, format statement, dataset, data cleaning, macro call, sample, macro definition, macro conditional | source | 27 |
| 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 | REST API for the Weary Beginner | Jinson J. Erinjeri | API stands for Application Programming Interface which is a mode of communication between programs in order to transfer data. REST is an acronym for REpresentational State Transfer which is nothing but a standard that guides the design and development of p rocesses that enable effective communication be- tween programs. Therefore, in the World Wide Web environment, REST API is used to interact with data stored on web servers. The objective of this paper is to present the basics of REST API's for a novice learner in simple terms coupled with examples of publicly available API. In addition, this paper will present features available in SAS as well as Python for communicating with REST API web services using the same set of examples | rest api, proc http, proc step, web service | source | 11 |
| 54 | SAS Heatmaps in the Analysis of Real Estate Markets | Harshita Budumuru | This paper purposes the use of a heat map model to display dynamic agglomeration and diffusion effects of rising house prices. We study the impact of the Covid-19 pandemic on changes in locations for housing demand. The competition for the housing market saw shifts away from densely populated areas. The pandemic influenced forces such as government intervention, changes in demand, and reductions in supply, all leading to high uncertainty of the current stage of the market. We describe the creation of heat maps as a solution to home buyers and investors | heatmap, proc freq | 16 | |
| 55 | SAS, SAS Coders, and IDEA (Inclusion, Diversity, Equity, Accessibility) | Kelly D. Smith | Fifty years ago, SAS coding was in development at North Carolina State University; the establishment of SAS as a business organization was still in the future. At that time, the American population was over 80% White and less than half of eligible women (43%) participated in the workforce. Fast forward to 2022; the American population is now approximately 60% White and over half of eligible women (56%) are in the workforce. America's population and workforce have changed significantly over the past 50 years. Recently, I started wondering … Where do SAS coders come from? What do they look like? How can SAS and SAS coders support the concepts of inclusion, diversity, equity, and accessibility through their work? Join me on a journey into understanding where SAS is now and where it's headed | data science, artificial intelligence | source | 6 |
| 56 | SaviApp - An Analysis Toolkit for SAS Environments | Alan K. Churchill | SaviApp is the culmination of years of SAS code, log, and dataset analysis. This toolkit, provided to the SAS community, for free, helps to analyze a SAS environment | proc step, proc sql | source | 8 |
| 57 | Simplified Linux SAS Log Comparison: Filtering Differences Into "Useful" and "Useless" Files | Bruce F. Gilsen | SAS log files from two executions of the same program are frequently compared. For example, we might compare today's results to a baseline run we know is correct to test if a change to the SAS release, operating system, external data, our code, or anything else has altered the results. Log file comparisons are often done programmatically, but it's also common to generate a line-by-line comparison with the Linux diff command and eyeball the results. This "eyeball analysis" can be difficult when programs have many steps because the diff output is often cluttered with many records that are useless to most people such as step summaries with real and/or CPU time differences and page headings with date/time differences | cpu time, sas log, temporary array, if-then-else | source | 15 |
| 58 | Standardized, Customized or Both? Defining and Implementing (MedDRA) Queries in ADaM Data Sets | Richann J. Watson, Karl Miller |
Investigation of drug safety issues for clinical development will consistently revolve around the experience and impact of important medical occurrences throughout the conduct of a clinical trial. As a first step in the data analysis process, Standardized MedDRA Queries (SMQs), a unique feature of MedDR A, provide a consistent and efficient structure to support safety analysis, reporting, and also address important topics for regulatory and industry users. A variance in working with SMQs is the ability to limit the scope for the analysis need (e.g., "Broad" or "Narrow") but there is also the ability outside of the specific SMQs in allowing the ability to develop Customized Queries (CQs). With the introduction of the ADaM Occurrence Data Structure (OCCDS) standard structure, the incorporation of these SMQs, along with potential CQs, solidified the need for consistent implementation, not only across studies, but across drug compounds and even within a company itself | lookup, adverse events, clinical trial, sensitivity analysis, sample, data science, cdisc | source | 7 |
| 59 | Statistical Analysis of School Shootings in the United States as Stochastic Terrorism | David J. Corliss | This study presents a longitudinal analysis of school shooting attacks in the United States. Raw data from the US federal CHDS school shooting database was analyzed to exclude suicides, accidents, and threatening actions not resulting in injury. Exploratory data analysis indicates two historical time periods with distinct behaviors. Time series cluster analysis indicated a change in attack behavior about the year 1991: prior to that time, attacks and fatalities were relative few, normally distributed, and show little variation from year to year. Beginning about 1991, a second type of attack pattern is found superimposed on the historical pattern, with both continuing to the present. This second pattern is found to be consistent with stochastic terrorism, characterized by a highly variable annual attack rate , marked increases in deaths and lethality (deaths per incident), and a skewed distribution with a risk of a high number of fatalities driven by a small number of extreme events | time series analysis, cluster analysis, data science, raw data | source | 8 |
| 60 | The Battle of the Titans (Part II): PROC REPORT versus PROC TABULATE | Kirk Paul Lafler, Joshua M. Horstman, Ben Cochran, Ray Pass, Daniel E. Bruns |
Should I use PROC REPORT or PROC TABULATE to produce that report? Which one will give me the control and flexibility to produce the report exactly the way I want it to look? Which one is easier to use? Which one is more powerful? WHICH ONE IS BETTER? If you have these and other questions about the pros and cons of the REPORT and TABULATE procedures, this presentation is for you. We will discuss, using real-life report scenarios, the strengths (and even a few weaknesses) of the two most powerful reporting procedures in SAS (as we see it). We will provide you with the wisdom you need to make that sometimes difficult decision about which procedure to use to get the report you really want and need |
proc step, proc report, proc tabulate, excel, proc means | source | 17 |
| 61 | The PRXMATCH Function: A Perl of Great Price | Lauren Rackley, Joshua M. Horstman |
The PRXMATCH function is one of many hidden pearls in the SAS language. By harnessing the power of Perl regular expressions, PRXMATCH provides rich pattern-matching functionality useful for a variety of tasks involving text data. This paper provides an overview of Perl regular expressions and the PRXMATCH function as well as several examples demonstrating their use. If you work with text data at all, this is a tool you definitely want to have in your toolbox! | prxmatch, prxparse, prxposn, elapsed time | source | 7 |
| 62 | To Lend, or Not to Lend, That Is the Question! Evaluating Loan Application with Machine Learning | Rafae Abdullah, Sucharitha Vallabhaneni, Jaideep Muley |
Have you ever lent money to someone? If yes, you must know how much headache lenders go through when they do not get their money back within the expected time. This is true for any financial institution. The goal of this paper is to apply various machine learning models by using SAS Enterprise Miner in the loan lending process of a peer-to-peer lending company and result in the best approach that can be used by peer-to-peer lending companies to automate the loan acceptance process and by other financial institutions to build a more robust model for them since their amount of lend and amount of information on borrowers is huge. Algorithms such as Decision Tree, Random Forest, Neural Network, and so on were used to find the best alternative to ease the loan lending process. The data set used contains plenty of information about the accounts of the clients and the loans funded in the period from 2007 to 2018 | data mining, missing value, proc hpforest, histogram, machine learning, interest rate, sample, proc freq, data cleaning | source | 17 |
| 63 | Twenty Ways to Run Your SAS Program Faster and Use Less Space | Stephen B. Sloan | When we run SAS programs that use large amounts of data or have complicated algorithms, we often are frustrated by the amount of time it takes for the programs to run and by the large amount of space required for the program to run to completion. Even experienced SAS programmers sometimes run into this situation, perhaps through the need to produce results quickly, through a change in the data source, through inheriting someone else's programs, or for some other reason. This paper outlines twenty techniques that can reduce the time and space required for a program without requiring an extended period of time for the modifications. The twenty techniques are a mixture of space-saving and time-saving techniques, and many are a combination of the two approaches. They do not require advanced knowledge of SAS, only a reasonable familiarity with Base SAS and a willingness to delve into the details of the programs | proc step, dataset, proc sort, numeric variable, by group processing, proc means, character variable | source | 5 |
| 64 | Use of JMP's Prediction Profiler to Predict Outcomes of Acute Spinal Cord Injury | Melvin T. Alexander | For 30 years JMP's Prediction Profiler (JPP) has been the cutting-edge, "secret-sauce" tool for finding optimal settings of predictor, regression factors that impact fitted responses from designed experiments and correlated observational data (Jones, 2021). Aarabi, Alexander et al. (2011) used stepwise regression to identify the key input variables from trauma admission, demographic, injury severity measures from Magnetic Resonance Imaging (MRI), and clinical indicators that impacted the response variables of the American Spinal Injury Association (ASIA) motor scores, Functional Independence Measure (FIM), manual dexterity, and dysesthetic pain (e.g., burning, prickling, or aching) experienced after surgery for trauma patients with acute traumatic central cord syndrome (ATCCS) due to spinal stenosis (spinal-cord narrowing that presses on the nerves passing through the spine) | response variable, predictor variable | source | 9 |
| 65 | Using Parallel Analysis to Determine the Dimensionality of Students' Perspectives of Online Caring | Abbas S. Tavakoli, Kathrine Jones, Phyllis Raynor |
There is a significant body of literature about online learning especially during COVID-19 pandemic. Caring is essential in nursing and in online nursing education. There are several nurse researchers who have studied online faculty behaviors that signal caring to nursing students. The instrument Student Perspectives of Online Caring (SPCO) was created by several leading nurse researchers whose research focuses on faculty caring behaviors. This paper used parallel analysis to determine the dimensionality of Perspectives of Faculty Caring among College of Nursing graduate students. Parallel analysis using a SAS macro and option parallel in PROC FACTOR, was used to determine the dimensionality of the Perspectives of Faculty Caring. Exploratory factor analysis was conducted using maximum likelihood, squared multiple correlations, and Promax rotation |
correlation, proc factor, proc step, factor loading, standard deviation, proc freq, scree plot, factor analysis, pearson correlation, macro definition, regression analysis | source | 12 |
| 66 | Using SAS Data Integration Studio as an effective Data Virtualization Tool | Raj Bhosale | Data Virtualization is a process of merging data from diverse sources/systems to create one or more meaningful data sets that reside in a common location. These data sets aid towards creating dashboards, which can serve as a critical tool for making data-informed decisions. There are several challenges in this process including, but not limited to, data type differences, frequency of data refresh, handling unstructured data, de-normalization and performance overhead. While developing a project that built interactive dashboards in an academia setting, I was able to overcome several of these challenges using SAS Data Integration Studio. Transformations such as Extract, Join, Append, and LASR Analytic Loader along with SAS expressions like PUT, INPUT, SUBSTR and CASE helped me in creating clean data sets, which fed into a SAS Visual Analytics Dashboard | left join, group by | source | 8 |
| 67 | Using SAS Macro and ODS Output to efficiently examine the descriptive and analytic statistics in epidemiology studies | Yue Pan | The key feature of descriptive and analytic epidemiology is a comparison group, i.e. the exposure, and how it is associated with the study interest, i.e. the outcome. Researchers and investigators are required to present the descriptive and analytic statistics of both exposure and outcomes and test their relationship to describe their study sample. However, if there are many exposures and outcomes to examine, the syntax usually become repetitive and hard to navigate and identify useful results. This paper will present how to use SAS macro and ODS output to efficiently examine and generate descriptive and analytic statistics for epidemiology studies. This presentation is aimed at beginner to intermediate SAS programmers and healthcare analysts who already have a basic understanding of SAS Macro and ODS Output and are looking to efficiently examine their data |
proc means, nominal variable, interval variable, kruskal-wallis test, chi-square test, macro definition, normality test, sample, proc step | source | 7 |
| 68 | Using SAS to Geocode Injury-Related Deaths in North Carolina | Bruce Nawrocki, Scott Proescholdbell, Shana Geary, Mike Dolan Fliss |
proc step, dataset, sample | source | 10 | |
| 69 | Using SAS to Prepare Postsecondary Data Partnership (PDP) Data Submission Files | Bobbie J. Frye | Transforming the way a higher education institution measures and reports student progress so that every student can thrive can be bolstered by joining the Postsecondary Data Partnership (PDP) and submitting comprehensive student data to the National Student Clearinghouse. The initial data collection for the PDP is the most time consuming, includes up to five years of data, but the process outlined in this document can be replicated for future data collections. In this paper, several pieces of SAS code were extracted and isolated for illustration purposes. The SAS code can be utilized by beginners or intermediate programmers to prepare files for the PDP. While the PDP equips institutions with accessible reports and visualizations, SAS software provides a flexible roadmap to successful data submissions | put statement, libname statement, macro variable, dataset | source | 12 |
| 70 | Using SQL Dictionaries to Research the Global Symbol Table | Ronald J. Fehd | proc sql, proc step, create table, macro definition, macro variable, &variable, group by, order by, global symbol table, proc format, macro facility, symbol table, proc contents | source | 15 | |
| 71 | Using the Output Delivery System to Create and Customize Excel Workbooks | Joshua M. Horstman | In years past, SAS output was limited to the text-based SAS listing. However, the Output Delivery System (ODS) greatly enhanced the capabilities of the SAS system by allowing users to create highly - customizable output in a variety of document formats, including Microsoft EXCEL workbooks. This paper provides a brief overview of how to use the ODS EXCEL destination to create EXCEL workbooks and how to customize the various visual attributes of the output such as fonts, colors, styles, and much more |
excel, output delivery system, proc step, xls, proc template, proc report, ods excel, by group processing, sas output | source | 7 |
| 72 | Utility Macros to Check for Changes in Macro Variables, Options, or Formats in SAS | Aaron Brown | Imagine a scenario where you create a particular macro variable, set your options as needed, or create formats you need early in a program. Later, you accidentally change one of these settings, which breaks assumptions further down in the program. Such a scenario can be difficult to troubleshoot. This paper introduces three sets of macros that use the metadata SAS creates during a SAS session in order to check if macro variables, options, or formats changed. It utilizes the COMPARE, FORMAT, SQL, and OPTSAVE procedures | macro variable, proc compare, proc step, stored macro, char., sas enterprise guide, proc format | source | 9 |
| 73 | What's Your Favorite Color? Controlling the Appearance of a Graph | Richann J. Watson | The appearance of a graph produced by the Graph Template Language (GTL) is controlled by Output Delivery System (ODS) style elements. These elements include fonts and line and marker properties as well as colors. A number of procedures, including the Statistical Graphics (SG) procedures, produce graphics using a specific ODS style template. This paper provides a very basic back ground of the different style templates and the elements associated with the style templates. However, sometimes the default style associated with a particular destination does not produce the desired appearance. Instead of using the default style, you can control which style is used by indicating the desired style on the ODS destination statement. However, sometimes not a single one of the 50-plus styles provided by SAS achieves the desired look. Luckily, you can modify an ODS style template to meet your own needs. One such style modification is to control which colors are used in the graph |
bar chart, proc template, proc step, sample, series plot, output delivery system | source | 33 |
| 74 | Why Write Base SAS Code When the Macro Processor Can Do It for You | Andrew E. Walker | As SAS programmers, we need to infuse resiliency in our programs while reducing maintenance time and the likelihood of errors caused by faulty logic or typos. The macro processor is another tool in our toolbox to achieve such goals. This paper demonstrates how to use the macro processor to write dynamic Base SAS code with two examples: 1) write a dynamic if/else if statement and 2) bin creation when completing a by-group analysis. This paper concludes with details on how to document resolved macros in the log and export the macro to an output file for documentation | macro variable, if-then-else, proc sql, do loop, sas base, proc step, macro put, &variable, data step, lookup, macro definition | source | 13 |
| 75 | Working with large decimals: how precise is my data with SAS? | Osmel Brito Bigott, Yenireth Gil, María Victoria Daboín |
SAS is a powerful tool for statistical analysis and calculation that makes easier when it comes to manipulating and reporting our data. However, what they have never told us about is what inconveniences can arise when it comes to having to be very precise in the quality of the numerical value of a calculation. In this sense, it is important to understand the ideal way to store numerical data when having an information repository in other storage systems (databases or files) other than SAS. In a project where we used Teradata to store results of historical statistical analysis in SAS we had faced with the question: How precise were numerical values in SAS to store decimals? And how should we upload them to a Tersdata Data Warehouse? It turns out that this answer depends a lot on the operating system where SAS is installed (Windows, Linux). In this paper we want to show the findings we made about the precision of numerical values and how we were able to solve the problem faced | numeric variable, data science | source | 4 |
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