HOME QUICK SEARCH AUTHORS KEYWORDS HELP BUGS

SESUG 2020 Papers - Index

50 papers. Source: SESUG (SouthEast SAS Users Group) conference proceedings.

# Title
×
Authors
×
Abstract
×
Keywords
×
Extras Pages
1 A Doctor's Dilemma: How Propensity Scores Can Help Control for Selection Bias in Medical Education Deanna Naomi Schreiber-Gregory An important strength of observational studies is the ability to estimate a key behavior's or treatment's effect on a specific health outcome. This is a crucial strength as most health outcomes research studies are unable to use experimental designs due to ethical and other constraints. With this in mind, one drawback of observational studies (that experimental studies naturally control for) is that they lack the ability to randomize their participants into treatment groups. This can result in the unwanted inclusion of a selection bias. One way to adjust for a selection bias is by using a propensity score analysis. In this paper, we explore an example of how to use these types of analyses. In order to demonstrate this technique, we seek to explore whether clerkship order has an effect on National Board of Medical Examiners (NBME) and United States Medical Licensing Examination (USMLE) exam scores for 3rd year military medical students propensity score, sample, regression analysis, logistic distribution, sample size, logistic regression, causal inference, treatment effect, potential outcomes, predictor variable, proc step, randomization, likelihood function, proc freq, response variable, histogram source 13
2 A Game Plan for Beating the IF-THEN-ELSE Overhead in DATA Steps Jason J. Su The IF-THEN-ELSE logic enables programs to conditionally execute transformation codes and may be the most ubiquitous element in SAS DATA steps. However, it is known that albeit its intuitive structure and simple syntax, the construct comes with discernable computational overhead for SAS programs, which exacerbates dramatically for the modern data containing millions or billions of records. Fortunately, there are multiple powerful technique advances and recent SAS upgrades at the programmer's disposal to bypass the logic. However, it has become baffling for programmers to promptly pick the right technique for the different tasks. Therefore, a practical game plan is devised here which is composed of five (5) short evaluation questions and their straightforward technical solutions. If followed, the game plan can help programmers avoid the overuse of the IF-THEN statement and land them lickety-split the specific tool for the job at hand with much reduced or no overhead proc format, proc step, select, by group processing, when, macro variable, sas function, numeric variable, proc sql, if-then-else, adverse events, cpu time source 20
3 A Visual Step-by-step Approach to Converting an RTF File to an Excel File Kirk Paul Lafler Rich Text Format (RTF) files incorporate basic typographical styling and word processing features in a standardized document that many programs and applications are able to read. In today's high-tech arena sometimes the contents of an RTF file needs to be viewed as, and even converted to, an EXCEL file. You would think that since both RTF and EXCEL are Microsoft standards that this would be a simple process to achieve, but you may be surprised to find out that is not the case. Learn about several "free" web-based and online applications as well as traditional SAS-based programming techniques that can be used to convert an RTF file to an EXCEL file excel, txt source 5
4 Advanced Project Management beyond Microsoft Project, Using PROC CPM, PROC GANTT, and Advanced Graphics Stephen B. Sloan The Challenge: Instead of managing a single project, we had to craft a solution that would manage hundreds of higher- and lower-priority projects, taking place in different locations and different parts of a large organization, all competing for common pools of resource s. Our Solution: Develop a Project Optimizer tool using the CPM procedure to schedule the projects and using the GANTT procedure to display the resulting schedule. The Project Optimizer harnesses the power of the delay analysis feature of PROC CPM and its coordination with PROC GANTT to resolve resource conflicts, improve throughput, clearly illustrate results and improvements, and more efficiently take advantage of available people and equipment proc step, proc sql, excel source 10
5 An Introduction to SAS DATA Step Hash Programming 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, proc transpose, proc step, lookup, sas log, composite key, proc sql, dataset, proc sort, sas base source 12
6 Analysis and Reporting of Reactogenicity Events in Vaccine Clinical Trials Amarnath Vijayarangan,
Sarah G. Anderson,
Santhiya Poongavanam
Reactogenicity events are usually the primary endpoint, in terms of safety, in vaccine clinical trials. They are pre-specified adverse events that are commonly known to be associated with a vaccine. These events are usually recorded within 60 minutes of vaccination, and each day through 7 days following any vaccination for most killed and recombinant vaccines. For most live vaccines, the event monitoring period is 14 or more days. There is also a telepho nic interview or questionnaire follow-up period of at least 30 days for live or killed vaccines. The Case Report Forms (CRF) are designed to accommodate daily recording of these events during the predefined observation period. These reactogenicity events are classified as local or systemic reactions. Examples of local reactions include erythema, induration, pain, and tenderness. Examples of systemic reactions include fever, headache, and vomiting clinical trial, safety population, phase ii, adverse events, phase iv source 9
7 Application and comparison with several types of Ensemble Algorithms Yida Bao,
Philippe Gaillard
Ensemble method is one of the common algorithms in Machine learning field. Researcher use algorithms to generate models composed of multiple weaker models that are independently trained and whose predictions are combined in some way to make the overall better prediction. In this paper, we will focus on Gradient Boosting Machines(GBM), Stacked Generalization (Stacking) and Random Forest those three typical algorithms. We use different algorithms to test different types of data set and compare the accurate result. SAS Enter Miner would be used to achieve this process machine learning, data mining, proc hpforest, regression analysis source 6
8 Building SAS-Powered Web Apps with the SASjs Framework Krishna Acondy,
Allan Bowe
Build SAS-Powered HTML5 Web Apps faster than ever before, with the SASjs Framework - a set of tools and utilities for frontend, backend, build, deployment, documentation and more. The framework consists of a JS library, a SAS Macro library, and an Node Package Manager (NPM) command line tool - all of which can be used independently, but together provide a serious accelerator to web development projects. This paper provides an overview of the framework and a quickstart guide to help you build and deploy a HTML5 app on SAS 9 or Viya. Prerequisites for using these tools for web development projects include SAS 9.3 or Viya, and NPM sas 9, sas viya source 7
9 Check the aCRF through Programming Hengwei Liu,
Daiichi Sankyo
The annotated case report form (aCRF) is a very important document for the creation of SDTM datasets. Study programmer needs to make sure that the aCRF is accurate, up-to- date and consistent with the SDTM data specifications and SDTM datasets. Presented in this paper is a programming approach to compare different versions of aCRF for the same study, and to compare the aCRF with the SDTM data specifications and SDTM datasets sdtm domain, sample, sas function, cdisc source 12
10 Code Generating Code: An alternative to Macros David B. Horvath While the macro capability within SAS is very powerful, there are times that the complexity of the code you want to generate make it easier to directly generate code rather than use macros. Some of the advantages and disadvantages of each approach will be discussed as well as examples on how to implement. Unfortunately, the logging of macro-generated code is difficult to read (including decoupling of Timer statistics). While directly generating code allows the use of all SAS capabilities, it does add code complexity (but easier to read in the log). Direct generated code also allows you to split execution environment -- interactive code generation while execution takes place in a background/batch/operating system command line mode cpu time, alter table, macro variable, proc step, proc sql, proc contents, data step source 18
11 Controlling the Order of Data in SAS Imelda C. Go This paper will go over a number of SAS features and techniques SAS programmers use to control the sort order of data in their data sets and reports. A custom sort order is very important because actual needs in the field are not limited to alphabetical, numeric, or alphanumeric ordering. There are many situations where a custom sort order is what is preferred in an organization and/or for reporting proc sql, proc step, missing value, proc sort source 9
12 Creating Data Listings Utilizing PROC Procedures Ballari Sen This paper describes the implementation of clinical datasets mapping with structured programming design and methodology. PROC procedures is a powerful tool for SAS programmers. PROC SQL Procedure combines DATA STEP functionality & PROC data steps into a single step. PROC SQL can be used to retrieve, update, sort & summarize & create PROC REPORT from other SAS Datasets or another database. The focus of this paper will detail the advantage of using PROC SQL and to help clinical programmers utilize the various SQL style codes of the SELECT statement. PROC SQL is a preferred choice in programming to improve the performance & efficiency. This paper further discusses the utilization of PROC SQL to create data listings for data review & mapping specifications proc sql, proc step, adverse events, create table, subject visits, proc report, data step, group by, order by, select source 9
13 Custom Errors, Warnings, and Notes in SAS, Plus a Somewhat Practical Use of PROC EXPLODE Aaron Brown This paper discusses how to put (via PUT statements) custom errors, warnings, and notes into the SAS log. This paper also details a use of the EXPLODE procedure as a way to draw one's attention to important custom notices within the SAS log sas log, put statement, if-then-else source 5
14 Custom SAS Studio Tasks for All Occasions John Stephen Taylor SAS is an analytics leader that empowers its customers to turn data into decisions, and SAS Studio Tasks have made it easier than ever for users to run complex statistical analyses using a simple point- and-click interface. The suite of tasks that comes preloaded with SAS Studio is impressive, but customers will always have reporting and analytics needs that cannot be met by these initial tasks. Fortunately, it is possible for SAS users to develop their own custom tasks. In this paper, I discuss a custom SAS Studio Task I developed involving multinomial probability. The multinomial distribution is a generalization of the binomial distribution and models probabilities for m possible outcomes, each with a fixed probability of success, in a predetermined number of n trials. This task has many industry applications, such as in manufacturing engineering and quality assurance. However, its applications are theoretically limitless and not restricted to industry sample, quality assurance, multinomial distribution, sas studio, sample size, binomial distribution source 10
15 Data Security in SAS using Encryption and Hashing Rajasekar Sundaram In the current digital world, restricting unauthorized access to sensitive data is of paramount importance. SAS provides different methods to secure data. The main objective of this paper is to describe two major methods to protect SAS datasets from the data security breach. The first method is about providing controlled user acce ss to the datasets through encryption. The second method is about masking con fidential information with the help of the hashing technique. By combining both e ncryption and hashing, unauthorized data access can be restricted. This paper will describe briefly both encryption and hashing technique. Key words Encryption, Hashing functions, AES, Data Security credit card, sample, hashing function source 6
16 Data Step versus Everybody: Approaching Problems as a Beginning Coder Brian K. Varney SAS has had the DATA STEP and Base SAS procedures since its inception. PROC SQL was added in the late 1980s and introduced an additional powerful tool for problem solving. If you are relatively new to SAS, it can be confusing to choose an approach. This paper intends to guide a beginning SAS programmer on what to use depending on the ETL and/or macro variable creation needed for your programming problem proc step, proc sql, macro definition, character variable, data step, lag function, numeric variable, proc means, macro variable source 13
17 Efficiently Apply a Change File to a Large File via DATA Step MODIFY and _IORC_ Thomas E. Billings The MODIFY statement of the SAS DATA STEP is less commonly used than SET or MERGE; it supports changing a SAS file in-place. There are multiple versions of the MODIFY statement; herein we focus on MODIFY with a KEY= option and an associated SET statement. We begin with an overview of MODIFY and then discuss the automatic variable _IORC_ which functions as an "input/output return code" from I/O operations. The %SYSRC macro function is provided to test return codes using SAS-supplied mnemonics; this avoids hard-coded values and provides a degree of portability. We provide test data and sample MODIFY code that is annotated with explanations. We conclude by discussing whether _IORC_ has a wider range of applications than just MODIFY. Keywords: MODIFY, KEY=, SET, macro functions, %SYSRC, _IORC_, IORCMSG, error handling. SAS products: Base SAS. User level: intermediate+ modify statement, set statement, sysrc, automatic variable, sample, proc step, proc sql source 7
18 Equity Data: Using SAS to Establish the Baseline Kelly D. Smith Educational institutions across the United States are taking steps to achieve equity in access, progress, and outcomes for all students. Progress toward equity is measured against a starting baseline in order to effectively evaluate the efficacy and efficiency of institutional efforts. SAS offers several options for exploring equity data to establish the baseline against which equity efforts are measured. The presentation, appropriate for all levels of SAS users, will demonstrate the utility of SAS for analyzing and presenting equity data using Base SAS and SAS Enterprise Guide. The discussion will include PROC FREQ, PROC TABULATE, PROC REPORT, PROC SGPLOT, and SGPANEL. Code and visualization examples will be shared during the presentation proc step, sas base, sas enterprise guide, proc sgplot, proc freq, proc report, bar chart, scatter plot, proc sgpanel, proc tabulate, proc sql source 10
19 Executing long-running processes under UNIX/Linux David B. Horvath While Enterprise Guide and Studio are great tools, they require continued connections while your process is running. If the connection ends for any reason (network, VPN, local power outage, etc.), you lose the results. By executing Grid SAS from the operating system command line, so long as the server remains up, you will be able to get the results. Topics: Logging onto the server Moving your code to the server (via SFTP) Executing your SAS code in the background Monitoring execution Viewing/Retrieving logs Basics of vi (visual editor) sas enterprise guide, sas grid, sample source 9
20 Exploring Professional Data Science / Analytics Skills Kirk Paul Lafler As 2.5 quintillion bytes (1 with 18 zeros) of new data are created each and every day, the age of big data has taken on new meaning with a renewed sense of urgency to prepare students, young professionals, and other professionals across job functions for today's and tomorrow's analytics-roles along with the necessary skills to tackle growing data demands. With the number of organizations embracing Data Science / Analytics skills, the Bureau of Labor Statistics (BLS) projects the employment of computer and information research scientists with skills in data science, big data analytics, machine learning, AI, robotics, and programming will grow 16% from 2018 to 2028, much faster than the average for all other professions. ZDNet (Dec 2019); a website devoted to news coverage and analysis on the trends, technologies, and opportunities that matter to IT professionals and decision makers; found that data know-how is in demand and that Data Science dominates LinkedIn's emerging jobs rankings data science, proc sql source 6
21 Exploring the MSGLEVEL= SAS System Option and PROC SQL _METHOD Option Kirk Paul Lafler The SQL Procedure contains powerful options for users to take advantage of. This paper explores the fully supported _METHOD option as an applications development and tuning tool to provide an understanding of the processing hierarchy (or execution plan) of any SQL query proc sql, proc step, sas log, options statement, where statement, error message, data merging source 5
22 Getting a Handle on All of Your SAS 9.4 Usage Stephen B. Sloan SAS is very popular, versatile, and easy to use, so it proliferates rapidly through an organization. It can handle systems integration, data movement, and advanced statistics and AI, has links to a large amount of file types (Oracle, EXCEL, text, and others), and has functionality to meet almost every need. In addition to SAS Base, there are a large number of specialized and special-purpose SAS products, some of the most popular of which are SAS STAT, SAS OR, SAS Graph, SAS Enterprise Miner, and SAS Forecast Server. SAS EG allows for quick creation of useful artifacts and then facilitates saving the generated code for later use as part or all of another program. As a result of the above, sometimes it is difficult to track all of the SAS programs and artifacts being used across an organization, and economies of scale can be overlooked and repetition and "reinventing the wheel" sometimes take place proc step, data mining, dataset, macro call, sas enterprise guide, macro definition source 6
23 Getting Started with SAS Viya and the R SWAT Package Brian K. Varney SAS Viya gives SAS and R developers the ability to collaborate and work off the same data sitting in memory on a SAS Viya server. This paper intends to show how to set up the connection from RStudio and process data using SAS Cloud Analytic Services (CAS). Examples will also be shown comparing the execution of analytics using R Studio and SAS Viya sas viya, cas source 9
24 Handling complex data sources in Python and SAS using Jupyter Notebook in SAS University Edition VM David B. Horvath This paper (and the resulting session) is a focused on the techniques required to read complex data types including XML, JSON, and even CSV using Python. The underlying tool we will use will be Jupyter Notebook and SAS (both provided as part of the SAS University Edition VM). In the live session, as time allows, some of the available UNIX/Linux tools are discussed along with their data analysis capabilities (but not in this paper - these have been covered in other papers proc import, proc step, sas studio, macro variable source 14
25 Joining SAS and a Complex, Sparsely Populated Database for Machine Learning/Data Mining Thomas E. Billings The challenge: join a SAS dataset with as many tables as possible from a large, complex, sparsely - populated star schema database. The joined data are to be used for data mining/ machine learning analyses. We start by analyzing the database for feasible joins using the supplied synthetic keys, and work with the client to reduce/clarify the scope. We develop a cross-reference table that links the SAS dataset ID variables with numerous database synthetic keys. We then do inner joins for the database dim + fact tables and pre-process other database tables, after which the database extracts are merged with the SAS dataset. The processing involves PROC SQL, DATA STEP MERGE, with some metadata-driven processing. Some of the joins are 1-many; additional processing is done to handle these cases. Data are run for a few months and the variable population rates are determined and used to identify which variables to keep. Finally the programs are productionized and history is run dataset, star schema, fact table, lookup, inner join, oracle, machine learning, proc sql source 9
26 Lazy Programmers write Self-Modifying code OR Dealing with XML file Ordinals David B. Horvath The XML engine within SAS is very powerful but it does convert every object into a SAS data set with generated keys to implement the parent/child relationships between these objects. Those keys (Ordinals in SAS speak) are guaranteed to be unique within a specific XML file. However, they restart at 1 with each file. When concatenating the individual tables together, those keys are no longer unique. We received an XML file with over 110 objects resulting in over 110 SAS data sets, which our internal customer wanted concatenated for multiple days. Rather than copying and pasting the code to handle this process 110+ times, and knowing that I would make mistakes along the way-and knowing that the objects would also change along the way-I created SAS code to create the SAS code to handle the XML. I consider myself a Lazy Programmer. As the classic "Real Programmers…" sheet tells us, Real Programmers are Lazy proc step, proc contents, proc import, dataset source 9
27 Learning from Experience Requires a Collaborative Team Effort: an Integrated-Software Solution for Automated and Reliable Distributed Reporting System Noga Meiry Lewin,
Amarnath Vijayarangan
Ten years ago, o ur reporting team developed a web report system to present the status of ongoing clinical trials for the National Drug Abuse Treatment Clinical Trials Network. Different programmers contributed to a growing number of electronic data capture (EDC) platforms and studies, each with its own requirements, with all reports uploading to a common website. A common setup program standardize d the programming process. Nightly one program ran to generate all reports for all platforms and studies, followed by a summary program that uploaded reports to the website. Any errors were investigated and corrected, and the program reran. As the number of active studies increased , the advantages of using one program to run everything were outweighed by generation time and debugging, and an error in one study prevented other studies from being updated excel, edc source 11
28 Log Reviewing Made Easy Peter Knapp One of the golden rules when running SAS programs is to review the Log for problems. Unfortunately, many users ignore the Log and focus on the output. Adding a dynamically generated report to the bottom of the Log that shows the number of problems such as run time errors, missing values and uninitialized variables is a great way to identify in one place issues with the program run that need addressing. Enhancing the report to include information about the number of observations flowing through the program can help insure not only that the program runs without mechanical errors, but also runs as expected. In this paper I will talk about a Log Report macro that provides that summary log information, explain how it works, and discuss how to modify it so that you can tailor it for your organization's specific needs. The Log Report was developed using SAS Enterprise Guide on a Windows environment using SAS macro code in addition to Base SAS Code macro variable, sas enterprise guide, sas log, proc step, proc sql source 6
29 Log the SAS Log Analyzer for Audit Amarnath Vijayarangan The importance of validating a SAS program through the generated log file is inevitable. A successful execution would require an ERROR, WARNING and any 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. A programmer must review the log to ensure that every single line of a written program is running successfully without displaying any messages defined by SAS that are potential errors. 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. For SAS programming audit, it is not only important to analyze the log but also documenting and reporting what is being searched in the log. This paper introduces an approach to log the SAS Log Analyzer sas log, merge statement source 6
30 Look Up Not Down: Advanced Table Lookups in Base SAS Jayanth Iyengar,
Joshua M. Horstman
One of the most common data manipulation tasks SAS programmers perform is combining tables through table lookups. In the SAS programmer's toolkit many constructs are available for performing table lookups. Traditional methods for performing table lookups include conditional logic, match-merging and SQL joins. In this paper we concentrate on advanced table lookup methods such as formats, multiple SET statements, and HASH objects. We conceptually examine what advantages they provide the SAS programmer over basic methods. We also discuss and assess performance and efficiency considerations through practical examples lookup, hash table, set statement, cpu time, proc step, dataset, conditional do loop, proc format, proc sql, data merging, do loop, put statement, key, insurance claims, sas log, key=, merge statement, sas base, sas programmer, temporary array, output, sample, sysrc, sample size, index, stop, user-defined format, call missing, if-then-else source 28
31 Making Your SAS Results More Meaningful with Color Kirk Paul Lafler Color can help make your SAS results more meaningful. Instead of producing boring and ineffective results, users are able to enhance the appearance of their output, documents, reports, tables, charts, statistics, and spreadsheets to highlight and draw attention to important data elements, details, and issues, including using color in headings, subheadings, footers, minimum and maximum values, ranges, outliers, special conditions, and other elements. Color can be added to text, foreground, background, rows, columns, cells, summaries, totals, and traffic lighting scenarios. Topics include using color to results, documents, reports, tables, charts and spreadsheets can be enhanced with color, effectively add color to PDF, RTF, HTML, and EXCEL spreadsheet results using PROC PRINT, PROC FREQ, PROC REPORT, PROC TABULATE, and PROC SGPLOT and Output Delivery System (ODS) with style bar chart, proc sgplot, proc step, histogram, proc sgpanel, excel, scatter plot, vertical bar chart, box plot, bubble plot, proc freq, series plot, proc report, data science, class variable, correlation, outlier source 20
32 Model Comparison of Machine Learning Techniques to detect signs of Penetrating Abdominal and Pelvic Injuries using Base JMP and R Integration Melvin T. Alexander This presentation takes data from a medical radiology case study of Saksobhavivat et al. (2016) designed to detect signs from Multidetector Computed Tomography (MDCT) imaging in diagnosing and treating traumatic penetrating abdominal and pelvic injuries (PAPI). Machine Learning techniques of Random Forests, Extreme Gradient Boosting, Stepwise Logistic, and Penalized Regression from the Base JMP and R environment were used to compare these statistical models to determine the strongest signs as indicators of diagnosing PAPI following penetrating abdominal injury. Although some of these tools are only available in JMP Pro, the same (and more) capabilities are also available to Base JMP users. I will demonstrate the R and Base JMP integration to create several machine learning statistical models, some of which are not even available in JMP Pro. Base JMP connects to R via JSL to execute R commands and exchange data data cleaning, proc hpforest, proc hpsplit, dataset, logistic distribution, regression analysis, training set, confusion matrix, logistic regression, machine learning, sas base, roc curve, binomial distribution, r programming source 25
33 NHANES Dietary Supplement component: a parallel programming project Jayanth Iyengar The National Health and Nutrition Examination Survey (NHANES) contains many sections and components which report on and assess the nation's health status. A team of IT specialists and computer systems analysts handle data processing, quality control, and quality assurance for the survey. The most complex section of NHANES is dietary supplements, from which five publicly released data sets are derived. Because of its complexity, the Dietary Supplements section is assigned to two SAS programmers who are responsible for completing the project independently. This paper reviews the process for producing the Dietary Supplements section of NHANES, a parallel programming project, dataset, proc step, proc sql, sample, create table, proc compare, quality assurance, if-then-else source 20
34 Outlier Detection and Treatment Ross Bettinger Outliers in a set of data represent observations that are distinguished from the expected patterns in the observed data. We are attracted to them because they are somehow atypical of what we expect to see in the distribution of the data that we have collected or generated. We may be troubled by them be- cause they may contain important information about the process which we are attempting to model, or they may simply be spurious noise or even data points that have been corrupted by noise. In any case, we must be careful in our treatment of them because we cannot easily decide whether they represent some valuable aspect of the process under study or are simply aberrations. Keywords Data distribution, binary indicator variable, Cook's D statistic, local outlier factor, local outlier probabil- ity, Mahalanobis distance, outliers, robust regression, studentized deleted residual, Winsorizing outlier, regression analysis, binary variable, cook's distance, sample, proc step, proc robustreg, mahalanobis distance, proc reg, histogram, covariance, estimate, proc freq, correlation, feature selection source 29
35 Reducing the Space Requirements of SAS Data Sets without Sacrificing any Variables or Observations Stephen B. Sloan The efficient use of space can be very important when working with large SAS data sets, many of which have millions of observations and hundreds of variables. We are often constrained to fit the data sets into a fixed amount of available space. Many SAS data sets are created by importing EXCEL or Oracle data sets or delimited text files into SAS and the default length of the variables in the SAS data sets can be much larger than necessary. When the data sets don't fit into the available space, we sometimes need to make choices about which variables and observations to keep, which files to zip, and which data sets to delete and recreate later. There are things that we can do to make the SAS data sets more compact and thus use our space more efficiently. These things can be done in a way that allows us to keep all the desired data sets without sacrificing any variables or observations. SAS has compression algorithms that can be used to shrink the space of the entire data set character variable, numeric variable, dataset, proc means, proc step, macro loop, %if-%then-%else source 7
36 RUN; RUN; RUN; - Methods for Running Multiple Programs in a Series Robert S. Matthews Anyone who has ever had to run a series of programs multiple times in a row has probably thought about ways to automate the process. For example, if you have 25 programs that need to be run one after another, the normal method would be to run the first program, wait for it to finish, then submit the next one, and so on. If you have the ability to run multiple SAS sessions, then you can speed up the process a bit by submitting programs in each session. However, it still takes some time and effort to monitor the programs, wait for each one to finish, and then submit the next program in the series. We encountered this issue several years ago and have developed two methods for implementing a "hands-off" approach for submitting a series of programs macro variable, source2 source 5
37 Running Parts of a SAS Program while Preserving the Entire Program Stephen B. Sloan The Challenge: We have long SAS programs that accomplish a number of different objectives. We often only want to run parts of the programs while preserving the entire programs for documentation or future use. Some of the reasons for selectively running parts of a program are: Part of it has run already and the program timed out or encountered an unexpected error. It takes a long time to run so we don't want to re-run the parts that ran successfully. We don't want to recreate data sets that were already created. This can take a considerable amount of time and resources and can also occupy additional space while the data sets are being created. We only need some of the results from the program currently, but we want to preserve the entire program. We want to test new scenarios that only require subsets of the program proc step, run, macro variable, sas enterprise guide source 4
38 SAS GRAPH Animation Examples used in Data Visualization of Analytical Procedures with Public Federal Data Martha D. Pohl Examples of SAS GRAPH Animation2 used in data visualization analytical procedures will be presented. The source of the data will be from public Federal sources such as Bureau of the Census, Bureau of Labor Statistics, Federal Financial Institutions Examination Council, and the Federal Reserve Board. The presentation explores geographic changes over time, Venn Diagrams, data from the American Community Survey (ACS), Home Mortgage Disclosure Act (HMDA), Community Reinvestment Act (CRA), PUMA and dual PUMAs changes and more. A method to explore probability distributions will be presented as well as others, all using SAS GRAPH animation proc step, proc format, output delivery system, sample source 46
39 Some Korn Shell Scripts for SAS Programmers Hengwei Liu,
Daiichi Sankyo
A lot of pharmaceutical companies use SAS on Linux server. Linux shell scripting is a power tool for the SAS programmers. It can be used to read text files and extract information. It can be used to perform other operations on the files such as combining files or renaming files. In this paper some Korn shell scripts of interest to SAS programmers are discussed txt, sas programmer, dataset, clinical trial, sample source 7
40 Tales from the Help Desk: How the Problems Get Solved Bruce F. Gilsen In 35 years as a SAS consultant at the Federal Reserve Board, I've answered thousands of SAS- related questions. Some of the most common problems I've encountered were discussed in seven previous "Tales from the Help Desk" papers. In this paper, I go "under the hood" to discuss the techniques I use to help solve SAS problems. Topics include the following. 1. Look at the SAS log. 2. Make it a SAS question. 3. Program control: execute the minimum amount of code. 4. Minimize data required to solve problems. 5. Use temporary files. 6. Write DATA STEP values. 7. Write macro variables and debug macros. 8. My program worked on Friday and I swear, I haven't changed a thing! This paper has two purposes. 1. My techniques might be useful to other people who help SAS users or even users of other languages. 2. It might encourage people to think about how they solve problems and share their techniques sas log, macro variable, options statement, put statement, dataset, numeric variable, error message, work library, comment source 14
41 The Efficient Alternative to LAG Function without LAG's Pitfalls Alexander M. Feigin When SAS data set is ordered by group variable, the use of LAG function(s) without combining in one observation the values from different BY-groups could be a difficult task. Instead we suggest creating separate data sets where a new _N_ is equal to _N_+1, or _N_+2, etc., and merging them together, thus in each observation combining the values from as many as needed preceding records belonging to the same BY-group only lag function, missing value, _n_, automatic variable, ifn source 8
42 TRANSFORM A SAS DATASET TO AN EXCEL FILE FORMAT Pravin vijay Varatharaj, Cognizant Technology Solutions Pravin Vijay Varatharaj For many of us, using SAS and Microsoft EXCEL together is unavoidable, it is often necessary for a SAS programmer to transform a SAS dataset to an EXCEL file format. Several methods for performing this transformation have been published in previous SAS conference proceedings. In windows, PC SAS uses DDE (Dynamic Data Exchange) mechanism in SAS enables SAS to control EXCEL template. This paper talks about how to transform a SAS dataset to an EXCEL template file format from the Linux server or Unix platform, Python language can be used to transform the SAS datasets to EXCEL template. Python package like sas7bdat can be used to read the SAS datasets and packages like openpyxl can be used to write the content to the EXCEL template. Python language helps to break the dependency of DDE communication mechanism to transform a SAS dataset to an EXCEL template file format and developers to schedule the jobs in the crontab to automate excel, sample source 4
43 Twenty Ways to Run Your SAS Program Faster and Use Less Space Stephen B. Sloan When we run SAS programs that use large amounts of data or have complicated algorithms, we often are frustrated by the amount of time it takes for the programs to run and by the large amount of space required for the program to run to completion. Even experienced SAS programmers sometimes run into this situation, perhaps through the need to produce results quickly, through a change in the data source, through inheriting someone else's programs, or for some other reason. This paper outlines twenty techniques that can reduce the time and space required for a program without requiring an extended period of time for the modifications. The twenty techniques are a mixture of space-saving and time- saving techniques, and many are a combination of the two approaches. They do not require advanced knowledge of SAS, only a reasonable familiarity with Base SAS and a willingness to delve into the details of the programs proc step, dataset, proc sort, numeric variable, proc means, by group processing, character variable source 4
44 UFO Search (User-Friendly-Optional-Search) Kannan Deivasigamani This SESUG paper demonstrates how a SAS macro can be used to easily search for column names in a Database-Table or a SAS variable name in a Library of datasets, without having to spell the exact name. Carpenter (2004), Mannan and Stevenson (2010), Chen and Yang (2012) have shown through their work of how they have uses SAS for varied applications in geospatial and mathematical analysis. Similarly, this search feature was also developed using the power of macros within SAS to help a user identify variables using partial names. The User-Friendly-Optional-Search tool henceforth will be referred as UFOs goes one step further and can also help a SAS user find out even the SAS dataset name in a library or a Table name within a Database referenced by a LIBNAME statement, just by providing a partial name. Often SAS users may work with multiple variables from SAS datasets in a library and will find a need to locate all the tables that has a particular column dataset, proc step, proc sql, create table, macro call source 11
45 Upgrading Clinical Trial Reports from ODS LISTING to ODS TAGSETS.RTF Christopher J. Smith Several pharmaceutical and biotechnology companies are still using ODS LISTING as the primary method for producing outputs. While there is nothing inherently wrong with this approach, using either ODS RTF or ODS TAGSETS.RTF can provide more aesthetically pleasing outputs in the same font as the main clinical study report. In addition, it can provide a more harmonized approach between tables, listings and figures by having a file format compatible with graphics procedures. Lastly, it lays the foundation to have a more robust validation process by having the option to read the actual RTF file back into a SAS data set. This paper provides examples of typical clinical tables and listings and how to create them in the TAGSETS.RTF destination. Several commonly used options found within the REPORT procedure such as HEADLINE, HEADSKIP, SPLIT=, SKIP, and many others are only available in the LISTING destination proc report, proc step, clinical trial, ods rtf, missing value, adverse events, csr, system organ class, label statement, class variable, sas output, data cleaning, proc template source 25
46 User-Written Functions to Check for SAS Macro Quoting Triggers Quoting Triggers Programmers may import a string into a SAS macro variable, only to discover the hard way - via a failed run - that the string contained special characters or mnemonics that require use of quoting functions. Here we present PROC FCMP user-written functions to detect some macro triggers; these new functions use K-character functions for internationalization. The first function is the simplest and detects the presence of a % or & in the string. The second detects the presence of any special single character that may trigger macro quoting. The third detects many instances of mnemonics - potential logical and comparison operators: AND, OR, EQ, GE, etc. in the string (some constraints apply). The 4 th function checks for unmatched left or right parentheses in the string; these can cause compile-time errors. Finally, we briefly mention some of the methods for handling strings with macro quoting triggers macro quoting function, macro variable, proc fcmp, proc step, macro function source 7
47 Using GENMOD to Calculate Prevalence Ratio for Concussion and Suicidal behaviors among U.S. High School Students Abbas S. Tavakoli SAS procedures can use to analyze large data. This cross-sectional study was a secondary analysis of data obtained from concussion history and suicidal behaviors in adolescents from the 2017 National Youth Risk Behavior Survey (YRBS). Concussion is a form of mild traumatic brain injury induced by biomechanical forces applied directly to the head. There is growing concussion mostly attribute to sport activity among youth. GENMOD procedure used to examine and calculate prevalence ratio and 95 % confidence interval for this data set. PROC GENMOD examined with different distribution (Binomial, Normal, and Possion) model with attempt to suicide as the dependent variable; and concussion as main independent variable with controlling some demographic variables. The results indicated there was significant association between concussion and attempted suicide for Normal, Binomial, and modified Poisson distribution (p = .0001) after controlling for alcohol use, age, and gender proc genmod, frequency analysis, binomial distribution, proc freq, confidence interval, sample, poisson distribution, predictor variable, normal distribution, sas syntax source 13
48 Using Proc Report to Produce Easy to Understand Student Performance and Progress Analyses for Educators Peter L. Zsiga The Florida Department of Education evaluates schools and school districts in 11 specific categories including student performance on statewide standardized tests. Decisions on financial rewards or additional reporting requirements and third-party monitoring visits are made based on the results. One Florida school district with over 40,000 students uses Enterprise Guide software to produce detailed reports of key elements to identify students who may need additional support to make progress and demonstrate proficiency on the annual assessment. A series of if-then conversions are used before compute statements are applied in a PROC REPORT to produce an ODS EXCEL file with color-coded data for ease of interpretation. Basic and early intermediate level SAS users should find something new and applicable to education and other fields proc report, proc step, excel source 10
49 Visually Exploring Proximity Analyses Using SAS PROC GEOCODE and SGMAP and Public Use Data Sets Louise S. Hadden Numerous international and domestic governments provide free public access to downloadable databases containing health data. Two examples include the Demographic and Health Surveys which include data from Afghanistan to Zimbabwe and the Centers for Medicare and Medicaid Services' Compare data and Part D Prescriber public use files. This paper and presentation will describe the process of downloading data and creating an analytic data base which includes geographic data; running SAS's PROC GEOCODE (part of Base SAS) using Tiger street address level data to obtain latitude and longitude at a finer level than zip code; and finally using PROC SGMAP (part of Base SAS) with annotation to create a visualization of a proximity analysis proc step, sas base, proc rank, excel source 9
50 Wildcarding in WHERE Clauses David B. Horvath This mini-paper (and the resulting short session) is a focused discussion of wildcarding within the Where clause and related functionality within SAS. There is wildcarding allowed within where clause like expressions by using special characters. But if you want to search for those specific characters, you have to override them. If you forget to escape the character, you'll get unexpected matches. Topics include: PROC SQL; select x from y where x like %a/_b escape /; _ matches 1 character % matches any characters / escapes the next character (says next is actual character, not special meaning) * set sorted_ddl (obs=max where=(name like '%/_ORD%' escape '/')); where statement, index, proc step, proc sql source 7

Back to Conf go 2021 go 2019

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.