WUSS 2014 Papers - Index
98 papers. Source: WUSS (Western Users of SAS Software) conference proceedings.
| # | Title× | Authors× | Abstract× | Keywords× | Extras | Pages |
|---|---|---|---|---|---|---|
| 1 | %ICD: Using Hash Objects to Separate Records Coded in ICD-9-CM from Records Coded in ICD-10-CM | Eduard Poltavskiy | Starting October 1, 2015, all medical diagnoses and inpatient procedures will be reported using ICD-10 code sets1. During the transition period, organizations and agencies, which are collecting/processing these data, might expect to have a mixture of ICD-9 and ICD-10 coded records reported in a single data set. We developed a SAS macro that uses hash tables (a) to differentiate between ICD-9-CM and ICD-10-CM records reported in such a data set, (b) to assess an 'invalid-code' rate in data with medical diagnoses, and produce a short report. The algorithms of two different methods available in the macro were thoroughly explained in diagrams and an example. An 'invalid-code' rate was assessed using discharge data from the Nationwide Inpatient Sample (NIS), Healthcare Cost and Utilization Project (HCUP), Agency for Healthcare Research and Quality, 2008. | hash table, data cleaning | source | 7 |
| 2 | A Hitchhiker's guide for performance assessment & benchmarking SAS applications | Viraj R Kumbhakarna | Almost every IT department today, needs some kind of an IT infrastructure to support different business processes in the organization. For a typical IT organization the ensemble of hardware, software, networking facilities may constitute the IT infrastructure. IT infrastructure is setup in order to develop, test, deliver, monitor, control or support IT services. Sometimes multiple applications may be hosted on a common server platform. With a continual increase in the user base, ever increasing volume of data and perpetual increase in number of processes required to support the growing business need, there often arises a need to upgrade the IT infrastructure. The paper discusses a stepwise approach to conduct a performance assessment and a performance benchmarking exercise required to assess the current state of the IT infrastructure (constituting the hardware and software) prior to an upgrade. | cpu time, sample, predictor variable, traffic data, proc step, data science | source | 16 |
| 3 | A Practical Approach to Process Improvement Using Parallel Processing | Viraj R Kumbhakarna | In applications which process huge volumes of data for analysis purposes, it is often essential to minimize processing time to increase efficiency. Large data volumes (in the author's experience, row counts of 1.5 million and up to 2500 columns) result in very long processing times of about 4 to 5 days. It is often required to reduce the execution time for such processes. This paper discusses the following generic steps for improving any process. (1) Identify areas for improvement (understand the process thoroughly; analyze logs to identify steps which take the longest amount of time). (2) Look for certain processes that can be executed in parallel (actual parallelization of independent processes executed one after another; automated virtual multithreading; executing multiple instances of jobs in UNIX). | cpu time, transaction data, proc step, dataset, where statement, if-then-else, proc format, proc sort, flat file, key=, parallel processing | source | 16 |
| 4 | A SAS Macro to Produce Summary Statistics Tables Allowing Additional Stratification | Amanda Liu, David E. Tappe |
The majority of tables generated in clinical studies involve the comparison of summary statistics of continuous and/or categorical variables across treatments. There are many published macros that can perform these tasks with both efficiency and accuracy. However, when the needed analysis involves a stratification variable (e.g. study sites) and corresponding p-values adjusted by strata, it can be cumbersome to have to run your code repetitively by strata and then integrate with the overall p-values. In this paper, we introduce a user-friendly macro that not only produces the summary statistics of continuous and categorical data by treatment group, but also provides the flexibility of adding a stratified variable of interest as well as selecting the proper test to use in computing p-values with or without strata as a factor. | macro parameter, proc means, nominal variable, anova, baseline characteristics, proc step | source | 5 |
| 5 | A Statistical and Visual Exploration of the Surveillance, Epidemiology, and End Results (SEER) Database Using SAS | Christopher Yim | Studying the factors affecting the spread and trends of cancer has been a large focus in the medical field for decades. The Surveillance, Epidemiology, and End Results (SEER) Program has collected detailed data on various cancer diagnoses since 1973 and has recorded both epidemiological information as well as population statistics for the United States. This preliminary investigation explores associations between patient characteristics and survival outcomes for patients diagnosed with breast cancer. We take a look primarily at how country of birth and race/ethnicity is associated with clinical characteristics such as stage, grade and recurrence. This paper presents several statistical techniques including survival methods that are explored extensively with PROC LIFETEST and PROC PHREG. In addition we will discuss the examination of the data visually and interpret the survival and hazard rates of varying groups. |
proc phreg, proc step, survival analysis, sample, log-rank test, rank test, sample size, confidence interval, hazard ratio, nominal variable, chi-square test, proc freq, numeric variable | source | 10 |
| 6 | A Survey of Some of the Most Useful SAS Functions | Ronald P. Cody | SAS Functions provide amazing power to your DATA STEP programming. Some of these functions are essential- some of them save you writing volumes of unnecessary code. This paper covers some of the most useful SAS functions. Some of these functions may be new to you and they will change the way you program and approach common programming tasks. |
character variable, missing value, length statement, substr function, input statement, lag function, compress function, sas function, put statement, sysdate9, yrdif, character functions, numeric functions, call missing, call sortn, missing function, if-then-else | source | 16 |
| 7 | Advanced Multiprocessing Techniques for Performance Improvement of SAS Processes | Viraj R Kumbhakarna | In this paper, we will discuss a host of new functionality within SAS software version 9 related to parallel processing. Parallel processing refers to processing that is handled by multiple CPUs simultaneously. This technology takes advantage of hardware that has multiple CPUs, called SMP computers, and provides performance gains for two types of processes: threaded I/O threaded application processing We also explore the use of newer, faster, practically applicable parallel processing techniques supported by SAS software for version 9.2 and later versions that can be used for processing large volume of data in parallel on AIX UNIX as well as windows SAS software environments. We further dwell on identifying ways to break the data to process in parallel, determining number of threads to process in parallel, using SAS MPCONNECT for multithreading and analyzing support for spawning and managing multiple threads. | in=, mp connect, parallel processing, out=, proc step, proc univariate, cpu time, data step, sample, libname statement, macro variable, sas 9, do loop, hypothesis testing, numeric variable, robust statistics | source | 17 |
| 8 | Alert when one is not Alert: SAS Call Sound Function | Amarnath Vijayarangan, Palanisamy Mohan, Vamse Goutam |
Multitasking is the order of the day and many SAS programmers work on multiple tasks simultaneously. For long running programs, the programmer assumes that this particular program might take certain amount of time, but in reality the program might get completed earlier or later than the expected time based on the load on server. The only way a programmer can check the completion of the program is by checking the log intermittently or by setting up an email alert, which can also be missed when the person is working offline. A prompt notification after the execution of the program can help and save lot of time for the programmer. The purpose of this paper is to leverage the functionality of Call Sound function which would help in effective time and resource management . | proc freq, proc step | source | 2 |
| 9 | An Introduction to SAS Hash Programming Techniques | Kirk Paul Lafler | SAS users are always interested in learning techniques that will help them improve the performance of table lookup, search, and sort operations. SAS software supports a DATA STEP programming technique known as a hash object to associate a key with one or more values. This presentation introduces what a hash object is, how it works, the syntax required, and simple applications of it use. Essential programming techniques will be illustrated to sort data and search memory-resident data using a simple key to find a single value. |
hash table, lookup, sas log, composite key, proc sort | source | 8 |
| 10 | Analyzing Alcohol Behavior of San Luis Obispo County | Ariana Montes | Presentation | logistic regression, forest plot | 6 | |
| 11 | Analyzing Phased Interventions with Segmented Regression and Stepped Wedge Designs | Eric C. Wong, Po-Han Chen, Dorothy Hung |
Impact evaluation often requires assessing the impact of a new policy, intervention, product, or service in "real-world", observational, or quasi-experimental situations. Often, these interventions are rolled out in phases at different points over time making them good candidates for stepped wedge designs. Segmented regression is one method for measuring the change in a time series before and after an intervention. In this paper, we propose combining segmented regression and stepped wedge designs to analyze phased interventions over time. Specifically, we propose the use of generalized linear mixed models for a non-randomized, stepped wedged observational study. We start by describing segmented regression for an interrupted time series in 1 location receiving the intervention, then extend the approach to N locations receiving the intervention sequentially over time. Lastly, we discuss accounting for temporal autocorrelation and relevant clustering of individuals within locations. | regression analysis, time series analysis, proc mixed | source | 9 |
| 12 | Are You a Control Freak? Control Your Programs - Don't Let Them Control You! | Mary F. O. Rosenbloom, Arthur L. Carpenter |
You know that you want to control the process flow of your program. When your program is executed multiple times, with slight variations, you will need to control the changes from iteration to iteration, the timing of the execution, and the maintenance of output and LOGS. Unfortunately in order to achieve the control that you know that you need to have, you will need to make frequent, possibly time consuming, and potentially error prone manual corrections and edits to your program. Fortunately the control you seek is available and it does not require the use of time intensive manual techniques. List processing techniques are available that give you control and peace of mind that allow you to be a successful control freak. These techniques are not new, but there is often hesitancy on the part of some programmers to take full advantage of them. This paper reviews these techniques and demonstrates them through a series of examples. | macro variable, macro loop, do loop, proc step, variable list, macro call, proc sql, symbol table, macro put, global symbol table, excel, macro quoting function, label statement | source | 20 |
| 13 | Automate & Shrink SAS Programs Using DO Loops & Macros! | Arun Akkinapalli | In the current competitive world, building an efficient process via automation is need of the hour. Automation can reduce a lot of manual effort and human errors, which in turn will enhance the process efficiency and throughput. SAS has many ways to automate and maintain any given process. Iterative DO loops and macros offer the flexibility to automate a process. At experimentation team, we were able to achieve around 70% reduction in program length and scale down manual errors via automation in our process. | do loop, macro loop, macro variable, txt, proc step, sample, proc sql | source | 3 |
| 14 | Automated Log Analyzer Dashboard | Amarnath Vijayarangan, Palanisamy Mohan |
The importance of validating a SAS program through the generated log file is inevitable. A successful execution would require an ERROR, WARNING and other system message free log. Though, the severity of NOTE or WARNING might not be very high, but there are chances for multiple NOTES or WARNINGS together in a program that can cause severe problems or incorrect results equal to an error message. This means that one needs to carefully review all the logs that have been generated when a program is executed, but a manual review of 1000 + logs becomes taxing and time consuming. To facilitate this we propose a very simple and a graphical solution which would enable any level programmer not to miss out on any system messages that gets generated when N number of programs is executed. | sas log, error message | source | 8 |
| 15 | Automation of Appending Reports: A Sexy New Look | Bill Coar | With a title like this, who won't want to read the abstract? Now that I have your attention, the focus of this paper is the automation of creating a single, well-structured document for electronic review and distribution. Although numerous techniques exist to append reports, there is much room for improvement when creating a single document composed of multiple reports as well as a table of contents directly from SAS. A more attractive approach is considered here. The proposed process takes advantage of external data used to track SAS programming, ODS Document, and PROC DOCUMENT. Generation of the concatenated report requires two primary functions: identification of reports to be appended, and then the actual appending. Many companies already have infrastructure for tracking generation and testing individual reports produced using SAS. Provided SAS can communicate with the tracking component, a list of outputs with the desired sectioning can be obtained. |
proc step, proc report, macro variable, character variable, sample, macro call, excel | source | 14 |
| 16 | Best Practices: Subset Without Getting Upset | Mary F. O. Rosenbloom, Kirk Paul Lafler |
You've worked for weeks or even months to produce an analysis suite for a project, and at the last moment, someone wants a subgroup analysis and they inform you that they need it yesterday. This should be easy to do, right? So often, the programs that we write fall apart when we use them on subsets of the original data. This paper takes a look at some of the best practice techniques that can be built into a program at the beginning, so that users can subset on the fly without losing categories or creating errors in statistical tests. We review techniques for creating tables and corresponding titles with by-group processing so that minimal code needs to be modified when more groups are created, and we provide a link to sample code and sample data that can be used to get started with this process. | proc step, proc means, proc sql, proc format, macro variable, proc freq, standard deviation, class variable, subgroup analysis, missing value, proc report, proc tabulate, by group processing, out=, macro loop, do loop, where statement, nominal variable, sample | source | 17 |
| 17 | Big Data in a Small Trial: Visual and Statistical Analyses in an N-of-1 Clinical Trial | Marie Boman-Davis | Real-time technology based health interventions can generate millions of repeated measures (i.e., big data) for individual cases. However, traditional clinical trials are often unequipped to provide rapid results responsive to the growing demands for personalized medicine. N-of-1 clinical trials (e.g., interrupted time series) have been gaining momentum since repeated measures over varying phases (i.e., conditions) offer strengths of internal validity and external validity when pooled. Furthermore, technology based n-of-1 clinical trials using telemetry provide real-time opportunities to visually and statistically analyze data both to support personalized interventions and to determine intervention effectiveness. This paper will demonstrate how to use SAS 9.4 for both visual and statistical analyses using big data from a small trial. | clinical trial, proc step, regression analysis, repeated measures, proc sgpanel, big data, data science | source | 6 |
| 18 | Breaking Eggs to Make Omelets: Distributing Analytic Effort with Scrambled Datasets | Margaret Warton, Howard Moffet, Andrew Karter |
The protection of Private Health Information (PHI) and Personally Identifiable Information (PII) is of utmost importance in research involving human subjects and has become a barrier to executing collaborative research projects between institutions. We present a method of transforming an analytic dataset into a de-identified dataset with (nearly) all variables intact, but with data randomized such that individual patterns are no longer identifiable. Basic SAS macro language and formats are used to re-order observations by variable or group of variables in the analytic dataset, creating a dataset with the original marginal distributions intact, but randomized conditional distributions. Additional methods are presented for masking geographical data and randomly altering dates using simple SAS commands in the DATA STEP. |
sample, proc step, date variable, macro loop, do loop, proc print, statistical software, proc format, numeric variable, proc means, format statement | source | 11 |
| 19 | Careers in Biostatistics and Clinical SAS Programming: An Overview for the Uninitiated | Justina M. Flavin | In the biopharmaceutical industry, biostatistics plays an important and essential role in the research and development of drugs, diagnostics, and medical devices. Familiarity with biostatistics combined with knowledge of SAS can lead to a challenging and rewarding career that also positively impacts and transforms patients' lives. This paper will provide a broad overview of the different types of jobs and career paths available, discuss the education and skill sets needed for each, and present some ideas for overcoming entry barriers into careers in biostatistics and clinical SAS programming. | clinical trial, sas programming, clinical data, data science, pharma programming, csr, clinical research, clinical sas, biostatistician, statistical software, macro definition, proc sql | source | 5 |
| 20 | Conjunction, What's Your Function?: How PRXCHANGE Saved The Day | Mary F. O. Rosenbloom, Jennifer Mares, Trina Patel |
Perl regular expressions are powerful but not widely used functions available in SAS 9. We used PRXCHANGE to build a comma-separated list, where the last two elements were separated by 'and' rather than a comma. We'll take a quick look at the code that was used to achieve this, identifying the options that were employed and how they worked together to save the day. | character functions, clinical data | source | 5 |
| 21 | Conquering Big Data Analytics Challenges with SAS, Teradata and Hadoop | Tho H. Nguyen, Paul Segal, John Cunningham |
Organizations are faced with the unique big data challenges collecting more data than ever before, both structured and unstructured data. There has never been a greater need for proactive and agile strategies to overcome these struggles in a volatile and competitive economy. Together, SAS and Teradata have joined forces with Hadoop to revolutionize your business by providing enterprise analytics in a harmonious data management platform to deliver strategic insights. This paper discusses how SAS, Teradata with Hadoop are delivering innovation to break through your big data analytics challenges, by exploring the appropriate platforms for the various types of analysis to quickly uncover hidden opportunities. | proc step, big data, teradata, data wrangling, data warehouse, data governance, in-database processing, in-memory analytics, data visualization, proc sql, data mining | source | 10 |
| 22 | DATA Step MODIFY and UPDATE Statements: Do They Preserve Integrity Constraints? | Baskar Anjappan | Programmers frequently receive data from various internal and external sources. It is a good practice to validate the integrity constraints of the data that one receives. Unfortunately, the DATA STEP with SET and MERGE do not preserve constraints. To retain the integrity constraints one must use the appropriate technique. In this paper a sample or base data set is created and IC (integrity constraints) are defined by using PROC DATA SETS. The same base data set is then used to manipulate the data using two different techniques: 1) MODIFY statement in a SAS DATA STEP, 2) UPDATE statement in a SAS DATA STEP. Which - if any - of these methods will preserve the integrity constraints? |
constraint, update statement, sample, modify statement | source | 6 |
| 23 | Dealing with Missing Data in Clinical Trials | Lucheng Shao | It seems inevitable to encounter missing data in clinical trials no matter how perfect the study was designated and how carefully Clinical Research Associates collected the data. However, having missing values in our original clinical database is not the end of the world for our SAS programmers. The focus of this paper will be showing you how to deal with missing data in clinical trials, especially how to improve the way of representing different types of missing data so that the missing information can be taken advantage of in improving reports. This paper does not cover missing data mechanisms or imputation methods. It is intended for readers who are similar with SAS base but not with different types of missing data. | output delivery system, missing value, proc step, character variable, proc print, clinical trial, proc format, date variable | source | 12 |
| 24 | Decision Trees as a Predictive Modeling Method | Gerry Hobbs | Predictive modeling has become an important area of interest for people who in areas such as credit scoring, target marketing, churn prevention, forensic identification, medical diagnosis and fraud detection. The SAS System provides numerous tools that may be used for the prediction of both continuous and categorical response variables, targets in the current lexicon. While there are many different methodologies (neural networks, etc.) used for these purposes, in this presentation I will limit myself to prediction algorithms based on recursive partitioning, commonly called decision trees. There are several widely used tree based algorithms which exist and they are known by the names like; CART, C5.0 and CHAID, among others. Decision trees involve splitting the data into groups by successively dividing the data into subgroups based on empirically derived associations between the response (target) and one or more, usually many more, predictor variables. | proc hpsplit, predictor variable, regression analysis, response variable, sample, validation set, data cleaning, neural network, nominal variable, training set, bootstrap | source | 8 |
| 25 | Delivering Dynamic, Real-Time Reports to MS Office Users as Stored Processes | Sy J. Truong, Carey G. Smoak |
Delivering the right information and at the right time to the right users in large organizations is pivotal and challenging. The analytical reports generated from SAS can distill large volumes of data into impactful information. The delivery of these reports in static forms such as paper or PDF is not suitable for all users. This paper describes the process of transforming traditional SAS programs into stored processes developed in Enterprise Guide (EG) and managed by a SAS metadata server though the use of Management Console. It is then delivered to users within a tool that they are familiar with such as Microsoft EXCEL. It will describe challenges that SAS programmers face adapting their programs to this new platform that differs from the traditional batch SAS programming which they have worked with before. The multiple servers, including additional metadata layers on top of traditional SAS programs and datasets can be difficult for some programmers and statisticians at first. |
access control, sas enterprise guide, dataset, sas management console, sas programmer, excel, macro variable | source | 19 |
| 26 | Delivering SAS Reports and Data to Web Portal | Sy J. Truong | Among many platforms available to deliver SAS reports and data, a web portal is among one of the most optimal ways for many users. Mobile apps or Add-In to MS Office are good alternative ways of getting information to specific users. On the other hand, web browsers remain the easiest and most universal way of delivering information to the majority of users without additional administrative efforts such as installing and maintaining software on the client machine. This paper describes an effective way of getting SAS data and reports to users in a friendly manner enabling a dynamic experience. The methods described in this paper simplify the tasks of administering a web portal for SAS programmers, while maintaining a familiar and intuitive interface for the end user. It describes a project which accomplished this by doing the following: * SAS Macros - SAS Programmer can upload SAS datasets and ODS generated reports through standard macros. |
dataset, sas programmer, macro definition, sas output | source | 9 |
| 27 | Design of Experiments (DOE) Using JMP | Charles E. Shipp | JMP has provided some of the best design of experiment software for years. The JMP team continues the tradition of providing state-of-the-art DOE support. In addition to the full range of classical and modern design of experiment approaches, JMP provides a template for Custom Design for specific requirements. The other choices include: Screening Design; Response Surface Design; Choice Design; Accelerated Life Test Design; Nonlinear Design; Space Filling Design; Full Factorial Design; Taguchi Arrays; Mixture Design; and Augmented Design. Sample size and power plots are available. We give an introduction to these methods followed by examples with factors. | sample size, sample | source | 3 |
| 28 | Design of Experiments (DOE) Using JMP | Charles E. Shipp | Presentation | sample size, sample, conjoint analysis, data science, test set, output delivery system | 16 | |
| 29 | Differences in Functionality of Error Handling Features, SAS Enterprise Guide vs. Batch | Thomas E. Billings | Programmers writing programs that will run in batch and eventually in production often use a number of SAS statements and features to protect permanent data sets and/or for program control - especially for termination on errors. These features include OPTIONS SYNTAXCHECK and ERRORABEND, ENDSAS, and the 4 different versions of the ABORT, %ABORT commands. Here we test how these statements and features function in a multiple-task SAS Enterprise Guide project that runs in a client-server environment. We observe that the functionality is significantly different than in batch, and discuss the implications of these findings. We also discuss step boundaries for code that is system-generated by SAS Enterprise Guide Tasks, and how this can constrain error handling. | sas enterprise guide, sas enterprise guide project, macro variable, abort, exception handling, proc step, options statement | source | 8 |
| 30 | Different Ways of Calculating Percentiles Using SAS | Arun Akkinapalli | Calculating percentiles (quartiles) is a very common practice used for data analysis. This can be accomplished using different methods in SAS with some variation in the output. This paper compares the various methods with their run times which in turn will give good insights for a programmer to choose the suitable option for their scenario. | proc step, create table, cumulative frequency, proc freq, proc sql, proc univariate, proc means, frequency analysis | source | 5 |
| 31 | Don't Let a Bad Date Ruin Your Day: Dealing with Invalid Dates in SAS | Lucheng Shao | As we have to step out of fairy tale land and into reality when we grow up, we can't always expect the input dates to be good. This paper shows you what SAS does when it runs into input dates that are normally good but have now gone bad, and how those problems can be addressed by code. It is intended for readers who are familiar with SAS BASE but not with bad dates. | date variable, sample, cpu time, response variable, missing value, numeric variable, proc step | source | 9 |
| 32 | Efficient Cut-point Estimation and Validation using PROC PHREG | Alan Mitchell | In clinical research, it is important to present results that are easily interpreted by a broad audience. Using dichotomized rather than continuous risk factors in regression models is one way to simplify the interpretation when covariates are not linearly related with the outcome or are ordinal but not quantitative. Methods for covariate dichotomization have been described for censored survival data, but many require multiple passes through the data to assess each potential cut-point. However, an approximation of the log-rank statistic based on cumulative sums of martingale residuals allows consideration of all possible splits in an efficient way. This method can easily be extended to perform an approximate permutation test that provides the analyst with a low-cost internal validation tool. SAS code and simulation studies are presented to demonstrate the utility of the method. | proc step, data cleaning, permutation test, hazard ratio, proc phreg, regression analysis | source | 7 |
| 33 | Enhancing Infrastructure for Growth | Bill Coar, Amber Randall |
Presentation | pharmaceutical industry, excel | 7 | |
| 34 | Expediting Access to Critical Pathology Data | Leanne Goldstein, Rebecca Ottesen, Julie A. Kilburn, Joyce C. Niland |
Abstracting information from pathology notes is often quite cumbersome. Clinical Research Associates and Tumor Registrars typically have to read through all of the diagnosis information and manually enter the data into a database for fields such as tumor size, lymph nodes, and staging. This manual process can lead to data that is subject to interpretation and data entry errors, in addition to the workload burden. In this presentation, we will demonstrate approaches to simplifying data abstraction from pathology reports using various SAS | data mining, dataset, parsing, proc freq | source | 8 |
| 35 | Exploring Phase 1 ADaM Deriving System from SDTM | Yiwen Li | ADaM programming is an essential and challenging part in biometrics delivery, especially for Phase 1 studies with trend of more complex design and tighter timeline. The goal here is to standardize programming deliverables to gain maximum efficiency and consistency. The paper describes automated ADaM Programming Deriving System compliant with CDISC standards to meet the goal. It contains six macros to streamline the process all together: %fetchadam, %atrtpanel, %paramcd, %newvisid, %selfmul, %chg_bl, %atoxicity. With better efficiency, the tool provides user more freedom to check on data instead of manual coding per study, enables efficient variable deriving/labeling process, and make debugging and maintenance easier. What's more, it allows initiate analysis data watching from study early stage since first patient first visit (FPFV). As user starts to implement with the tool, user is going to have clearer mind of ADaM data structure and scientific variable deriving process. | phase i, baseline, cdisc | source | 4 |
| 36 | From a One-Horse to a One-Stoplight Town: A Base SAS Solution to Preventing Data Access Collisions through the Detection and Deployment of Shared and Exclusive File Locks | Troy Martin Hughes | Data access collisions occur when two or more processes attempt to gain concurrent access to a single data set, and represent a common obstacle to SAS practitioners in multi-user environments. As SAS instances expand to infrastructures and ultimately empires, the inherent increased complexities must be matched with commensurately higher code quality standardsi. Moreover, permanent data sets will attract increasingly more devoted users and automated processes clamoring for attention. As these dependencies increase, so too does the likelihood of access collisions that, if unchecked or unmitigated, leads to certain process failure. The SAS/SHARE moduleii offers concurrent file access capabilities, but causes a (sometimes dramatic) reduction in processing speed, must be licensed and purchased separately from Base SAS, and is not a viable solution for many organizations. |
sas base, sysrc, exception handling, macro variable, dataset, macro put, sas library, proc step, automatic macro variable, permanent library, likelihood function | source | 15 |
| 37 | Fuzzy Bootstrap Matching | Dale Harrington | This paper discusses techniques for merging data files where no key field exists between the files. The paper will illustrate an approach to resolve two issues which are common to most fuzzy matching techniques: 1) how to weight proxy identifier fields, and 2) how to measure the Type One and Type Two errors of the merge estimation algorithm. The article will use a recent application of these techniques to illustrate the fuzzy bootstrapping process. | sample, regression analysis, bootstrap, response variable, likelihood function, logistic distribution, predictor variable, monte carlo, proc logistic, unique key, type ii error, logistic regression, proc step | source | 9 |
| 38 | Generation Data Groups and their Data Set Metadata (AKA Dropping Bread Crumbs). | Jess Watkins | Have you ever wanted to store a short tag and a longer comment with each unique version of a Generation Data Group (GDG)? Have you ever wanted to see a chronological list of all data sets within a GDG showing the complete name with "#nnn", creation date and current relative position number? These information items can be added or are already available in the data set metadata contained in DICTIONARY.TABLES. The presenter will show how GDG's are initiated and documented with descriptive metadata. Then a macro will be shown to access the metadata information. Finally the presenter will discuss changes in 9.4 to allow further Extended Data Set Attributes. Generation Data Group - background Beginning with version 7 SAS has offered Generation Data Group (GDG) support to provide automatic "archiving" of prior versions of a data set. The programmer initiates and specifies the number of versions to be saved with the GENMAX= option. | proc step, proc sql, macro variable, proc contents, where statement, select | source | 11 |
| 39 | Getting Up to Speed with PROC REPORT | Kimberly J. LeBouton | Learning the basics of PROC REPORT can help the new SAS user avoid hours of headaches. PROC REPORT can often be used in lieu of PROC TABULATE or DATA _NULL_ reporting--two areas that have driven the new SAS user crazy!!! With the added capabilities of ODS, PROC REPORT can look as sharp as an EXCEL report. This paper will show how to use PROC REPORT in both a windowing and non-windowing environment using SAS Version 9. |
proc report, proc step, proc print, proc tabulate, proc means, variable | source | 8 |
| 40 | Getting Your Hands on Reproducible Graphics | Rebecca Ottesen, Leanne Goldstein |
Learning the SAS Graph Template Language (GTL) may seem like a daunting task; however, creating customized graphics with SAS is quite easy through many of the tools offered with Base SAS software. The point-and-click interface of ODS Graphics Designer provides us with a tool that can be used to generate highly polished graphics and store the GTL based code that creates them. This opens the door for users who would like to create canned graphics that can be used on various data sources, variables and variable types. In this Hands-On Training we will explore the use of ODS Graphics Designer to create sophisticated graphics and save the template code. We will then discuss modifications using basic SAS macros in order to create stored graphics code that is flexible enough to accommodate a wide variety of situations. |
proc step, macro variable, scatter plot, bar chart, histogram, proc template, box plot, macro definition, proc univariate, numeric variable, regression analysis, proc means, proc freq, nominal variable, odds ratio, kaplan-meier plot, time series analysis | source | 17 |
| 41 | How can I simplify ETL when I only have Base SAS | Steve Cavill | Base SAS has been used for decades to copy data from source database systems to create tables for analysis and reporting. Probably billions of lines of Base SAS code have been written for that purpose. Maintaining that code to account for table definition changes can be error-prone and tedious. SAS Data Integration Studio (DI Studio) is a robust tool to automate the creation and maintenance of that type of code. But what if you don't have DI Studio? This paper presents a method for using a data dictionary to automatically build the SAS code required for the task of moving and transforming data from source to target tables. Maintenance then becomes a simple matter of modifying the data dictionary, without needing to modify SAS code. This results in faster turnaround and less mistakes. The paper includes a set of SAS utility macros that are used in the automatic ETL code creation. | create view, dictionary tables, data dictionary, proc step, proc sql, sas base, in=, out=, macro definition, create table, sas data integration studio, error message, raw data | source | 15 |
| 42 | How to Use Proc Tabulate - Hands-on workshop | Tasha Chapman | The purpose of this paper is to acquaint the reader with the basics of PROC TABULATE syntax. By the end of this paper, you should know how to create a basic table, use formats in your table, change headers and data labels, add row and column totals, and implement basic statistics. The following examples were originally created using SAS version 9.1.3. The output was created using ODS PDF in the SASweb style. Getting started - the basics of PROC TABULATE Before delving into the complexities2 of PROC TABULATE, let's break this procedure down to the bare bones. The simplest PROC TABULATE includes a Class statement and a Table statement. The Class statement tells SAS which variables you are going to be using in the table to categorize your observations (such as Male/Female, Yes/No, Tall/Medium/Short, etc.). Any variable that will be used for categorization in your table must be in the Class statement |
proc tabulate, proc step, class variable, missing value, proc report, format statement | source | 12 |
| 43 | Intervals, Enhanced | 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 will 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. | sysdate9, missing value, date variable, time series analysis | source | 12 |
| 44 | It's Simpler than You Think: An example of a Patient Summary Report generated using SAS and ODS PDF | Julie A. Kilburn | proc step, proc report, ods pdf, proc transpose | source | 8 | |
| 45 | JMP Visual Statistics | Charles E. Shipp | For beginners, we review the continuing merging of statistics and graphics. Statistical graphics is the forte of JMP software and the JMP team pioneered the way for SAS Visual Analytics. Moving forward into Version 11, JMP has easy navigation, a graph builder, advanced algorithms in 85 platforms, and robust statistics you can trust. For olde-timers, we celebrate JMP success and discuss evolving and emerging developments, which we saw at the JMP Discovery Summit 2013 with the new Design of Experiments additions and other additions to JMP Version 11. New also is the entry of the 12th platform for experimental design, the Definitive Screening Design, adding selected midpoints. Many of the views will be shown in the presentation, and a lively discussion will continue in the hallway! | correlation, quality control | source | 7 |
| 46 | LEADS AND LAGS: HANDLING QUEUES IN THE SAS DATA STEP | Mark Keintz | From stock price histories to hospital stay records, analysis of time series data often requires use of lagged (and occasionally lead) values of one or more analysis variable. For the SAS user, the central operational task is typically getting lagged (lead) values for each time point in the data set. While SAS has long provided a LAG function, it has no analogous "lead" function - an especially significant problem in the case of large data series. This paper will (1) review the lag function, in particular the powerful, but non-intuitive implications of its queue- oriented basis and (2) demonstrate efficient ways to generate leads with the same flexibility as the lag function, but without the common and expensive recourse to data re-sorting. | lag function, set statement, time series analysis, by group processing, missing value | source | 12 |
| 47 | List Processing Macro Call-Macro | Ronald J. Fehd | macro variable, %if-%then-%else, macro loop, macro put, proc step, proc freq, macro call, macro definition, proc print, macro quoting function, macro function, macro flow control | source | 19 | |
| 48 | Macro Design Ideas: Theory, Template, Practice | Ronald J. Fehd | macro function, full join, %if-%then-%else, macro variable, proc freq, macro loop | source | 21 | |
| 49 | Macro free automation to identify and drop variables with all values as missing | Amarnath Vijayarangan, Vamse Goutam |
Missing values do have a vital role to play in handling data either numeric or character. Especially when a variable is completely missing it taxes the execution speed and also the space that the dataset occupies. However, if we are able to identify these missing variables even before the analysis or study and drop them it would significantly increase the execution speed and would also save a good impactful amount of space in the server. There are several solutions to this problem, but this paper introduces a macro free automation to identify and then drop the completely missing variables, as any use of macros or even a simple PROC FREQ would run into a risk of either a complete failure or slowdown of the process due to insufficient macro length or numerous levels in the dataset. |
proc step, missing value, character variable, data step, proc freq, proc format, proc means, numeric variable, user-defined format | source | 5 |
| 50 | Macros to Manage your Macros? | Garrett Weaver | SAS currently offers several methods for users to store and retrieve user-generated macros. The stored macro compiled facility is one such method that allows users to store a macro, along with the source code, to a location of their choice. To more effectively utilize the stored compiled macro facility, we developed a solution that enables a user to upload, delete, and search for macros generated by multiple users in a common directory. Along with presentation of this solution, we intend to highlight a number of coding techniques with uses beyond this particular example. Techniques include user management, automatic creation and deletion of files, regular expressions, use of PROC REPORT, and a number macro development techniques. Through the implementation of these macros, an organization can increase collaboration and code reuse without ever having to leave the SAS environment. |
macro facility, libname statement, macro variable, options statement, autocall macro, stored macro, proc step, regression analysis, macro definition | source | 12 |
| 51 | Markov Chain Model Forecast for Interrelated Time Series Data Using SAS/IML | Gongwei Chen | In forecasting, there are often situations where several time series are interrelated: components of one time series can transition into and from other time series. A Markov chain forecast model may readily capture such intricacies through the estimation of a transition probability matrix, which enables a forecaster to forecast all the interrelated time series simultaneously. A Markov chain forecast model is flexible in accommodating various forecast assumptions and structures. Implementation of a Markov chain forecast model is straightforward using SAS/IML. This paper demonstrates a real world application in forecasting community supervision caseload in Washington State. A Markov model was used to forecast five interrelated time series in the midst of turbulent caseload changes. This paper discusses the considerations and techniques in building a Markov chain forecast model at each step. Sample SAS code is provided. |
markov chain, time series analysis, sensitivity analysis, sample | source | 10 |
| 52 | Not All Equals are Created Equal: Nonstandard Statement Structures in the DATA Step | Arthur L. Carpenter | The expression is a standard building block of logical comparisons and assignment statements. Most of us use them so commonly that we do not give them a second thought. But in fact they definitely do deserve that second thought. A more complete understanding of their construction and execution can greatly expand our ability to more fully take advantage of this fundamental component of the SAS Language. Once we understand the basic form of the expression and how it is used in various statements, we can use this understanding to create statement forms that would otherwise appear to be illegal or just plain wrong. Further and perhaps even more importantly this deeper understanding can help to prevent us from committing errors in logic. | if-then-else, do loop, missing value, macro facility, macro variable, sign, conditional do loop | source | 10 |
| 53 | Options in Estimating Nonlinear Mixed Models: Quadrature points and Approximation Methods | Nate Smith, Shelley A. Blozis |
Nonlinear mixed models provide a flexible means for the analysis of repeated measures data and allow both fixed and random effects to enter a model nonlinearly. Structured latent curve models, an alternative to nonlinear mixed models, allow researchers to account for individual variability in longitudinal responses through the use of individual latent curves that may vary from the mean response curve. Given a set of empirical learning data, this paper evaluates the different estimating procedures available to researchers using the PROC NLMIXED option in SAS, and under a variety of conditions. These conditions include the 4 different integral approximations (GAUSS, FIRO, HARDY, and ISAMP) available in PROC NLMIXED. Within each estimating procedure the effect of the number of quadrature points (1, 5, 10, 20, 30) used adaptively and non-adaptively on parameter estimates and processing speed is tested. |
estimate, proc mixed, proc step, cpu time, likelihood function, sample, proc calis, maximum likelihood estimation | source | 7 |
| 54 | Paperwork Without Tears: Completing Your Reporting Requirements in 10 Easy Steps | AnnMaria De Mars | A common complaint of employers is that educational institutions do not prepare students for the kinds of messy data and multi-faceted requirements that occur on the job. No organization has data that resembles the perfectly scrubbed data sets in the back of a statistics textbook. The objective of the Annual Report Project is to quickly bring new SAS users to a level of competence where they can use real data to meet real business requirements. Many organizations need annual reports, whether for stockholders, funding agencies, donors, or at the department/division level for an internal audience. Being tapped as part of the team creating an annual report used to mean weeks of tedium poring over columns of numbers in 8-point font in (shudder) EXCEL spreadsheets - but no more. |
proc step, proc freq, proc corr, proc import, sas studio, length statement, character functions, correlation, proc means, proc gchart, frequency analysis, attrib statement, character variable, filename statement, index, libname statement, proc datasets, excel, input statement | source | 17 |
| 55 | Parallel Data Preparation with the DS2 Programming Language | John Cunningham, Tho H. Nguyen |
A time consuming part of statistical analysis is building an analytic data set for statistical procedures. Whether it is recoding input values, transforming variables, or combining data from multiple data sources, the work to create an analytic data set can take time. The DS2 programming language in SAS 9.4 simplifies and speeds data preparation with user-defined methods, storing methods and attributes in shareable packages, and threaded execution on multi-core SMP and MPP machines. | proc sql, by group processing, parallel processing, proc step, elapsed time, data wrangling, proc transpose, teradata | source | 11 |
| 56 | Particle Swarm Optimization in SAS | Gregory Watson | Particle swarm optimization (PSO) is a powerful, nature-inspired, population-based optimization algorithm. Inspired by the behavior of flocks of birds searching for food sources, PSO seeks the optimal location in a search space using a population (swarm) of particles that collaborate to rapidly identify minima (or maxima). It makes few assumptions and performs very well on a wide range of problems, including high-dimensional problems and some that are very difficult or impossible using classic numerical optimization techniques. It has been successfully employed in a variety of settings, but it is not well known among statisticians. This paper provides an accessible introduction to PSO for SAS users, including simple examples, and demonstrates a flexible SAS Macro that can handle optimization problems in many dimensions. | proc fcmp, dataset | source | 7 |
| 57 | Point-and-Click Programming Using SAS Enterprise Guide | Kirk Paul Lafler, Mira Shapiro |
SAS Enterprise Guide empowers organizations exploiting the power of SAS by offering programmers, business analysts, statisticians and end-users with powerful built-in wizards to perform a multitude of reporting and analytical tasks, access multi- platform enterprise data sources, deliver data and results to a variety of mediums and outlets, perform important data manipulations without the need to learn complex coding constructs, and support data management and documentation requirements quickly and easily. Attendees learn how to use the graphical user interface (GUI) to access tab-delimited and EXCEL input files; subset, group, and summarize data; join two or more tables together; flexibly export results to HTML, PDF and EXCEL; and visually manage projects using flowcharts and diagrams. |
excel, sas enterprise guide, dataset, proc means, data governance, delimited file, sas output, proc sql | source | 18 |
| 58 | Practice Pattern Instrumental Variables for Comparative Effectiveness | Carol Conell, Alexander C. Flint |
Selection bias is a major problem limiting comparative effective studies (CES) using observational data. Fortunately, instrumental variable regression provides an excellent way to address this problem if one can identify good instrumental variables. Since clinical data is routinely collected in many healthcare settings, variation in health care providers' practice patterns can often function as instruments to identify the relative efficacy of alternative practices. This can work well provided uncertainty about the utility of specific treatments induces variation among high quality practitioners. This paper provides a practical guide to using electronic health record (EHR) data to create appropriate practice pattern instrumental variables. | instrumental variables, macro variable, regression analysis, relative risk, macro loop, confidence interval, likelihood function, proc step, proc reg, normal distribution, response variable, residual, macro definition, correlation, logistic distribution | source | 15 |
| 59 | PROC COMPARE: What Did I Inadvertently Change? | Melissa R. Pfeiffer | SAS PROC COMPARE is a valuable tool to use for comparing specific variables within a single data set, all variables across two different data sets, or specific variables across two different data sets. For example, when working with new functions for the first time, you may want to verify the results of the code against those generated by code you have used previously and are familiar with. Similarly, when revising inherited code for efficiency, it can be helpful to compare a data set resulting from the new code with a previously generated data set. Information generated by PROC COMPARE includes the number of variables and observations in each data set, the number of variables and observations with unequal values, and displays of specific value differences, which can be extremely helpful in verifying that values have not inadvertently changed. |
proc compare, proc step, variable list, by group processing | source | 10 |
| 60 | Programming With CLASS: Keeping Your Options Open | Arthur L. Carpenter | Many SAS procedures utilize classification variables when they are processing the data. These v ariables control how the PROCEDURE FORMS groupings, summarizations, and analysis elements. For statistics procedures they are often used in the formation of the statistical model that is being analyzed. Classification variables may be explicitly specified with a CLASS statement, or they may be specified implicitly from their usage in the procedure. Because classification variables have such a heavy influence on the outcome of so many procedures, it is essential that the analyst have a good understanding of how classification variables are applied. Certainly there are a number of options (system and procedural) that affect how classification variables behave. While you may be aware of some of these options, a great many are new, and some of these new options and techniques are especially powerful. You really need to be open to learning how to program with CLASS. |
proc step, missing value, proc freq, proc report, proc means, proc tabulate | source | 15 |
| 61 | Quick Analysis and Visualization of Excluded and Missing Data | Polina Kukhareva | Excluding data from statistical analysis is a dangerous process. Are data missing completely at random (MCAR)? How many data points will I lose if I exclude all observations with missing age? These and many other questions an analyst should ask before deleting any data. This paper discusses a way to simplify the analysis of excluded data. There are several reasons why the analyst might need to exclude a subset of data in clinical research. For example, observations might need to be excluded because they don't meet the inclusion criteria of a particular clinical study . Alternatively excluding observations with missing data might allow easier comparisons of different linear, logistic, or survival models. This article describes a macro that makes producing analyses and visualization of excluded data fast and easy. | missing completely at random, missing value, clinical trial, data science | source | 9 |
| 62 | Quick Tips on Powerful use of Arrays | Rahul Pillay | Have you had to perform repetitive calculations or create multiple variables with hundreds of 'If-Then' statements? Are some of your data manipulation codes extremely daunting and time consuming? Maybe, you would like to learn of a more efficient way to restructure your data. This paper will introduce Arrays to your DATA STEP. Arrays are efficient, easy to use and reduce the amount of code in any given DATA STEP. We will discuss how one-dimensional Arrays can be useful in performing repetitive calculations, creating multiple variables and restructuring your data. |
array, do loop, proc transpose, proc step, numeric variable, character variable, output | source | 8 |
| 63 | Reanalysis of Ecological Data from the 1989 China Study Using SAS Enterprise Guide | Thomas E. Billings | The China Studies are a series of large-scale ecological and epidemiological studies conducted in China in the 1980's, with Taiwan added in 1989. Over 600 parameters were captured and most raw data are in the form of averages for up to 69 counties. The data are freely available online. We import the 1989 data into SAS Enterprise Guide, clean/transform it, and validate against the published data. The metadata are also imported. Simple analyses are demonstrated using the data: correlations, Hoeffding's D statistic, partial correlations, regressions, etc. The Correlation Task is used to create a large correlation matrix for all 639 variables in the study, which is then unrolled and reformatted for reporting. | correlation, raw data, pearson correlation, sas enterprise guide, significance level, sample, proc princomp, proc step, proc corr, excel, normal distribution, scatter plot, macro facility, partial correlation, macro definition, data science, missing value, dataset, macro loop, histogram, regression analysis | source | 17 |
| 64 | Reassigning character variable lengths across multiple datasets for Efficiency and Consistency | Srinivas Vanam, Phaneendhar Reddy Vanam, Mahipal Vanam |
This paper presents a macro which reassigns the lengths of character variables across multiple datasets present in a library for Efficiency and Consistency. | character variable, length statement, create table, proc step, proc sql | source | 7 |
| 65 | Recruiting for Retention | Kathy Greer, John Reilly |
Recruiting in the hopes of identifying and retaining highly qualified staff becomes more difficult each year. Since DataCeutics' is a Full Service Provider, our staff is placed in many highly visible positions throughout our clients. Following a process that eliminates applicants that cannot function independently and produce high level deliverables is critical. We follow a proven process to hire employees. The process includes determination of communication skills, following directions, abstract thinking, and understanding of clinical statistical programming by a verbal discussion and programming, and lastly a background check. The applicant speaks with at least three staff who determines the possibility of a fit within our company. This paper will go into detail on each step followed during the hiring process. | dataset, clinical programming | source | 4 |
| 66 | Reporting MDM Data Attribute Inconsistencies for the Enterprise Using DataFlux | Ernesto Roco | The purpose of this paper is to demonstrate how we use DataFlux "Data Management Studio Platform" to provide our organization with a tool that at an entity record and attribute level, identifies inconsistencies between the MDM (Master Data Manager) master data when compared against the same entity record existing from other source contributor systems. For this conference, I want to share several key aspects of our design. With our design, we made possible a weekly data inconsistency report for millions of MDM cluster records within an enterprise MDM implementation, without significant overhead and development effort required. First, we believe that our design, with its metadata driven approach, can be modeled as a template for other organizations looking to implement the same capability for their enterprise MDM. Second, with the use of parallel processing nodes to maximize the utilization of available processing power, we have been able to significantly reduce overall processing time. | parallel processing, master data management, proc sql, cpu time | source | 10 |
| 67 | SAS and Teradata: Innovators and Leaders for Big Data Analytics | Tho H. Nguyen, John Cunningham |
SAS and Teradata have been strategic partners for over 7 years. Together, we are leaders and innovators providing organizations the ability to run and optimize key aspects of SAS solutions and analytic processes within the Teradata platform. By integrating and optimizing SAS with the Teradata data warehouse, SAS users can accelerate time to insight and maximize business impact so that you can have the BEST answer NOW. Our partnership is delivering innovation to over 200 joint customers by optimizing SAS analytics in Teradata with our integrated offers and solutions for business and IT. | data warehouse, aml, credit risk, credit scoring, machine learning, data cleaning | source | 4 |
| 68 | SAS Certification as a Tool for Professional Development | Andra Northup, Susan J. Slaughter |
In today's competitive job market, SAS certification can set you apart from the crowd. Designed in tracks - programming, analytics, BI, data management, and platform administration - each SAS certification requires the successful completion of one or more exams. Many people are entering the field of "Big Data". Earning the only globally-recognized credential endorsed by SAS can validate your knowledge level in this growing area. This paper will provide information about the 'why' and 'how' of certification. | sas consultant, sas 9, sas base, sas programmer, raw data, input statement, dataset, date variable, proc freq | source | 11 |
| 69 | SAS Debugging 101 | Kirk Paul Lafler | As a SAS user, you've probably experienced first-hand more than your share of program code bugs, and realize that debugging SAS program errors and warnings can, at times, be a daunting task. This paper and presentation explores the world of SAS errors and warnings, provides important information about syntax errors, input and output data sources, system-related default specifications, and logic scenarios specified in program code. Attendees will learn how to apply effective techniques to understand, fix, and resolve errors and warnings, allowing program code to work as intended. | sas log, options statement, data cleaning, hash table, proc step, mprint | source | 13 |
| 70 | SAS DICTIONARY: Step by Step | Patrick Thornton | This paper offers a step by step visual review of SAS 9.2 DICTIONARY tables for the beginning to intermediate SAS user who is generally unfamiliar with PROC SQL and macro programming. The content of the DICTIONARY tables, such as data set names, variable names, labels, and types, option names and values, titles and footnotes, format and macro program catalog entries, and external file and library paths, is visually explored using common procedures and SASHELP views. The paper demonstrates that DICTIONARY is easily accessible, reviews in plain terms many valuable uses of DICTIONARY, shows some alternative techniques for obtaining metadata when applicable, and directs users to papers that feature advanced techniques using DICTIONARY. |
proc step, proc print, proc contents, sashelp, data step, macro variable, proc tabulate, excel, dictionary tables, work library, libname statement, options statement, proc report, where statement, macro definition, proc sql, call execute, index | source | 22 |
| 71 | SAS Essentials I (or How I Learned to Stop Worrying and Love SAS) | Tasha Chapman | proc step, proc freq, proc print, sas output, txt, run, comment statement, dataset, proc means | source | 13 | |
| 72 | SAS Essentials II (or How to Train Your SAS Data Sets) | Tasha Chapman | proc step, if-then-else, merge statement, where statement, proc sql, proc append, in= option, inner join, subsetting if, proc sort | source | 12 | |
| 73 | SAS Essentials III (or How to Succeed in SAS Without Really Trying) | Tasha Chapman | proc step, format statement, datepart, compress function, put statement, character functions, input statement, proc format, substr function, proc print, numeric functions, upcase function, date variable | source | 15 | |
| 74 | SAS In-Database Analytics for Teradata: Stop the Data Movement | Tho H. Nguyen, Paul Segal |
In-database analytics refer to the integration of advanced analytics into the data warehousing. With this capability, analytic processing is optimized, to run where the data reside, in parallel, without having to copy or move the data for analysis. Many analytical computing solutions and large databases use this technology because it provides significant performance improvements over the traditional methods. Thus, in-database analytics have been adopted by many SAS business analysts who have been able to realize the benefits of streamlined processing and increased performance. With SAS in-database analytics for Teradata, SAS users have the ability to prepare the data, develop complex data models and score the model in the data warehouse. By doing so, it removes the need to either move or extract the data to a SAS environment or convert the analytical code to something that could be executed on the data platform. | proc step, in-database processing, data wrangling, data mining, sql pass-through, macro definition, macro facility, proc sql | source | 4 |
| 75 | SAS In-Memory Analytics: Beyond Foundation SAS | John Cunningham, Tho H. Nguyen |
In-memory analytics help to analyze large volumes of data in-memory with SAS High-Performance Analytics (HPA) products and SAS Visual Analytics. This latest innovation provides an entirely new approach to tackle big data by using an in-memory analytics engine to deliver super-fast responses to complex analytical problems. It is a set of products beyond SAS Foundation technologies to explore and develop data models using all of your data. Jointly developed with SAS, the Teradata Appliance for SAS High-Performance Analytics, Model 720 eliminates the need to copy data to a separate appliance with dedicated SAS nodes for in-memory processing. This paper explains the in-memory analytics process and how the Teradata Appliance for SAS extends the analytic capabilities of the Teradata environment. | in-memory analytics, big data, parallel processing, teradata, data standard | source | 4 |
| 76 | SAS Macros for Standard Incidence Ratio Calculation | Natalia V. Udaltsova, Michael Silverberg |
Standard (or standardized) Incidence Ratio (SIR) is a measure showing how much the incidence rate in a cohort of interest is different from "standard" population-based incidence rate. We present a set of SAS macros performing all necessary calculations: population-based incidence rates matrix, cohort follow-up matrix, SIR, confidence limits for SIR. SIR is calculated as a ratio of number of observed incidence cases in a cohort of interest to number of expected cases. Number of expected cases is based on "standard" population-based incidence rates matrix and cohort follow- up time matrix by age-sex-calendar year groups. Each expected value is calculated as sum of products of population incidence rate by cohort follow-up time in years obtained separately for each age-sex-calendar year matrix cell. | calendar year, confidence interval, format statement, macro definition | source | 11 |
| 77 | Set Yourself Free - Use ODS Report Writing Technology in SAS Enterprise Guide Instead of Dynamic Data Exchange in PC SAS | Robert Springborn | The ability to prepare complex reports and convey your message in a clear and concise manner is an absolute imperative in today's sophisticated business environment. Clearly designed reports can enhance your organization's credibility and reputation. The traditional use of Dynamic Data Exchange (DDE) to produce custom designed reports is the result of widespread and popular use of Microsoft EXCEL. However with most business organizations transitioning to SAS Enterprise Business Intelligence (EBI), where DDE is not compatible, ODS Report Writing technology is a powerful alternative to create custom designed reports in Adobe as a secured "pdf" file. |
excel, clinical data, dataset, sas enterprise guide, business intelligence, sample | source | 12 |
| 78 | Set Yourself Free - Use ODS Report Writing Technology in SAS Enterprise Guide Instead of Dynamic Data Exchange in PC SAS Part II SAS Code Revealed | Robert Springborn | The ability to prepare custom designed reports and convey your message in a clear and concise manner is very important in today's sophisticated business environment. Easy to read clearly designed reports can enhance your organization's credibility and reputation. Traditional use of Dynamic Data Exchange (DDE) in PC SAS to produce custom designed reports is the result of widespread and popular use of Microsoft EXCEL. However with most business organizations transitioning to SAS Enterprise Business Intelligence (EBI), where DDE does not function, ODS Report Writing technology is a powerful alternative to create custom designed reports in SAS Enterprise Guide. The driving force for this topic was the need to create hospital level data discrepancy reports which compare California CABG Outcome Reporting Program (CCORP) clinical data, to OSHPD's hospital administrative data, to verify risk factors used in a risk-adjusted operative mortality model. |
excel, sas enterprise guide, dataset, business intelligence, clinical data, output delivery system, macro definition | source | 21 |
| 79 | Suggestions for Writing Better SAS User Group Papers | Thomas E. Billings | Where do the ideas for SAS-related papers come from? How does a tentative topic idea evolve into a paper? What are some common errors to avoid when writing a paper? Is redundancy of topic a concern? Are SAS User Group conferences the only venues to publish papers on SAS-related topics? Is there a role for SAS in the fast-growing reproducible research movement? Publishing is currently (2014) undergoing rapid change in our digital world; how might that impact SAS-related papers? These topics and more are covered in this article. The focus of this article is on writing papers; presentations are only briefly mentioned. | sas base, sample, proc step | source | 8 |
| 80 | Table Lookup Techniques: From the Basics to the Innovative | Arthur L. Carpenter | One of the more commonly needed operations within SAS programming is to determine the value of one variable based on the value of another. A series of techniques and tools have evolved over the years to make the matching of these values go faster, smoother, and easier. A majority of these techniques requir e operations such as sorting, searching, and comparing. As it turns out, these types of techniques are some of the more computationally intensive, and consequently an understanding of the operations involved and a careful selection of the specific technique can often save the user a substantial amount of computing resources. Many of the more advanced techniques can require substantially fewer resources. It is incumbent on the user to have a broad understanding of the issues involved and a more detailed understanding of the solutions available. | set statement, hash table, by group processing, merge statement, lookup, proc step, proc sql, data merging, proc format, key=, select, if-then-else, length statement, proc sort, index, dataset, key, conditional do loop | source | 11 |
| 81 | Take a Macro Break from ODS-Generated Section Breaks in RTF Files | Faith Beery, Ginny Sen |
One of the many capabilities of SAS is to create Rich Text Format (RTF) files containing statistical displays that are compatible with word processing applications. This is useful because RTF files can be created with minimal to no back-end formatting. RTF files also have the ability to contain output generated by multiple tables/procedures. One common concern with this functionality is that SAS automatically inserts a section break in the RTF file between each procedure and between each table within procedures. Both continuous and next page section breaks may be inserted and then can ruin page layout and format settings when subsequently editing the document or compiling multiple RTF files with word processing applications. The STARTPAGE= option in ODS controls the next page section break, but it's much harder to manipulate the continuous section break. This paper will present three different macros that will remove the automatic section breaks generated by SAS ODS. |
macro definition, ods rtf | source | 6 |
| 82 | 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, and this presentation will give you a solid base for working with dates and times in SAS. It will also introduce you to functions and features that will enable you to manipulate your dates and times with surprising flexibility. This paper will also show you some of the possible pitfalls with dates (and times and datetimes) in your SAS code, and how to avoid them. We'll show you how the SAS System handles dates and times through examples, including the ISO 8601 formats and informats, how to use dates and times in TITLE and/or FOOTNOTE statements, and close with a brief discussion of EXCEL conversions. |
sysdate9, date variable, macro variable, excel, flat file, proc format, error message, proc step, missing value, user-defined format, character variable, input statement, numeric variable, time., macro function | source | 17 |
| 83 | The Evolution of SAS Programs Used to Analyze Judicial Salaries | Humberto Cisneros, Carrin Huff |
This paper discusses how SAS programs used to calculate Arizona judicial productivity credits have evolved into analysis tools. A SAS program developed over 15 years ago to produce Justice of the Peace productivity credits has been modified over time to increase the efficiency of generating the necessary data and the format of the results. Justices of the Peace in Arizona are judges in courts of limited jurisdiction. The case types these judges adjudicate vary widely, from felonies to civil traffic violations, such as speeding. Based on Arizona law, justices of the peace are compensated using a complicated mathematical formula, along with pay categories based on a percentage of a superior court judge's salary. The formula, based on the number of cases fil ed in each justice court, is then translated into what is called "judicial productivity credits". The Supreme Court uses SAS to run calculations on a biannual basis to determine the judicial productivity credits for each court . | calendar year, proc sort, proc step, macro variable | source | 12 |
| 84 | The SAS Hash Object in Action | Paul M. Dorfman | In SAS Version 9.1, the hash table - the very first object introduced via the DATA STEP Component Interface in Version 9.0 - has finally become robust and syntactically stable. The philosophy and application style of the hash objects is quite different from any other structure ever used in the DATA STEP before. The most notable departure from the tradition is their run-time nature. Hash objects are instantiated, deleted, allocate memory, and get updated all at the run-time. Intuitively, it is clear that such traits should make for very inventive and flexible programming unseen in the DATA STEP of yore. Still better, subsequent SAS versions have added more hash methods, attributes, parameters, and functionality. This paper includes both hash propaedeutics and material intended for programmers already familiar with SAS hashigana at basic to advanced levels. |
hash table, dataset, hash iterator, length statement, composite key, sample, sas log, proc sql, cpu time, group by, variable, proc step, sysrc, sas programmer, unique key, proc means | source | 29 |
| 85 | The Three I's of SAS Log Messages, IMPORTANT, INTERESTING, and IRRELEVANT | William E. Benjamin Jr. | I like to think that SAS error messages come in three flavors, IMPORTANT, INTERESTING, and IRRELEVANT. SAS calls its messages NOTES, WARNINGS, and ERRORS. I intend to show you that not all NOTES are IRRELEVANT nor are all ERRORS IMPORTANT. This paper will walk through many different scenarios and explain in detail the meaning and impact of messages presented in the SAS log. I will show you how to locate, classify, analyze, and resolve many different SAS message types. And for those brave enough I will go on to teach you how to both generate and suppress messages sent to the SAS log. This paper presents an overview of messages that can often be found in a SAS Log window or output file. The intent of this presentation is to familiarize you with common messages, the meaning of the messages, and how to determine the best way to react to the messages. Notice I said "react", not necessarily correct. Code examples and log output will be presented to aid in the explanations. | cpu time, sas log, error message, libname statement, dataset, options statement, data step, error, proc step, proc printto, sas function, macro variable | source | 20 |
| 86 | TLF Validation Etiquette:What to Say, When to Say, How to Say, Why to Say | Karen Walker | Peer review is the gold standard by where quality is achieved. It has been used to publish scientific journals for centuries. On the internet we see the effects of peer review every day. The peer review process has been mimicked in reality television shows that judge singers, d ancers, and even for selecting a spouse. In this paper are the rules by where quality peer review can be done with success and bring forth further insights for SAS programs. Quality is achieved by using a checklist, cooperation, and support. Inherent within this process is the contrast of disparate ideas. That's the beauty of it. Flowing from those disparate ideas; contrast and compared, is proof that one idea is the best suited. Persons involved in this process must agree that the overall quest to discover the best is a collaboration effort. They have to be open to equally capable expertise among one and other, and truly share ideas. Those involved remain free of insult, "bullyisum" and "come up isum". | data cleaning, proc step, adverse events, proc compare, adam dataset, proc sql, proc freq, cdisc | source | 10 |
| 87 | Tweet-O-Matic: An Automated Approach to Batch Processing of Tweets | Isabel Litton, Rebecca Ottesen |
Currently, there are several methods to read JSON formatted files into SAS which depend on the version of SAS and which products are licensed. These methods include user-defined macros, visual analytics, PROC GROOVY and more. The user defined macro %GrabTweet, in particular, provides a simple way to directly read JSON formatted tweets into Base SAS 9.3. The main limitation of %GrabTweet is that it requires the user to repeatedly run the macro in order to download large amounts of data over time. Manually downloading tweets while adhering to the Twitter rate limits may cause missing observations and is time consuming overall. Imagine having to sit by your computer the entire day to continuously grab data every 15 minutes, just to download a complete data set. |
batch processing, proc step, proc http, macro variable, txt, call symput, sas base, &variable, conditional do loop, macro loop, proc sql, %if-%then-%else | source | 12 |
| 88 | Using and Understanding LSMEANS and LSMESTIMATE | David J. Pasta | The concept of least squares means, or population marginal means, seems to confuse a lot of people. We explore least squares means as implemented by the LSMEANS statement in SAS, beginning with the basics. Particular emphasis is paid to the effect of alternative parameterizations (for example, whether binary variables are in the CLASS statement) and the effect of the OBSMARGINS option. We use examples to show how to mimic LSMEANS using ESTIMATE statements and the advantages of the relatively new LSMESTIMATE statement. The basics of estimability are discussed, including how to get around the dreaded "non-estimable" messages. Emphasis is put on using the STORE statement and PROC PLM to test hypotheses without having to redo all the model calculations. This material is appropriate for all levels of SAS experience, but some familiarity with linear models is assumed. |
least squares mean, binary variable, proc plm, proc step, proc genmod, p-value, proc calis, sample, interval variable, estimate, main effect | source | 20 |
| 89 | Using Cardinality Ratio for Fast Data Review | Ronald J. Fehd | proc step, proc freq, macro variable, macro definition, data review, proc append, proc sort, foreign key | source | 15 | |
| 90 | Using PROC FACTOR for variable inclusion in PROC SURVEYLOGISTIC: A Case Study | Deanna Naomi Schreiber-Gregory | The current study looks at an alternative route to explore recent health trends and beh avior analyses of youth in America. Data used in this analysis w as provided by the Center for Disease Control and Prevention and gathered using the Youth Ris k Behav ior Surveillance System (YRBSS). A factor analysis w as performed to identify and define latent mental health and risk behavior variables. A series of logistic regression analyses w ere then performed using the risk behavior and demographic variables as potential contributing factors to each of the mental health variables. Mental health variables i ncluded disordered eating and depression/suicidal ideation data w hile the risk behavior variables included s moking, consumption of alcohol and drugs, violence, vehicle safety, and sexual behav ior data. Risks and benefits of using a factor analysis w ith log istic regression in social science research w ill be discussed in depth. | likelihood function, maximum likelihood estimation, odds ratio, factor loading, factor analysis, logistic regression, regression analysis, logistic distribution, response variable, sas output, binary variable, if-then-else, proc step, output delivery system, proc surveylogistic, correlation, proc freq, sample, proc means | source | 35 |
| 91 | Using PROC SGPLOT for Quick, High-Quality Graphs | Susan J. Slaughter, Lora D. Delwiche |
New with SAS 9.2, ODS Graphics introduced a whole new way of generating graphs using SAS. With just a few lines of code, you can create a wide variety of high-quality graphs. This paper shows how to produce several types of graphs using PROC SGPLOT, and how to create paneled graphs by converting PROC SGPLOT to PROC SGPANEL. This paper also shows how to send your graphs to different ODS destinations, how to apply ODS styles to your graphs, and how to specify properties of graphs, such as format, name, height, and width. |
proc sgpanel, proc step, bar chart, proc sgplot, series plot, histogram, ods html | source | 19 |
| 92 | Using R in the SAS System | Alan Mitchell | If you use both SAS and R, then you've probably run into a situation where your data are saved as SAS data sets but the analysis tools you want to use are only available in R. Fortunately, a feature of SAS/IML allows users to exchange SAS data with R and execute R statements using SUBMIT/ENDSBMIT statements and CALL routines. SAS users can create R data frames from SAS data sets and have access to R's graphics tools along with a large collection of add-on packages. An interactive R programming environment can be initiated from within SAS that is useful for writing and debugging R scripts. In addition to the basic mechanics of the interaction between PROC IML and R, a discussion of some of the pitfalls and a demonstration of some of the tools available will be presented. SAS/IML 9.22 or later is required. However, to use more recent versions of R, newer versions of SAS/IML are required. |
proc iml, dataset, proc step, macro definition | source | 9 |
| 93 | Using SAS and the Centers for Disease Control and Prevention 2010 Natality Data to Estimate the Effect Size of Prenatal Visits on Preterm Birth | Melissa Borelli | One in nine babies born in the United States is preterm, making it one of the top causes of death in infants and often leading to short and long-term complications. Studies investigating risk factors associated with preterm birth have found mixed results. The objective of this study was to determine if there is an association between the number of prenatal visits and preterm birth after adjusting for mother's age and education. Data from the Centers for Disease Control and Prevention's National Center for Health Statistics (NCHS) 2010 Natality Public Use File were used with the outcome measured as occurrence of preterm birth. Univariate analyses were conducted using SAS PROC FREQ and the Pearson's Chi-Square test statistic for independence and multivariable analyses were conducted using PROC LOGISTIC to estimate adjusted odds ratios and 95% confidence intervals. |
chi-square test, logistic distribution, confidence interval, proc logistic, proc step, sample, odds ratio, logistic regression, response variable, proc freq, regression analysis | source | 10 |
| 94 | Using SAS Enterprise Business Intelligence to Automate a Manual Process: A Detailed Case Study | Erik S. Larsen | Often times while on a client site as a SAS consultant, you are faced with a project which involves many manual steps and can include both legacy code and EXCEL spreadsheets. Running this code (or possibly segments of code, depending on what the results are) along with some cutting and pasting rows and columns here and there which ultimately results in a report that gets sent out to a client. The client (or clients) like this report and keep asking for more of them until these reports become a task in a business analyst's daily routine. This routine grows as the volume of data or number of reports increase until it consumes the entire day. This paper will illustrate a real-world example of how a report which consisted of legacy SAS programs and EXCEL spreadsheet manipulation that grew so large that a more efficient way of providing these reports to clients needed to be developed. |
excel, sas data integration studio, xls, business intelligence | source | 6 |
| 95 | Using SAS to do it all | Chelsea Lofland, Rebecca Ottesen |
With the growing number of statistical and data management software and languages available, each with particular strengths, it is becoming common to make use of more than one of package for an analysis. This paper demonstrates ways to utilize the capabilities of SAS coupled with other tools in order to accomplish an entire analysis within a single programming session and without loss of benefits. Methods considered include PROC SQL, SAS/IML, and Base SAS as well as the integration of other software directly into SAS. We present simple examples through the process of data management, analysis, and creating reports with focus on R, C, SQL, and LaTeX. Having the ability to leverage the strengths of any given software package is a valuable skill in today's statistical programming world. This paper provides insights for any person or team with varied knowledge of different statistical software packages and languages. |
proc sql, proc step, dataset, sample, create table, data governance, proc fcmp, excel, conditional do loop, sas programming, do loop, proc iml, monte carlo, options statement | source | 16 |
| 96 | When Software Development is Your Means Not Your End: Abstracting Agile Methodologies for End-User Development and Analytic Application | Troy Martin Hughes | Agile methodologies for software development, including the Scrum framework, have grown in use and popularity since the 2001 Manifesto for Agile Software Development. More than having obtained ubiquity, Agile demonstrably has defined software development in the 21st century with its core foci in collaboration, value-added software, and flexibility gained through incremental development and delivery. Although Agile principles can be extrapolated easily to other disciplines, Agile nomenclature, literature, and application too often remain focused on software development alone. References to Agile often depict an idealized "developer" archetype whose responsibilities seem focused narrowly on the production of releasable code, in a role that often omits operational and other non-developmental activities. | data cleaning, data science | source | 17 |
| 97 | Wow! You Did that with SAS Stored Processes? | David Mitchell | In this paper you will be introduced to advanced SAS 9.4 functions developed with Enterprise Guide 6.1 and surfaced thru HTML pages. The application design is based on SAS 9.4 client server architecture featuring a discussion of integration with metadata objects in the SAS Management Console. The audience will also learn practical techniques used to create stored processes that will cover: Direct Call to Stored Processes Macro Code Stored Process Linking Prompt Dependencies Hidden Prompts Prompt Groupings Dynamic Prompting Formats and Outputs - email and pdf This application is a set of linked stored processes that allow tracking of internal customer contracts. The application integrates several SAS tables driven by stored processes to: Maintaining a customer database Create projects from contracts Create work orders Allow posting of time spent for consultants Create output for a multitude of reports, emails and PDF files. | sas enterprise guide, where statement | source | 10 |
| 98 | You Say 'Day-ta', I Say 'Dat-a' - Processing Your DATA Efficiently and Ensuring Its Integrity | Mary Federico Katz, Jason R. Beene |
We all know there are multiple ways to use SAS language components to generate the same values in data set(s), e.g.: DATA STEP vs PROC SQL, If-Then-Else vs Format table conversions, PROC MEANS vs PROC SQL summarizations, just to name a few. However, do you ever compare those different ways to determine which are the most efficient in terms of CPU time, elapsed time or memory used? Do you ever consider the time a programmer takes to develop or maintain inefficient or unnecessarily complicated code? In addition to determining the most efficient syntax, do you validate your resulting data sets? We will share some of our best practices that have proven to save computer and human resources. We demonstrate basic data integrity validation techniques when processing source data. With those same examples, we compare resources required for producing the same results by using DATA STEP and/or PROCedure or PROC SQL. |
proc step, proc sql, dataset, proc format, cpu time, create table, raw data, proc compare, sas log, group by, proc means, proc contents, proc freq, frequency analysis, proc download, sas grid, data integrity, sas base, sql server, sas programming, update statement, excel | source | 12 |
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