NESUG 2013 Papers - Index
106 papers. Source: NESUG (Northeast SAS Users Group) conference proceedings.
| # | Title× | Authors× | Abstract× | Keywords× | Extras | Pages |
|---|---|---|---|---|---|---|
| 1 | A Many to Many Merge, Without SQL? | David W. Franklin | As a SAS Programmer, one of our common tasks is to merge data from two or more datasets. Most merges are 1to1 or 1tomany, i.e. there is at least one dataset with a sequence of variables that create a unique record identifier. But what about the case where there is not a unique record in both cases, known as a manytomany merge? Typically the advice is to use PROC SQL, however this paper looks at a way (and the code is presented) that a SAS datastep can be used to achieve the same result, with the advantage that you as a programmer have more control over the way SAS processes it. The technique introduced here will probably not change your reliance on PROC SQL to do a manytomany merge, but it will add a valuable "utility" to your toolkit |
proc sql, proc step | 4 | |
| 2 | A Quick View of SAS Views | Elizabeth Axelrod | Looking for a handy technique to have in your toolkit? Consider SAS Views, especially if you work with large data sets. After a brief introduction to Views, I'll show you several cool ways to use them that will streamline your code and save workspace | data step, cpu time, proc step, view, proc sort, dataset, proc freq | 7 | |
| 3 | 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 | 16 | |
| 4 | A Tutorial on the SAS Macro Language | John J. Cohen | The SAS Macro language is another language that rests on top of regular SAS code. If used properly, it can make programming easier and more fun. However , not every program is improved by using macros. Furthermore, it is another language syntax to learn, and can create problems in debugging programs that are even more entertai n- ing than those offered by regular SAS. We will discuss using macros as code gene rators, saving repetitive and tedious effort, for passing parameters through a program to avoid hard coding values, and to pass code fragments, thereby making certain tasks easier than using regular SAS alone. Macros facilitate conditional execution and can be used to create program modules that can be standardized and re -used throughout your organization. Finally, macros can help us create interactive systems in the absence of SAS/AF. When we are done, you will know the difference between a macro, a macro variable, a macro statement, and a macro function |
macro variable, macro definition, macro facility, macro loop, macro call, do loop, macro function, title statement, macro put, %if-%then-%else | 10 | |
| 5 | Add a Little Magic to Your Joins | Kirk Paul Lafler | To achieve the best possible performance when joining two or more tables in the SQL procedure, a few considerations should be kept in mind. This presentation explores options that can be used to influence the type of join algorithm selected (i.e., step- loop, sort-merge, index, and hash) by the optimizer. Attendees learn how to add a little magic with MAGIC=101, MAGIC=102, MAGIC=103, IDXWHERE=Yes, and BUFFERSIZE= options to influence the SQL optimizer to achieve the best possible performance when joining tables |
proc sql, sas log | 6 | |
| 6 | Aligning Parallel Axes in SAS GTL | Perry Watts | Presentation | scatter plot, integer, histogram, graph template language, bar chart | 10 | |
| 7 | Alternative Methods for Sorting Large Files without Leaving a Big Disk Space Footprint | Rita Volya | Working with very large data is not only a question of efficiency but also of feasibility. How often have you received an error message indicating that " no disk space is available"? In many cases this message is caused by the procedure sorting your data. P ROC SORT requires three to four times the space needed for data storage. This may be a problem when SAS work space is limited or shared by many users. This article addresses alternative methods of sorting data without leaving a big footprint on the disk space. Medical claims processing for h ealth care research will illustrate | hash table, cpu time, proc step, proc sort, proc sql, proc format, temporary array, dataset, symbol table, by group processing | 23 | |
| 8 | An Animated Guide: An Introduction to Neural Nets: | Russell M. Lavery | Artificial Neural Networks (ANNs) are a machine learning technique that is modeled on how cells in our brains learn. It is a supervised learning algorithm (we must have a sample data set where we know the values of Y) and can be used to build models where Y is discrete or continuous. This paper is an introduction to the underlying concepts, vocabulary and application of Artificial Neural Networks in SAS Enterprise Miner and JMP | training set, sample, neural network, machine learning, test set, validation set, outlier, data cleaning, logistic distribution, data mining | 12 | |
| 9 | An Introduction to Creating Multi-Sheet Microsoft Excel Workbooks the Easy Way with SAS | Vincent DelGobbo | This paper explains how to use Base SAS 9 software to create multi-sheet EXCEL workbooks (for EXCEL versions 2002 and later). You learn step-by-step techniques for quickly and easily creating attractive multi-sheet EXCEL workbooks that contain your SAS output using the ExcelXP ODS tagset and ODS styles. The techniques that are presented in this paper can be used regardless of the platform on which SAS software is installed. You can even use them on a mainframe! Creating and delivering your workbooks on-demand and in real time using SAS server technology is discussed. Although the title is similar to previous papers by this author, this paper contains new and revised material not previously presented |
excel, xls, sas output, output delivery system, sas base, proc print, proc step, ods xml, proc tabulate, sample | 20 | |
| 10 | Analyzing Continuous Variables from Complex Survey Data Using PROC SURVEYMEANS | Taylor Lewis | This paper explores features available in PROC SURVEYMEANS to analyze continuous variables in a complex survey data set, where "complex" denotes a data set characterized by one or more of the following features: une- qual weights, stratification, clustering, and finite population corrections. Using a real-world complex survey data set, this paper demonstrates the necessary syntax to have PROC SURVEYMEANS properly estimate totals, means, ratios, and quantiles, as well as their corresponding design-based measures of variability |
sample, proc step, proc surveymeans, proc calis, degrees of freedom, confidence interval, finite population correction, binary variable, random sampling, standard deviation, nominal variable, interval variable, response variable, variable list | 15 | |
| 11 | Analyzing the Safewalk Program with SAS: Saving Shelter Dogs One Walk at a Time | Louise S. Hadden, Terri Bright |
The MSPCA (Massachusetts Society for Prevention of Cruelty to Animals) in Boston initiated the Safewalk Program in January 2009. This program was designed to enrich the experience of shelter dogs by providing training to volunteers and staff that allow dogs of varied backgrounds and temperaments to be exercised safely, as well as promoting behaviors encouraging adoption on the adoption floor. Intuitively the program was felt to increase adoption rates, particularly in "hard to adopt" dogs, but proving the benefits of the program was a challenge, especially given the greatly increased numbers of homeless dogs during the Safewalk Program time period. The MSPCA has recorded statistics on all animals in their care compiled with Chameleon software. Records for all dogs for 30 months prior to the initiation of Safewalk and 30 months after were selected from the Chameleon data base. This data extract was analyzed using multiple SAS procedures in SAS/STAT |
proc step, interaction effect, sample, proc freq | 12 | |
| 12 | Arrays Plus Data Step Plus Cramer's Rule = Fast Rolling Regresions | Mark Keintz | While the recent introduction of PROC FCMP has provided an effective way to improve the speed of SAS in per- forming rolling window regressions, a simple DATA STEP application of Cramer's Rule for inverting matrices can be even faster. This paper describes how to generate rolling window regressions in a single DATA STEP using Cramer's Rule |
regression analysis, proc step, proc reg, rolling window, proc fcmp, data step, time series analysis, macro definition | 15 | |
| 13 | Automate Your Data Validation | Baibai Chen, Wen Song, Lee Goldberg |
Presentation: Got large datasets to validate and requirements that frequently change? We explore three approaches to automating data checking in the context of a large epidemiological dataset subject to shifting variable definitions and validation rules. We first try a simple approach using the SAS macro facility, then another where we generate an automatic checking program which could be called with an %INCLUDE statement, and, finally a more sophisticated method which exploits the power of both PROC SQL and SAS macros. Any of the three methods beats coding by hand, but each has its benefits and drawbacks. |
macro definition, txt, proc sql, put statement, proc step, macro facility, proc print | 7 | |
| 14 | Automating Validation of Define.xml using SAS | Prafulla Girase, Robert Agostinelli |
There are various methods that can be used to validate the define.xml. A community version of OpenCDISC is a popular and efficient way to validate define.xml. However, since it may not cover everything, it is important to supplement it with other validation checks to ensure the accuracy, validity and completeness of your define.xml. To do this additional validation manually can be cumbersome and time consuming. Since the define.xml is a machine readable file, it is possible to automate many of these additional validation checks. In this paper, we discuss an automated SAS-based approach. One important technique that makes this possible is getting define.xml contents into SAS data sets using a XMLMap. Once the define.xml contents are transformed into SAS data sets, one can perform a variety of tasks or checks using the flexibility and power of SAS. We developed several custom validation checks in our macro | data cleaning, dataset, proc step, excel, macro call, cdisc | 8 | |
| 15 | Behind the Scenes with SAS: Using Custom Graphics in SAS Output | Louise S. Hadden | SAS provides many opportunities to add customized images to SAS ODS output. This presentation will demonstrate various ways to add custom backgrounds to tabular and graphic output; add custom images to titles, footnotes, ODS text fields and tabular output; and add custom "fills" to SAS/GRAPH maps and graphs. Some possible uses of custom images include a company logo embedded in SAS output, graphic displays of positive or negative outcomes, and watermarks containing "draft" or "confidential". The SAS code to accomplish all these potential uses, and more, will be shown |
sample, proc step | 14 | |
| 16 | Big Data, Fast Processing Speeds | Gary Ciampa | As data sets continue to grow, it is important for programs to be written very efficiently to make sure no time is wasted processing data. This paper covers various techniques to speed up data processing time for very large data sets or databases, including PROC SQL, DATA STEP, indexes and SAS macros. Some of these procedures may result in just a slight speed increase, but when you process 500 million records per day, even a 10% increase is very good. The paper includes actual time comparisons to demonstrate the speed increases using the new techniques |
proc sql, proc step, grid computing, cpu time, missing value, group by, sas programmer, data step, where statement, sas programming, macro definition, macro variable | presentation | 17 |
| 17 | Bring it in and turn it around and around: Importing multiple excel sheets into SAS Performing a simple double transpose | Hezekiah Bunde | Repetition of the same task several times lends itself to among other issues, errors of omission or commission. Every step in the data/statistical analysis process is critical and every effort has to be made to ensure that an accurate picture is presented when assembling or disassembling data. This paper presents a technique for importing multiple worksheets simultaneously and creating SAS datasets. Further manipulations can therefore be performed once this has been successful. Additionally, I demonstrate a technique where a double-transpose is utilized to achieve a desired result. A single record per subject may be desired from data that has multiple observations for each unique individual. The version of SAS used was 9.2. The intended audience for this paper ranges from the novice to the experienced programmer | proc step, proc import, excel | 10 | |
| 18 | Community Research Fellows Training Program Evaluation: Using SAS to Analyze Pre- and Post-Test Data | Sarah A. Lyons, Melody S. Goodman |
Background: The Community Research Fellows Training (CRFT) is an evidenced-based public health research methods course designed to increase community research literacy and enhance the infrastructure for Community Based Participatory Research (CBPR). The goals of the training are to: 1) adapt, implement, and evaluate a research methods training program for community members, 2) promote the role of underserved populations in research by enhancing the capacity for CBPR and 3) develop partnerships between academic researchers with community members in the St. Louis Greater Metropolitan area to address health disparities. Methods: Multidisciplinary faculty conduct 12 didactic training sessions and 3 experiential workshops based on standard MPH curriculum. A comprehensive (formative/summative) mixed-method (quantitative/qualitative) evaluation approach is utilized to assess participant knowledge and satisfaction | wilcoxon signed-rank, proc univariate, rank test, proc step, histogram | 6 | |
| 19 | Comprehensive Codes That Work for Non-SAS People | Wen Song | Developing a checking program to perform comprehensive cross-form checks for a single project site may be a simple task. Creating a checking program to validate data sets from 23 different sites that can be successfully run by even junior SAS programmers seems a much greater challenge. Today SAS codes that are flexible and r e- quire minimum future revision are gaining in popularity. This paper uses a case drawn from a real work situation to demonstrate how such codes can be designed for use by any level of programmer | macro variable, macro loop | 6 | |
| 20 | Constructing a Table of Survey Data with Percent and Confidence Interval in every Direction | David Izrael, Sarah Ball, Sara Donahue |
We examined a survey sample consisting of treated and not-treated respondents. We show how, using SAS macros based on PROC SURVEYFREQ, the user can easily construct a table that presents survey findings of interest: the unweighted sample size, unweighted sample percent (column percent ) and weighted sample size for characteristics/variables of interest (rows). We then show how to use the macros to compute a weighted column percent and the weighted treatment ratio (weighted row percent), with respective confidence intervals. We demonstrate the application of the macros to two types of variables: those representing single-select survey questions (i.e., survey question with one response allowed) and those representing survey questions that allow the respondent to choose more than one response |
sample, proc step, confidence interval, macro call, sample size, proc surveyfreq, proc freq | 7 | |
| 21 | Continuous Enrollment Requirements in Epidemiologic Studies | Jennifer R. Popovic | Research studies are increasingly making use of administrative health insurance claims data to study a variety of health conditions. Studies relying on these types of data often require members to have a period of continuous insurance plan enrollment, particularly on either side of an event of interest, or index date, in order to establish some boundaries for health history. The main purpose of this macro is to determine whether or not individuals have health insurance plan enrollment before and/or after an index date. The macro is written flexibly to allow the user to supply the pre- and post-index date period as any number of days, months or years on either end of the index date. A secondary, though critical, feature of this macro is to reconcile overlaps and gaps in plan enrollment prior to joining the enrollment file with the index date file. This portion of the macro is also flexible in that it allows the user to specify the maximum number of days to be allowable as a gap | macro parameter, macro variable, create table, health insurance, inner join, proc sql, insurance claims, out=, macro call, proc step | 12 | |
| 22 | Converting from a Windows Based SAS Computing Environment to a UNIX Based SAS Computing Environment | Ginger Redner, Dan Maloney |
The process of migrating from a PC based SAS computing environment to a UNIX based environment can be overwhelming for SAS developers, especially when the majority of the staff has little to no knowledge of UNIX. In order to satisfy the needs of the users while maintaining business continuity during this transition, careful planning is required. The pain-points of migrating can be considerably decreased when the appropriate computing archi- tecture is employed, minimal SAS coding standards are followed, SAS session initialization programs are utilized properly and programs to be migrated are thoroughly tested. This paper describes the author's experiences mov- ing from a PC SAS based computing environment to UNIX, from the perspective of SAS programmers working in a large global pharmaceutical company which is successfully making this conversion | sas enterprise guide, excel, sas base, sas programmer, macro catalog, clinical trial, proc step, macro variable | 8 | |
| 23 | Count on SAS to Count Your Daily Census | Mark J. Mihalyo | In health care, especially in a patient facility setting, knowing your daily census is essential information. More importantl y, being able to examine that daily census across multiple months, or even over a year period, can provide valuable trending data for a facility and other interested parties. By putting SAS to work, producing a census report across time can be completed in undemanding fashion. Constructing well-defined iterative logic allows the user to employ SAS's ability for compiling large amounts of data, and from that produce comprehensive reports. Wh en you add in the flexibility that a MACRO can provide, SAS is off and running to put together a census report that will trend, average, and be one that you can 'count on.' | macro loop, macro definition, calendar year, macro variable, if-then-else, %if-%then-%else, proc step | 8 | |
| 24 | Creating Journal Ready Tables with Special Characters Using ODS LaTeX | Steven H. Feder | LaTeX is a free document creation package often used to create journal articles. It provides the capability to create very specific formatting and to write a wide variety of formulas. Using ODS, SAS can write documents to a LaTeX file, which can then be compiled through LaTeX into PDF files. In this article we briefly review the basic syntax and options to produce these files. Then we look at how to create a new tagset to make changes to the standard ODS LaTeX templates to create the non- gridded table appearance typically seen in journal articles. We also explore how to write special characters and equations not otherwise available through ODS LaTeX |
sas output, dataset | 11 | |
| 25 | Current Directions in SAS/STAT Software Development | Maura E. Stokes | Recent years brought you SAS/STAT releases in rapid succession, and another release is targeted for 2013. Which new software features will make a difference in your work? What new statistical trends should you know about? This paper describes recent areas of development focus, such as Bayesian analysis, missing data analysis, postfitting inference, quantile modeling, finite mixture models, specialized survival analysis, and structural equation modeling. This paper introduces you to the concepts and illustrates them with practical examples. More Frequent Releases of SAS/STAT Software In previous years, SAS/STAT software was updated only when Base SAS software was released, but SAS/STAT is now released independently of Base SAS along with other SAS analytical products. This means these products can be released when enhancements are ready, and the goal is to update SAS/STAT every 12 to 18 months |
22 | ||
| 26 | Dealing with Duplicates | Christopher J. Bost | Variable values may be repeated across observations. If a variable is an identifier, it is important to determine if values are duplicated. This paper reviews techniques for detecting duplicates with PROC SQL, summarizing duplicates with PROC FREQ, and outputting duplicates with PROC SORT |
proc step, proc freq, proc sql, proc sort | 6 | |
| 27 | Debugging SAS Code in a Macro | Bruce F. Gilsen | Debugging SAS code contained in a macro can be frustrating because the SAS error messages only refer to the line in the SAS log where the macro was invoked. This can make it difficult to pinpoint the problem when the macro contains a large amount of SAS code. Using a macro that contains one small DATA STEP, this paper shows how to use the MPRINT and MFILE options along with the fileref MPRINT to write just the SAS code generated by a macro to a file. The "de-macroified" SAS code can be easily executed and debugged |
sas log, options statement | 5 | |
| 28 | Does the cat have your tongue? Using VNAME and CATX to get SAS to speak to you. | Gayle K. Springer | In our longitudinal health study, when certain health events occur to a participant, we restrict access to her biologi- cal specimens from that time period and record the reasons in a data table. When biological specimens are requested for use with a project, we review the id/visits requested against the list of restricted specimens. Then, the restricted id/visits, along with the reasons, are provided to an oversight commit- tee to determine if the restricted specimens may be used for the project. We developed an easy method for creating the reason list in words by creating variable names that are succinct and descriptive. Using an ARRAY statement and the CATX and VNAME functions, we quickly compile the reason list to give to our oversight committee to aid in their decision. We will also show how to make minor changes to this method to create a similar list when variables are not descriptively named | array, character functions, length statement, binary variable | 4 | |
| 29 | Dropping variables from a large SAS data set when all their values are missing | Gwen Babcock | Several methods have been proposed to drop variables whose values are all missing from a SAS data set. These methods typically use PROC SQL, macro variables, and/or arrays, all of which may be slow or fail when applied to large da ta sets. One method uses hash tables and CALL EXECUTE, but it works only on character variables. Therefore, I have developed an alternative method which can be applied to data sets of any size. The strategy is to use PROC MEANS and PROC FREQ to identify variables whose values are all missing . These variables are then dropped using DATA steps generated by CALL EX- ECUTE. This method, which uses intermediate level coding techniques, will complement previously proposed methods b e- cause it works well on large data sets, and on both character and numeric variables. An example is given using US Census American Community Survey data with SAS 9.3 under Windows XP |
proc step, missing value, numeric variable, character variable, proc freq, call execute, hash table | 13 | |
| 30 | Enriched Benefits for Better Graphs from Combining GTL Template and ODS Style | Yu Yang, John He |
Recognized as a significant improvement in graph presentation compared with previous version, SAS 9.2 Graph Template Language (GTL) is a powerful tool for SAS users to create sophisticated graphs. Even though lots of new features have been built in GTL, there are still a few constrains in its usage alone. By combining the ODS style template and GTL template, the SAS users can overcome the limitations, and maximize the benefits of GTL template for much more desired graphical output of data presentation |
box plot, bar chart, numeric variable, label statement, sample, scatter plot, proc step | 14 | |
| 31 | EXCELling in DDE: Unlock useful tools for processing Excel files. | Calvin Guan, Louise S. Hadden |
Want to do more with your EXCEL files than just dumping in data? Got complex reports with custom formatting that won't work with PROC EXPORT? This paper will show you how to gracefully export your reports to native EXCEL files using Dynamic Data Exchange (DDE). DDE lets you utilize EXCEL commands via SAS code, giving you many more options in fine -tuning your spreadsheet. We will explore using DDE to perform EXCEL tasks such as changing fonts, freezing panes, and saving as a different format. You can further customize the DDE process by using SAS macros; it is somewhat tricky to implement macros with DDE so the how-to is explained in this paper. Our programs are run on a Microsoft Windows x64 server in batch mode. However, the DDE processes can be used on other platforms, as long as a licensed copy of Microsoft Office EXCEL is availab le on the system. This paper will be most useful to those with an intermediate or greater knowledge of SAS |
excel, macro variable, ods xml, ods html, macro facility, macro definition, macro quoting function | 7 | |
| 32 | Exploring the PROC SQL _METHOD Option | Kirk Paul Lafler, Charles E. Shipp |
The SQL Procedure contains powerful options for users to take advantage of. This presentation and poster explores the fully supported _METHOD option as an applications development and tuning tool, and learn how to use this powerful option to understand and control how a query processes |
proc sql, proc step, sas log, where statement, error message, options statement, data merging | 4 | |
| 33 | Exploring the Relationship Between Mental Health and Risky Behaviors in American Youth Using PROC SURVEYFREQ and SURVEYLOGISTIC | Deanna Naomi Schreiber-Gregory | The current study looks at recent health trends and behavior analyses of youth in America. Data used in this analysis was provided by the Center for Disease Control and Prevention and gathered using the Youth Risk Behavior Surveillance System (YRBSS). This study outlines demographic differences in risk behaviors, health issues, and reported mental states. Interactions between risk behaviors and reported mental states were also analyzed. Visual representations of frequency data for the national results are also provided and discussed. A final regression model including the most significant contributing factors to suicidal ideation is provided and discussed. Results included reporting differences between the years of 1991 and 2011. All results are discussed in relation to current youth health trend issues. Data was analyzed using SAS 9.3 | odds ratio, likelihood function, correlation, proc step, proc freq, regression analysis | 9 | |
| 34 | Extreme SAS reporting II: Data Compendium and 5 Star Ratings Revisited | Louise S. Hadden | Each month, our project team delivers updated 5-Star ratings for 15,700+ nursing homes across the United States to Centers for Medicare & Medicaid Services. There is a wealth of data (and processing) behind the ratings, and this data is longitudinal in nature. A prior paper in this series, "Programming the Provider Previews: Extreme SAS Reporting" discussed one aspect of the processing involved in maintaining the Nursing Home Compare website. This paper will discuss two other aspects of our processing: creating an annual data Compendium, and extending the 5-star processing to accommodate several different output formats for different purposes. Products used include Base SAS, SAS/STAT, SG Procedures, and SAS/GRAPH. New annotate facilities in both SAS/GRAPH and the SG Procedures will be discussed. This paper and presentation will be of most interest to SAS programmers with medium to advanced SAS skills |
proc step, excel, proc export, proc print, proc tabulate, sql server, proc sql, dataset | 15 | |
| 35 | Graphically Speaking Blog and the Interactive ODS Graphics Designer Application | Sanjay N. Matange | This paper covers two related topics on creating graphs using SAS software. The first topic is for the graphics programmer, where you will be introduced to a useful resource - the Graphically Speaking blog. This blog is written by this author along with developers of the graph procedures and discusses various topics related to creation of graphs using the SG procedures and GTL. The second topic is for the user who wants to create graphs using an interactive application. Here we will discuss the new interactive application called ODS Graphics Designer. You can use this application to create many graphs using an interactive 'drag -and-drop' process. You can render your graph in batch with new data and output the r esults to any open destination. You can view the generated GTL code as a leg up to GTL programming. You can do all this without cracking the book or breaking a sweat |
kaplan-meier plot, histogram, box plot, scatter plot, bar chart | 14 | |
| 36 | Hash Table Look-up: Easier than you'd think. | Virginia Blum | Hash table coding and syntax is different from other SAS DATA STEP programming. The cryptic appearance of hash table syntax belies the fact that it isn't hard to set-up and provides much functionality with few statements. This paper will demonstrate replacing a large SELECT/IF-THEN-ELSE sequence with a hash table. The - DEFINE(), FIND(), REPLACE() and OUTPUT() methods will be used |
hash table, where statement, dataset | 9 | |
| 37 | Hidden in plain sight: my top ten underpublicized enhancements in SAS Versions 9.2 and 9.3 | Bruce F. Gilsen | SAS Versions 9.2 and 9.3 contain many interesting enhancements. While the most significant enhancements have been widely publicized in online documentation, conference papers, the SAS-L internet newsgroup/listserv, and elsewhere, some smaller enhancements have received little attention. This paper reviews my ten favorite underpublicized features. 1. Eliminate observations with a unique sort key (BY groups of size one) 2. DATA STEP sort 3. String delimiter on input 4. String delimiter on output 5. The PRINT procedure: printing blank lines 6. Data set lists in the SET AND MERGE statements 7. Append SAS log files 8. Simpler macro variable range 9. Trim leading and trailing blanks from a value stored by the SQL procedure in a single macro variable 10. Create a directory or fol der in a LIBNAME statement 1 |
macro variable, proc step, proc sql, call sortn, libname statement, proc sort, sas log, call sortc, infile statement, merge statement, options statement, proc print, by group processing | 12 | |
| 38 | How to be a Data Scientist Using SAS | Chuck Kincaid | The role of the Data Scientist is the viral job description of the decade. And like LOLcats, there are many types of Data Scientists. What is this new role? Who is hiring them? What do they do? What skills are required to do their job? What does this mean for the SAS programmer and the statistician? Are they obsolete? And finally, if I am a SAS user, how can I become a Data Scientist? Come learn about this "job of the future" and what you can do to be part of it | data science, machine learning, data mining, big data, proc sql, association rules | 13 | |
| 39 | How to create a report for multi-select variables in 4 steps | Marlene Scott | Using the power of the DATA STEP, SAS Macro Language, and the SQL Procedure, I was able write efficient, parsimonious code to summarize the frequency of use of twenty-two drugs at four discrete time periods relative to a diagnosis date |
macro variable, proc sql, attrib statement, proc freq, temporary dataset | 7 | |
| 40 | How to Create High Level Data Review Tools | Xiaoyu (Sean) Liu | The data review tools include reports and patient profiles, etc. that are very important for clinical trial data validation, data cleaning and safety monitoring. Clinical teams use them to review data for accuracy, completeness, and consistency. According to application areas, three levels of reports are divided, that is, global, oncology, and study specific reports. The global and oncology reports belong to high level. In order to create the high level and powerful tools, some new methods and practical and efficient SAS skills are discussed in this paper | data review, clinical trial | 4 | |
| 41 | How to Handle Binomial Proportion with Zero Frequency | Tulin Shekar | Estimating confidence interval for the binomial proportion is a challenge to statisticians and programmers when the proportion has zero frequency. This paper reviews the statistical methods used for estimating confidence i n- tervals which are available in SAS. The observations with zero frequency treated as missing by SAS and not presented in the output. Application of the macro developed to clinical trial Adverse Event data, specifically on how to create confidence intervals with zero frequency will be provided | confidence interval, binomial distribution, proc freq, sample, beta distribution, proc step, normal distribution, clinical trial, macro call, sample size, confidence level, adverse events, response variable, macro definition | 11 | |
| 42 | How to indent selected table cells using NBSPACE | Roberta J. Glass | Indenting selected lines in a table produced with the SAS PROC REPORT procedure can be difficult. Using the es- cape character function NBSPACE to inline format table cells is one solution. This Quick Tip illustrates the difficul- ty of indenting selected lines and a solution that works when creating output tables with ODS |
character functions, excel, proc step, proc format, proc report | 5 | |
| 43 | How to Use ARRAYs and DO Loops: Do I DO OVER or Do I DO i? | Jennifer L. Waller | Do you tend to copy DATA STEP code over and over and change the variable name? Do you want to learn how to take those hundreds of lines of code that do the same operation and reduce them to something more efficient? Then come learn about ARRAY statements and DO loops, powerful and efficient data manipulation tools. This workshop covers when ARRAY statements and DO loops can and should be used, how to set up an ARRAY statement with and without specifying the number of array elements, and what type of DO loop is most appropriate to use within the constraints of the task you want to perform. Additionally, you will learn how to restructure your data set using ARRAY statements and DO loops. |
do loop, do over, end, array | 11 | |
| 44 | I Can SQL Clearly Now, the Data's Fine... | Brian Taaffe | What has always bothered SAS programmers about using complex SAS PROC SQL to combine multiple DATA sets, as op- posed to using complex SAS MERGE statements to do so, was that it was difficult to be certain that nothing unexpected hap- pened during the process of combining the DATA sets. By using the "IN=" DATA option to create flags during a MERGE, we can always record what DATA sets contributed and what DATA sets did not contribute, and under what conditions they did so. Since we do not have the "IN=" option available in PROC SQL, how can we perform the functional equivalent? This paper shows how to do just that - in addition to showing how to create the 'SQL Observation Status Flags' in the SQL-equivalent of the SET, UPDATE, and MODIFY statements |
proc sql, proc step, update statement, set statement, data merging, cape cod method, select | 16 | |
| 45 | I'm Going to Pop Some Tags: Using SAS CALL SOUND Routines | Richard Dirmyer | Are you a SAS programmer? Does your computer have speakers? Well then look no further than the CALL SOUND routine for all your musical needs. Leveraging an undoubtedly easy approach to initiating sounds from your computer through SAS, along with an elementary knowledge of sheet music, your programs will evolve into something beyond data management, reporting, and analysis, and become your own personal stereo. Examples will be provided | proc freq, data governance | 4 | |
| 46 | Improving a Graph Using PROC GPLOT and the GOPTIONS Statement | Wendi L. Wright | Starting with a simple SAS PLOT program, we will transfer this plot into PROC GPLOT and take a look at the many ways you can improve the look of the plot using SAS GRAPH statements. We will make the plot really shine by customizing titles, footnotes, symbols, legends, axes and even the reference line. At each step, a hands-on example will be presented where the user will choose their own features such as symbol colors and placement of the legend. In the end, you will have built your own personalized graph using the Title, Footnote, Symbol, Legend, and Axis statements |
proc gplot, proc step | 20 | |
| 47 | Increase Pattern Detection in SAS GTL with New Categorical Histograms and Color Coded Asymmetric Violin Plots | Perry Watts | Presentation: Detecting patterns in graphics output is much easier when continuous data can be grouped categorically. Such is the case with the Body Mass Index and its four classifications: underweight, normal weight, overweight and obese. This presentation goes from conventional histogram to color-coded asymmetric violin plot with coverage of the categorical histogram along the way. | histogram, proc step, density plot | 11 | |
| 48 | Leads and Lags in SAS | Mark Keintz | 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 es- pecially significant problem in the case of large data series. This paper will (1) review the lag function, in particu- lar the non-intuitive implications of its queue-oriented basis and (2) demonstrate efficient ways to generate leads, without the common recourse to data re-sorting | lag function, set statement, time series analysis, by group processing, missing value | 11 | |
| 49 | Macro Basics for New SAS Users | Cynthia L. Zender | Are you new to SAS? Do you look at programs written by others and wonder what those & and % signs mean? Are you reluctant to change code that has macro variables in the program? Do you need to perform repetitive programming tasks and don't know when to use DO versus %DO? This paper provides an overview of how the SAS macro facility works and how you can make it work in your programs. Concrete examples answer these and other questions: Where do the macro variables live? What does it mean when I see multiple ampersands (&&)? What is a macro program, and how does it differ from other SAS programs? What's the big difference between DO and IF and %DO and %IF? | macro variable, sas enterprise guide, macro facility, macro definition, sas log, &variable, put statement, macro put, if-then-else, proc step, macro function, macro trigger, proc print, title statement, %if-%then-%else, global symbol table, keyword parameter, %macro parameters, proc contents, symbol table, macro loop, error message, options statement, upcase function | 26 | |
| 50 | Make a Good Graph | Sanjay N. Matange | A graph is considered effective if the information contained in it can be decoded quickly, accurately and without distractions. Rules for effective graphics - developed by industry thought leaders such as Tufte, Cleveland and Robbins - include maximizing data ink, removing chart junk, reducing noise and clutter, and simplifying the graph. This presentation covers these principles and goes beyond the basics, discussing other features that make a good graph: the use of proximity for magnitude comparisons, nonlinear or broken axes, small multiples, and reduction of eye movement for easier decoding of the data. We also examine ways in which information can be obscured or misrepresented in a graph | bar chart, series plot, data visualization, output delivery system | 16 | |
| 51 | Making Sense of PROC TABULATE | Jonas V. Bilenas | The TABULATE procedure in SAS provides a flexible platform to generate tabular reports. Many beginning SAS programmers have a difficult time und erstanding the syntax of PROC TABULATE and tend to avoid using the procedure. This tutorial wi ll explain the syntax of PROC TABULATE and, with examples, show how to grasp the power of PROC TABUL ATE. The data used in this paper represents simulated consumer credit card usage data and the c ode was developed SAS 9.2 This updates the previous papers presented at NESUG, SGF, and PNWSUG |
proc step, proc tabulate, proc format, class variable, sample, credit card, excel, proc freq | 15 | |
| 52 | Managing Statistical Programmers across the Great Divide: An Odyssey of CRO's, Big and Small Pharma and Biotech, and in NJ, CA and Boston | Todd Case | Managing statistical programmers is difficult given the paradoxical nature of having to possess the technical nature of statistical programming and, at the same time, having to understand and (most importantly) communicate in assisting and overcoming the difficult technical challenges posed to statistical programmers in the pharmaceutical industry. Examples of some of these challenges include: working with legacy data, analyzing trends (e.g., analyzing Liver Function Tests [LFTs] when there can be multiple tests on the same day, time, etc...) and working with new types of analysis (e.g., looking at correlations between biomarkers and disease progression and/or key efficacy endpoints). In addition, managers of statistical programmers routinely have to respond and present to a variety of peers and stakeholders within their own companies (not to mention at industry conferences!) | statistical programmer, phase iii, data science, clinical programming | 3 | |
| 53 | Marketing and Granger Causality: Going Beyond Correlation | Jonathan Prantner | Granger Causality goes beyond correlation to rigorously show that one variable 'causes' movement in another variable. For SAS users of any level, in this paper I discuss the reasons for examining G- Causality, the process, and present two cases where I have proven causality and used the resulting relationships to closely predict sales. The analyses were done in SAS 9.1 and 9.2 and only Base SAS and SAS/STAT were used. The primary analyses, code and output shared are from PROC MIXE D. Special thanks to Steve Kerho, former SVP of Media and Analytics at Organic. Our past collaborations make it difficult to judge where his contributions end and mine begin |
correlation, proc mixed, proc step, regression analysis, likelihood function, create table, lag function, macro loop, proc sql, macro definition, response variable | 11 | |
| 54 | Measuring Internal Consistency of Community Engagement using the ALPHA option of PROC CORR | Renee Gennarelli, Melody S. Goodman |
Comprehensive cancer centers have been mandated to engage communities in their work; thus, measurement of community engagement in projects is a priority area. Siteman Cancer Center's Program for t he Elimination of Cancer Disparities (PECaD) projects seek to align with 11 engagement principles (EP) that have been previously developed in the literature. Fifty community members participating in a PECaD Pilot project were administered a survey with 56 questions on community engagement to evaluate how well the project aligns with EPs. Each EP has 3-6 questions to measure it; Cronbach's alpha is used to examine the internal consistency of items to measure a single EP. PROC CORR with ALPHA option is used to calculate Cronbach's alpha for questions that have been identified as relating to the same EP. In addition to calculating an overall Cronbach's alpha, this also calculates values based on all items with each item removed |
correlation, proc corr, proc step, sample, sample size, data cleaning, missing value, confidence interval | 7 | |
| 55 | Merging SAS Programming Groups: Phased-in Approach | Margaret M. Coughlin, Alfredo Rojas |
The pharmaceutical industry has been undergoing consolidation for some years . When large companies merge, departments need to combine staff. Integrating or merging SAS programming staff who support analysis of clin- ical trials from what was once two separate companies presents logistical, technical and process challenges. The process of integrating SAS programming staff is a multi -year undertaking that provides opportunities as well as challenges. In this paper the authors continue a discussion from their NESUG 2011 paper of a phased- in ap- proach to integrate two large SAS programming groups brought together as a result of a merger of two large pharmaceutical companies | sas programming, clinical database, clinical trial, pharmaceutical industry, sas programmer | 5 | |
| 56 | Model Variable Selection Using Bootstrapped Decision Tree | David J. Corliss | Bootstrapped Decision Tree is a variable selection method used to identify and eliminate unintelligent variables from a large number of initial candidate variables. Candidates for subsequent modeling are identified by selecting variables consistently appearing at the top of decision trees created using a random sample of all possible modeling variables. The technique is best used to reduce hundreds of potential fields to a "short list" of 30 - 50 fields to be used in developing a model. This method for variable selection has recently become available in JMP under the name Bootstrap Forest; this paper presents an implementation in base SAS (v9.x). The method does accepts but does not require a specific outcome to be modeled and will therefore work for nearly any type of model, including segmentation, MCMC, multiple discrete choice, in addition to standard logistic regression. Keywords: Bootstrapped Decision Tree, Variable Selection | proc hpsplit, proc step, proc fastclus, feature selection, bootstrap, sas base, sample, numeric variable, proc contents, dataset, variable list, character variable, proc freq | 8 | |
| 57 | Navigating the Data Universe Aboard the Starship Enterprise Guide | Jayanth Iyengar, Kirk Paul Lafler |
SAS Enterprise Guide is a standalone client application that gives the user access to the power of Base SAS, along with other SAS modules. With Enterprise Guide, one can easily perform the full range of data processing and analysis tasks, from reading, to manipulation, to reporting and graphics. Although EG is oriented towards the analyst with its point and click interface, it includes aspects useful to both the programmer as well as the analyst. This paper gives an overview of each task area, as well as focuses on the pros and cons of using EG | sas enterprise guide, proc step, sas base, proc sql, dataset, relational database, proc report, proc print, data merging, excel, proc freq, data cleaning | 10 | |
| 58 | Nearly Instant SAS Programming | Michael L. Davis | In organizations where the users of SAS software are in the minority, one often finds it necessary to explain how SAS compares to other software tools. Also, some newly-minted college graduates have been tutored on how to use SAS for regression and categorical statistical analysis at the expense of understanding SAS DATA STEP pr o- gramming. This presentation was adapted from one created by the author to meet both needs at his current or- ganization. He hopes that it will be helpful to others with similar needs where they work |
data science, sas programming | 12 | |
| 59 | Need a little SAS help or a knowledge boost? There's a URL for that. | David Lawrence | There are many programming languages and software packages available to get the job done. However, I would argue very few have such great support as SAS from both the user community and SAS itself. In this brief paper I will outline some of the sites and blogs I use on a regular basis to assist me in solving a problem and enhance my knowledge. | sample, sas enterprise guide | 3 | |
| 60 | Ouch, how did that get here? The pitfalls of merging ... | Nancy McGarry | Presentation: SAS is a great and powerful tool for manipulating data. One frequent use of SAS is merging data from different sources into one or more files, but careful attention needs to be paid to how and what one is merging or else the results are not what one expected. This poster looks at 5 common mis-steps in merging data in hopes of preventing a fall by making you more aware of things that can go wrong during a merge. | by group processing, data step, merge statement, dataset, sample | 10 | |
| 61 | OUT= Is on the Way Out - Use ODS OUTPUT Instead | Stanley E. Fogleman | There are, as a general rule, two methods to create a SAS dataset from procedural output. The more traditional one is OUT=. This feature is being replaced by the ODS OUTPUT statement as new capabilities are added to procedures. In the future, only existing variables (generally pre 9.1) will be available on the OUT= statement. Therefore, it behooves the day-to-day SAS programmer to become familiar with the new syntax. |
ods output, output, dataset, out=, file statement | 4 | |
| 62 | Picturing Your Character Variables with PROC FORMAT and SAS 9.3 | Brice Hart | Version 9.3 of SAS software provides a way to format a value by first performing a function on the value . In us- ing this feature we can create a customized template that will format character variables much the same way that a picture format is used to create a template for numeric variables. We can create character templates that will insert separators, fill digits, add a prefix , or translate values. Basically, any features of picture formats can be im- plemented for character variables by creating a user-written function that manipulates the value and then defining a format that calls the function. This paper demonstrates the steps necessary to create a format that uses functions and how this technique can be used to create a picture-like format for character variables. Example code is given to illustrate each step of the process | character variable, proc format, proc step, proc fcmp | 5 | |
| 63 | 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 | 18 | |
| 64 | Pooling strategy for clinical data | Abraham Yeh, ShinRu Wang, Xiaohong Zhang |
Pooling of clinical data is used by all pharmaceutical companies. Submission of a new compound to Health Au- thorities is one of the main reasons to pool data. However, there are multiple other needs for pooling data such as Development Safety Update Report (DSR), Risk Management Plan (RMP), publications, etc. The concept of pooling data is neither new nor defined by a pre-determined set of rules or methodologies. Inevita- bly pooling requirements are project/compound specific and are driven by the objective(s) of the pooled data. There is no obvious right or wrong way to pool data. The intention of this paper is to provide guidance on the crea- tion of pooled datasets with general information, typical pitfalls and key points in order to obtain a robust pool. It will cover topics such as planning, data standards, programming strategies, validation and documentation | data cleaning, data standard, concomitant medications, raw data, missing value, proc means, adverse events | 11 | |
| 65 | Practical Solutions for Pagination, Indention, and Mixed-Text Alignment in ODS RTF Word Documents | Hui Song | The ODS rich-text format (RTF) destination, together with PROC REPORT, makes it possible to produce high-quality, informative, statistical reports, that conform to the FDA CSR submission guidance. However, PROC REPORT misses critical features such as pagination to make customized reports. Text wrapping within the RTF table cells (or listing) makes this task hard to accomplish. Sometimes, for ease of reading, we need to add a category ended with 'Continued' at the top of the following pages when the category spreads across multiple pages. These kinds of requirements make the pagination even harder to achieve. On the other hand, Since SAS no longer has full control of the RFT's layout when using ODS RTF destination, to indent and align mixed text (such as xx.xxx (xx.x %)) also becomes more challenging. This paper presents several practical solutions to address the above mentioned issues and produce good- quality reports in RTF format |
proc report, proc step, ods rtf, sample | 7 | |
| 66 | PROC SQL Pass-Through Log | Adeline J. Wilcox | Careful SAS R⃝ programmers study their SAS logs, checking numbers of observations and variables. Nowadays, time used is less often a consideration. When creating tables with the SQL Pass-Through Facility, none of this information comes out without extra programming. SQL and SAS can be used to print elapsed time as well as row and column counts. 1 Real Time used by a PROC SQL Pass-Through Query Should you pass several queries through to Microsoft R⃝ SQL Server R⃝ in a single invoca- tion of the SQL Pass-Through facility, that together take some time, your SAS log will not tell you which of your queries is slowest. However, if, to the sequence of queries you've passed to the database, you add more queries SELECTing the CURRENT TIMESTAMP , you can make this determination. I ran the query SELECT CURRENT TIMESTAMP both immediately before and after a query that I suspected was slowest. In both cases I saved the value of CURRENT TIMESTAMP using the CREATE TABLE statement |
proc sql, sql pass-through, sas log, proc step, sql server | 4 | |
| 67 | Proc SurveyCorr | Jessica R. Hampton | This paper provides background information on survey design, with data from the Medical Expenditures Panel Survey (MEPS) as an example. SAS survey procedures in SAS/STAT used to analyze such data sets include PROC SURVEYMEANS, PROC SURVEYFREQ, PROC SURVEYREG, and PROC SURVEYLOGISTIC. There is no PROC SURVEYCORR. One solution is to use a macro approach to extract r-squared values from multiple iterations of PROC SURVEYREG when there are many possible predictor variables to examine |
proc step, sample, proc surveyreg, correlation, proc corr, proc sql, proc surveyfreq, proc surveymeans, proc calis, predictor variable, proc logistic, proc surveylogistic, response variable, proc reg, logistic distribution, regression analysis, proc freq, dataset | 7 | |
| 68 | PROC SURVEYSELECT as a Tool for Drawing Random Samples | Taylor Lewis | This paper illustrates some of the many sampling algorithms built into PROC SURVEYSELECT, particularly those pertinent to complex surveys, such as systematic, probability proportional to size (PPS), stratified, and cluster sampling. The primary objectives of the paper are to provide background on why these techniques are used in practice and to demonstrate their application via syntax examples. Hence, this is not a how-to paper on designing a statistically efficient sample-there are entire textbooks devoted to that subject. One exception is that the paper will discuss a few recently incorporated sample allocation strategies-specifically, proportional, Neyman, and op- timal allocation. The paper concludes with a few examples demonstrating how one can use PROC SURVEY- SELECT to handle certain frequently-encountered sample design issues such as alternative sampling methods across strata and multi-stage cluster sampling |
sample, proc step, proc surveyselect, sample size, random sampling, cluster sampling, stratified sampling, systematic sampling, sample weight | 14 | |
| 69 | PROC TRANSPOSE For Fun And Profit | John J. Cohen | Occasionally we are called up on to transform data from one format into a "flipped," sort of mirror image. Namely if the data were organized in rows and columns, we need to transpose these same data to be arranged instead in columns and rows. A perfectly reasonable view of incoming lab data, ATM transactions, or web "click" streams may look "wrong" to us. A lternatively extracts from external databases and production systems may need massaging prior to proce eding in SAS . Finally, c ertain SAS procedures may require a precise data structure, there may be particular requ irements for data visualization and graphing (such as date or time being organized horizontally/along the row rather than values in a date/time variable), or the end user/customer may have specific deliverable requirements. Traditionalists prefer using th e DATA STEP and combinations of Array, Retain, and Output statements . This approach works well but for simple applications may require more effort than is necessary |
proc transpose, proc step, excel, out=, proc sort, dataset, date variable, macro variable, by group processing, keep statement, set statement, missing value, proc sql | 18 | |
| 70 | Quick Results with PROC SQL | Kirk Paul Lafler | Structured Query Language (SQL) is a universal language that allows you to access data stored in relational databases or tables. This hands-on workshop presents core concepts and features on using PROC SQL to access data stored in relational database tables. Attendees learn how to define, access, and manipulate data from one or more tables using PROC SQL quickly and easily. Numerous examples are presented on how to construct simple queries, subset data, produce simple and effective output, summarize data with summary functions, and join two tables |
proc sql, proc step, dictionary tables, where statement, select, inner join, macro variable, sas library, sas log, macro facility, view, create table, group by, macro call, order by, relational database, right join | 17 | |
| 71 | Raw Deal: Dealing With Unpredictable Record Length and Content When Importing Raw Text Data | Daniel R. Bretheim | This paper describes several techniques for importing raw text data containing records with unpredictable record length and content. In this case, the records consist of multi ple "segments", where some segments can occur a variable number of times or not at all. As a result, the beginning location for all but the first segment in each record is unknown. The approach described in this paper uses multiple INPUT statements, several functions, and a multidimensional array to deal with the uncertainties and variability associated with each raw data record | input statement, do loop, index, macro variable | 14 | |
| 72 | Removing Dummy Records From A Directory Of Datasets | David W. Franklin | Ever had to remove dummy records or subset data based on a particular variable in an unknown number of datasets in a directory? There could be 10, 100 or 1000 datasets! Presented is a solution for this undertaking where we first check for the existence of that particular variable in the datasets, then if the variable exists, either keep or drop observations based on the condition set | macro variable, work library | 3 | |
| 73 | SAS for Budgeting an Ideal Wedding | Lucy D'Agostino McGowan | Presentation | if-then-else | 1 | |
| 74 | sasNerd: Better Searches = Better Results | Kirk Paul Lafler, Charles E. Shipp, Richard W. La Valley, Lex Jansen |
As SAS- and JMP-related content continues to grow to new levels the world's leading search engines (Google, Bing, and Yahoo) and their proprietary software, organizes this information and makes it useful and accessible to everyone. Growing numbers of users benefit from the speed, accuracy, organization, and reliability of these powerful search engines, as well as the capabilities that LexJansen.com provides as a web portal for finding relevant SAS and JMP content. Due to the importance of finding desired content whenever it's needed, users turn to their favorite search engine, or LexJansen.com with its repository of 25,000-plus published papers, for their search needs | 5 | ||
| 75 | So Many Films, So Little Time | Lisa Eckler | The Toronto International Film Festival ("TIFF") is an annual event, screening a huge variety of new films for the international film industry as well as the general public. The number of choices means selecting which films to order tickets for can be overwhelming. I suffer the occupational hazard of considering every logic problem in terms of SAS code. Here we explore how to use some very simple code to explore scheduling options, which will support decision-making with the goal of seeing the most films from a priority list in the most enjoyable way. While many of us use SAS for efficiency in our work, this is a small example of how it can also be beneficial for personal time. | excel, proc freq, proc sql | 9 | |
| 76 | So Now You're Using PROC REPORT. Is it Pretty and Automated? | Daphne E. Ewing, Ray Pass |
PROC REPORT will display data. That's a given. That it is more powerful than the standard SAS reporting tool PROC PRINT is also becoming common knowledge. But what can PROC REPORT really do? It is certainly more than a glorified PROC PRINT, but it does take some additional work beyond mastering some of the basics of t he procedure before it can be used to produce output that can rival that of a serious DATA _NULL_ step. This paper will discuss the use of several customized macros that can work together with some PROC REPORT options, and standard SAS title and footnote statements, to make your PROC REPORT output really shine |
proc report, proc step, macro variable, footnote statement, sample, options statement, macro definition | 23 | |
| 77 | So your data is on multiple servers? No worries, SAS can help. | David Lawrence | In my organization there is a massive amount of data that is stored across multiple servers. This is further complicated by the fact the servers are often on different platforms. Some of our primary servers are Oracle, SQL Server, Teradata and even home grown databases using Microsoft Access and Microsoft EXCEL flat files. I'm sure my situation is not unique. SAS has proven to be a great tool for combining data from multiple servers without the necessity of creating unneeded data sets or exports to flat files |
proc sql, sql server, odbc connection, proc step, sample | 4 | |
| 78 | Some Techniques for Integrating SAS Output with Microsoft Excel Using Base SAS | Vincent DelGobbo | This paper explains some techniques to integrate your SAS output with Microsoft EXCEL. The techniques that are presented in this paper require Base SAS9.1.3 SP4 and above, and can be used regardless of the platform on which SAS is installed. You can even use them on a mainframe! Creating and delivering your workbooks on- demand and in real time using SAS server technology is discussed. Although the title is similar to previous papers by this author, this paper contains new and revised material not previously presented |
excel, xls, sas base, proc export, sas output, proc print, title statement, proc step, dataset, sas log, sample, ods html, sas 9, format statement, output delivery system, by group processing | 19 | |
| 79 | SQL Metadata Applications: I Hate Typing | Hannah Fresques | This paper covers basics of metadata in SQL and provides useful applications, including: finding variables on one or more data sets; identifying common or different variables on data sets; storing lists of variable names in macro variables; and generating code using text strings of metadata | proc sql, macro variable, proc step, proc contents, dictionary tables | 6 | |
| 80 | Submitting SAS Code On The Side | Vincent DelGobbo | This paper explains the new DOSUBL function and how it can submit SAS code to run "on the side" while your DATA STEP is still running. It also explains how this function differs from invoking CALL EXECUTE or invoking the RUN_MACRO function of FCMP. Several examples are shown that introduce new ways of writing SAS code |
macro variable, proc step, proc sql, call execute, dosubl, data step, macro definition | 5 | |
| 81 | Ten Things You Should Know About PROC FORMAT | Jack N. Shoemaker | The SAS system shares many features with other programming languages and reporting packages. The programming logic found in the ubiquitous DATA STEP provides the mechanisms for assignment, iteration, and logical branching which rest at the core of any procedural language. Analytic data displays, like the humble frequency cross- tabulation produced by the FREQUENCY procedure, may be replicated with varying degrees of success using any number of other products. The FORMAT procedure is another matter. Somewhat like an enumerated data type; somewhat like a normalized and indexed reference table; it really has no exact analog in these other products and packages. There's a lot you can do with PROC FORMAT. And, there's a lot to know about PROC FORMAT. The aim of this paper is to provide insight on at least ten of those things which you should know |
proc format, user-defined format, proc step, work library, char., proc catalog, proc freq, proc sql | 5 | |
| 82 | The ADaM Solutions to Non-endpoints Analyses | Chengxin Li | There always exist some analyses for non endpoints in the study. These analyses normally do not have inferential statistics, nor data/date imputations, nor timing windows, nor complicated derivations. With the example analysis on medical history based on SDTM MH domain , this paper describes different ADaM solutions to non -endpoints occurrence data : No ADaM Data Structure (NDS), ADaM Incidence Data Structure (IDS), or ADaM Basic Data Structure (BDS). Among the solutions, the NDS one is preferred in sense of simplicity and cost effective | bds, imputation, adam dataset, adverse events, medical history, sdtm domain, medical history summary, raw data, data science, cdisc | 12 | |
| 83 | The Basics of Using the SAS Excel Add-in | Jennifer Davies | As data gets bigger and bigger, users need to find new ways to manage it. Oftentimes, the person that needs to use the data is not a programmer and can become overwhelmed trying to make sense of pulling their own data. This paper will show the user who is more comfortable in Microsoft EXCEL how to utilize SAS in a simple and easy way and still get all the complex data that they need. This paper will be geared towards the non-SAS user or beginner. I will be using MS EXCEL 2003 and SAS 9.2 for my examples. I will be covering how to pull the data into EXCEL and page it into manageable groups of data, which will include filtering and sorting data as it comes in. I will also cover the basic functions such as creating a pivot table or graphs directly from the SAS data |
excel, dataset, bar chart, sas enterprise guide | 14 | |
| 84 | The SAS Data Set Compressor Application | Yonghong Shang, Barbara Gustavson |
This paper presents a SAS data set compressor application (SDSCA) that was developed to automatically compress all SAS files in a project directory and its subfolders using the appropriate algorithm for compression. Choosing the correct algorithm to use is critical in terms of condensing the file size and reducing the cost of storage. Using the COMPRESS= option in the SYSTEM OPTIONS or LIBRARY OPTIONS applies only one algorithm for all files in the SAS programming module and thus is not an optimal choice for execution. The selection of the algorithm is influenced by the types of variables and the record lengths in the SAS data set. A comparison is made among the sizes of the original SAS file and its two compressed SAS files created by applying each of the compression algorithms, CHAR and BINARY. The smallest file is then save d as the final output file. Using the SDSCA could result in significant reductions in disk space, and thus storage costs | dataset, macro variable, txt, libname statement, macro loop, character variable, do loop, filename statement, options statement | 9 | |
| 85 | The Smarts of Using Dummies | Patricia Meholick | Indicator variables or dummy numbers are a quick way to add a level of quality control and organization to a dataset. Binning continuous variables, such as creatinine clearance into low, med or high subgroups allows for clinical analysis based on renal insufficiency categories. The creation of unique indicator variables can ensure the correct merging of datasets and can be implemented as a quality check. For example, creating a unique variable for each ID and time combination will ensure that the concentration information associated with these variables is being merged correctly, regardless of whether there are repetitive subject numbers and/or time points between studies. Indicator variables can also be useful in keeping records of changes between the initial dataset and if any subjects or observations were dropped throughout an analysis. Furthermore, actual data can be utilized to create a dataset to simulate the outcomes of different doses or dosing regimens | binary variable, character variable, interval variable | 4 | |
| 86 | The Ultimate Macro to Generate Summary Tables | Lan Hu, Xiaoqiang Wang |
Tables showing cross-tabulating of multiple covariates by one categorical outcome with p-values are very common in clinical trial reports and medical publications. Often we're facing 3 challenges trying to produce such tables: (1) because the covariates could be either categorical or continuous, the appropriate tests may differ from one to another to obtain the p-values; (2) for a categorical factor, the order of its levels in the output may not be what you want; (3) we want the program easily expandable to handle a huge # of covariates. The purpose of this paper is to demonstrate an approach that makes such effort easier. We build our solution around a very powerful, flexible, and "green" macro. The programming techniques are very pedagogical and examples will be illustrated | nominal variable, proc step, proc means, missing value, proc freq, interval variable, anova, out=, proc report, clinical trial, exact test | 12 | |
| 87 | Time Contour Plots | David J. Corliss | This new SAS tool is two -dimensional color chart for visualizing changes in a population or system over time. Data for one point in time appear as a thin horizontal ban d of color. Bands for successive periods are stacked up to make a two - dimensional, with the vertical direct ion showing changes over time. As a system evolves over time, different kinds of events have different characteristic patterns. Creation of Time Con tour Plots is explained step by step. Examples are given in astrostatistics, biostatistics, econometrics and demographics. Keywords: Data Visualization, PROC CONTOUR, Time Series Analysis |
contour plot, interval variable, time series analysis, proc step | 11 | |
| 88 | Transferring SAS Datasets from z/OS to SQL Server Databases | Lan Hu, Xiaoqiang Wang |
This paper demonstrates an efficient method to make local SQL Server backups of large SAS data sets hosted in z/OS (not directory-based file system) mainframe computers based on the authors' hands-on experience. We will discuss several ways to transfer the data from z/OS to SQL Server. In addition, best suggestions will be given for data that are either active on disk or already archived on tape | sql server, proc sql, txt, proc step, dataset, delimited file | 6 | |
| 89 | Uncovering Patterns in Textual Data for SAS Visual Analytics and SAS Text Analytics | Meera Venkataramani | SAS Visual Analytics is a powerful tool for exploring data to uncover patterns and hidden opportunities. The challenge with the growing amount of data is that the majority is unstructured, often in the form of customer feedback, survey responses, social media conversation, blogs, news articles, and other unstructured text. By integrating SAS Visual Analytics with SAS Text Analytics, you can uncover patterns in both structured and unstructured data, while enriching and visualizing your data with customer sentiment and categorical flags, and uncovering root causes that primarily exist within unstructured data. This paper highlights a case study that provides greater insight into unstructured data and demonstrates advanced visualization, while enhancing time to value by leveraging SAS Visual Analytics high-performance, in-memory technology and SAS advanced text analytics capabilities | unstructured data, root cause analysis | 11 | |
| 90 | Understanding the outliers in healthcare expenditure data | Gandhi Bhattarai | When data are distributed normally, distance- and ranking-based outlier detection methods based on interquartile ranges, standard deviations, etc. can be simple yet powerful tools to understand variation. Data related to healthcare expenditures generally have skewed distributions, however, and may include many extreme values. Often these data are used in case-control or other studies to estimate the impact of interventions such as wellness or disease management programs that are designed to improve health. To produce more accurate and useful program impact estimates, the skewed healthcare expenditure data need special handling. For example, the presence of outliers in the program intervention (treatment) or non-intervention (comparison) groups can influence the magnitude and variance of the program impact estimate | outlier, regression analysis, propensity score, standard deviation, sample, logistic regression, gamma distribution, interquartile range, logistic distribution, normal distribution, proc robustreg, macro definition, macro variable | 15 | |
| 91 | Use of SAS for Clinical Trial Management and Risk-Based Monitoring of Multicenter Clinical Trial Data from Electronic Data Capture Tools | Bob Hall, David Gagnon |
Risk-based monitoring of clinical trials is an approach that combines on-site monitoring along with centralized remote monitoring by coordinating centers, to improve the quality of research study data and enhance human subject protection. This methodology focuses on risk assessments of the captured information and designing protocol specific approaches with periodic data evaluations to ultimately improve the effectiveness of monitoring activities and study efficiency. One arm of this approach is using operational trial data to identify sites with higher frequencies of data irregularities and target their activities with monitoring and training to improve outcomes data. Electronic data capture (eDC) systems, which have revolutionized collection of clinical research data, can impact these monitoring efforts. While commercial eDC tools offer a number of data management and reporting applications within their interfaces, one can further capitalize on backend system tables to enhance reporting and inform project stakeholders of study activities. SAS reporting features can be used to analyze system tables and provide custom reports that benefit risk-based monitoring as well as other trial management processes. For instance, tables on case report form (CRF) status levels can be used to generate reports on missing or expected form completion for project managers, site personnel, and monitors. In addition tables on automated data clarifications (DCF), monitoring or data management reviews, audit trails, or data freezing/locking can be utilized to inform trial personnel of ongoing study activities. Reports based on eDC system tables can be enhanced with SAS Output Delivery System (ODS) in generating reports in multiple formats such as HTML, RTF, or EXCEL files. Efficiency of programs can be improved with PROC SQL and ODBC connections to eDC system tables that are SQL based. This paper and presentation will explore methods that can be used to improve eDC clinical reporting and assist with risk-based monitoring to lead to better quality data, participant safety, and cost-effectiveness and improvements in the administration of research trials. |
clinical trial, proc sql, edc, data governance, odbc connection, crf, clinical data, relational database, proc step, adverse events, visit, output delivery system, audit trail, macro variable, protocol deviations, excel, missing value, proc report, sql server, macro loop, data cleaning, dataset, %if-%then-%else | 14 | |
| 92 | Using ODS Regions to Create Custom Reports | Kate Morrow | Presentation | proc report, proc step, confidence interval, output delivery system, network data, ods pdf, risk adjustment | 10 | |
| 93 | Using PROC GLIMMIX and PROC SGPLOT to Demonstrate County-level Racial Disparities in Obesity in North Carolina | Lucy D'Agostino McGowan, Melody S. Goodman |
Introduction: The agenda to reduce racial health disparities has been set primarily at the national and state levels. These levels may be too far removed from the individual level where health outcomes are realized . This disconnect may be slowing the progress in reducing these disparities. Methods: Behavioral Risk Factor Surveillance System data is used to estimate the prevalence of obesity by county among Non-Hispanic Whites and Non-Hispanic Blacks. A modified w eighting system was developed based on demographics at the county-level, and a multilevel reweighted regression model using PROC GLIMMIX is fit to obtain county -level prevalence estimates by race. Results: To examine whether racial disparities exist at t he county-level, these rates are compared using risk difference and rate ratio. These county-level estimates are then compared graphically using PROC SGPLOT |
proc step, regression analysis, proc glimmix, proc sgplot, sample, two-sample test | 9 | |
| 94 | Using PROC TABULATE and ODS Style Options to Make Really Great Tables | Wendi L. Wright | We start with an introduction to PROC TABULATE, look ing at the basic syntax, and then building on this syntax by using examples. Examples will show how to produce one-, two-, and three-dimensional tables using the TABLE statement. More examples cover ho w to choose statistics for the table, labeling variables and statistics, how to add totals and subtotals, working with percents and missing data, and how to clean up the table using options. A look at the three ways you can use the PRELOADFMT option is also covered. Next the ways to use the ODS STYLE= option in PR OC TABULATE are covered. This option helps to customize the tables and improve t heir attractiveness. This option is very versatile and, depending on where the option is used, can justify cells or row and column headings, change colors for both the foreground and background of the table, modify lines and borders, controlling cell width, add a flyover text box in ODS HTML, or add GIF figures to the row or column headings |
proc tabulate, proc step, class variable, proc format, proc means, missing value | 19 | |
| 95 | Using SAS and D3.js to create interactive visualizations for ADaM and SDTM data. | Nathan Mockler | While SAS software excels at creating plain and rich text output, it struggles outside of JMP software to create interactive visuals, and JMP limits the customization possible. In the field of data visualization, the gold standard is D3.js, a Javascript library created by Mike Bostock and used in such places as the New York Times and NPR. The advantage of D3.js is that it creates complex data-driven documents using open web standards, allowing informa- tion to be shared without having to install additional software. This paper will show how to "link" data created from SAS using XML to this process, creating web pages that can be shared on internal or external networks to visual- ize clinical data | proc step, scatter plot, cdisc | 12 | |
| 96 | Using SAS Metadata as a Key Performance Indicator! | Vincent J. Amoruccio | Key Performance Indicators (KPIs) help organizations track progress towards goals. SAS Metadata can be used as a platform neutral KPI to help your company do more, faster and better! The concept of metadata is often mis- understood since the term metadata is ambiguous. However, data about our data can be used as KPIs to quanti- fiably track and measure the success of analytical projects. The purpose of this paper is to show how to use SAS objects as metadata and track almost every aspect of your analytical deliverables. It will specifically ad- dress metadata for code reviews, check logs, and validation compliance. Finally, it will explain how to read in data from operating systems and create a utility to understand the status of a programming project | proc compare, data cleaning, character functions, independent qc, filename statement, proc tabulate, ods output, excel, index, input statement, output, sample, clinical programming | 11 | |
| 97 | Using SAS ODS Graphics | Chuck Kincaid | This presentation will teach the audience how to use SAS ODS Graphics. Now part of Base SAS, ODS Graphics are a great way to easily create clear graphics that allow any user to tell their story well. SGPLOT and SGPANEL are two of the procedures that can be used to produce powerful graphics that used to require a lot of work. The core of the procedures are explained, as well as the options available. Furthermore, we explore the ways to combine the individual statements to make more complex graphics that tell the story better. Any user of Base SAS on any platform will find great value from the SAS ODS Graphics procedures |
proc step, series plot, sas base, proc sgplot, numeric variable, proc sgpanel | 18 | |
| 98 | Using SAS ODS Tagsets to Create Non-SAS User Friendly Reports | Stuart Summers | Files and reports created by SAS applications are being sent to clients and end-users that do not use SAS. This usually means reformatting files to be imported into non-SAS form for their use. Reformatting could mean creating flat files, delimited files, even HTML files that would imported into the end-user's applications, in most cases into a spreadsheet application for their own analysis and decision process. An alternative is to use SAS Output Delivery System (ODS) and TAGSETS to create an '.xml' file that the end-user could easily import into a spreadsheet document. This paper will lay out the basics to set up the process as well comparing it to creating a delimited file and creating an HTML document |
excel, output delivery system, proc step, delimited file, proc freq | 10 | |
| 99 | Using SAS PROC IMPORT to Read CMS Hospital Compare and HCAHPS Data in Support of a Hospital Pay-for-Performance Program | Michael Cunningham, Don Colarosa |
Highmark, Inc., which operates health insurance plans in Pennsylvania, Delaware, and West Virginia, is one of the largest health insurers in the U.S. One of Highmark's quality initiatives is the Quality BlueSM hospital pay-for- performance program, which incents a hospital based upon its performance on quality indicators as well as the hospital's performance on CMS' Hospital Compare measures and HCAHPS scores. Hospital Compare provides information about the quality of care for hospitals across the country and HCAHPS is a patient survey sent to indi- viduals who have been recently discharged to characterize their hospital experience. The Hospital Compare and HCAHPS data are routinely updated and made available to the public for download as Microsoft Access data- bases or CSV flat files. The Access file is a single database containing separate tables with hospital-specific data and state and national averages |
sample, proc import, proc step, if-then-else, excel | 13 | |
| 100 | Using the CLP Procedure to Solve the Agent-District Assignment Problem | Stephen B. Sloan, Kevin K. Gillette |
The Challenge: assigning outbound calling agents in a telemarketing campaign to geographic districts. The districts have a variable number of leads and each agent needs to be assigned entire districts with the total number of leads being as close as possible to a specified number for each of the agents (usually, but not always, an equal number). In addition, there are constraints concerning the distribution of assigned districts across time zones, in order to maximize productivity and availability. Our Solution: uses the SAS/OR procedure PROC CLP to formulate the challenge as a constraint satisfaction problem (CSP), since the objective is not necessarily to minimize a cost function, but rather to find a feasible solution to the constraint set |
proc step, macro variable | 10 | |
| 101 | Using the SAS ODS Report Writing Interface to Produce Codebooks for Survey Data | Nancy Cole, Cassandra Baxter |
Codebooks provide critical documentation of survey data, including: variable names, code definitions, the distribu- tion of responses, and the full question text as it was read to respondents. This paper shows how we automated codebook production using SAS macros. Our "Makedata.sas" macro compiles metadata from a formatted SAS data file; our "Codebook.sas" macro writes the metadata to an RTF or HTML codebook using the SAS ODS report writing interface. A formatted SAS data file contains most of the information needed to generate a simple code- book with our macros. We add the survey questions by compiling the full question text and corresponding SAS variable names in EXCEL. The system was recently used to produce codebooks for the USDA National Household Food Acquisition and Purchase Survey (FoodAPS) which was known in the field as the National Food Study. 1 |
proc step, excel, variable, proc freq, macro definition, frequency analysis, xls, macro call, format statement, variable list, sample, dataset | 20 | |
| 102 | What You're Missing About Missing Values | Christopher J. Bost | Do you know everything you need to know about missing values? Do you know how to assign a missing value to multiple variables with one statement? Can you display missing values as something other than . or blank? How many types of missing numeric values are there? This paper reviews techniques to assign, display, reference, and summarize missing values for numeric variables and character variables. | missing value | 11 | |
| 103 | Where in the World Are SAS/GRAPH Maps? An Exploration of the Old and New SAS Mapping Capacities | Louise S. Hadden | SAS has an amazing arsenal of tools to use and display geographic information that is relatively unknown and underutilized. This presentation will highlight both new and existing capacities for creating stunning, informative maps as well as using geographic data in other ways. SAS provided map data files, functions, format libraries and other geographic data files will be explored in detail. Custom mapping of geographic areas will be discussed. Maps produced will include use of both the annotate facility (including some new functions) and PROC GREPLAY. Products used are Base SAS and SAS/GRAPH. SAS programmers of any skill level will benefit from this presentation |
macro variable, proc step, sample | 16 | |
| 104 | With a Trace: Making Procedural Output and ODS Output Objects Work For You | Louise S. Hadden | The Output Delivery System (ODS) delivers what used to be printed output in many convenient forms. What most of us don't realize is that "printed output" from procedures (whether the destination is PDF, RTF, or HTML) is the result of SAS packaging a collection of items that come out of a procedure that most people want to see in a predefined order (aka template.) With tools such as ODS TRACE, PROC CONTENTS and PROC PRINT, this paper explores the many buried treasures of procedural output and ODS output objects and demonstrates how to use these objects to get exactly the information that is needed, in exactly the format wanted |
estimate, proc step, output delivery system | 23 | |
| 105 | Working with Excel spreadsheets using the SAS/ACCESS LIBNAME statement | Gwen Babcock | SAS programmers often receive data in a Microsoft EXCEL spreadsheet, and need to convert it into a data set. They are of- ten requested to provide output in a EXCEL spreadsheet as well. This paper describes the basics of using the SAS/ACCESS LIBNAME statement to convert data from an EXCEL spreadsheet to a SAS data set, as well as to convert a SAS data set to an EXCEL spreadsheet. Examples are given using SAS 9.3 under Windows XP ; very little prior knowledge of SAS is assumed. In addition, tips for solving several common problems are given |
excel, libname statement, proc step, variable, proc contents, proc print, name range list, dataset, label statement | 6 | |
| 106 | You Could Be a SAS Nerd If . . . | Kirk Paul Lafler | Are you a SAS nerd? Wiktionary, a wiki-based Open Content dictionary, defines "nerd" as a person who has good technical or scientific skills, but is generally introspective or introverted. Another definition is a person who is intelligent but socially and physically awkward. Obviously there are other definitions for "nerd", many of which are associated with derogatory terms or stereotypes. This presentation focuses not on the negative descriptions associated with being a nerd, but on the many positive traits SAS users possess. So let's see how nerdy you actually are using the mostly unscientific, but fun, "Nerd" detector | sas programmer, sas log | 4 |
This site serves as a convenient hosting location and does not work as a publisher. All copyrights belong to their respective owners.
The information on this site is provided for general reference purposes only. Whilst every effort is made to ensure that the site is up to date and accurate, no warrant, nor any responsibility or liability for, the accuracy or completeness of the content or for any loss which may arise from reliance on information contained in this site is provided. Links to other sites are provided for your convenience but no responsibility or liability for the content of those sites or of any external site which links to this site is accepted. References to any specific commercial product, process, service, or corporation are also for information only, and do not constitute endorsement, recommendation or favoring.
SAS is a registered trademark of SAS Institute Inc. SAS, Statistical Analysis System, and all other SAS Institute Inc. product or service names are registered trademarks or trademarks of SAS Institute Inc. in the USA and other countries. ® indicates USA registration.
HOME
QUICK SEARCH
AUTHORS
KEYWORDS
HELP
BUGS