Click on a title to view abstract or click here to or Collapse All.
%MAKE_IT_COUNT: An Example Macro for Dynamic Table Programming Today, there is more pressure on programmers to deliver summary outputs faster and without sacrificing quality. By using just a few programming strategies, this straightforward %MAKE_IT_COUNT macro is simple to understand and can be quickly adapted for changing reporting needs. This paper explores MULTILABEL and PRELOADED formats, PROC SUMMARY options, and dynamic ARRAYs that is appropriate for is for all SAS experience levels.
|
A Review of "Free" Massive Open Online Content (MOOC) for SAS® Learners Leading online providers are now offering SAS® users with ‘free’ access to content for learning how to use and program in SAS. This content is available to anyone in the form of massive open online content (or courses) (MOOC). Not only is all the content offered for ‘free’, but it is designed with the distance learner in mind, empowering users to learn using a flexible and self-directed approach. As noted on Wikipedia.org, A MOOC is an online course or content aimed at unlimited participation and made available in an open access forum using the web.? This presentation illustrates how anyone can access a wealth of learning technologies including comprehensive student notes, instructor lesson plans, hands-on exercises, PowerPoints, audio, webinars, and videos.
|
An Introduction to SAS Arrays So, you’ve heard about SAS arrays, but are not sure when or why you would use them. This presentation will provide the attendee / reader with a background in SAS arrays, from an explanation as to what occurs during compile time through to their programmatic use, and will include a discussion regarding how DO-loops and macro variables can enhance array usability. Specific examples, including Fahrenheit to Celsius temperature conversion, salary adjustments, and data transposition / counting will assist the user with effective use of SAS arrays in their own work, and provide a few caveats as to their usage, as well.
|
An Introduction to SAS® Hash Programming Techniques Beginning in Version 9, SAS software supports a DATA step programming technique known as hash that enables faster table lookup, search, merge/join, and sort operations. This presentation introduces what a hash object is, how it works, and the syntax required. Essential programming techniques will be illustrated to define a simple key, sort data, search memory-resident data using a simple key, match-merge (or join) two data sets, handle and resolve collision scenarios where two distinct pieces of data have the same hash value, as well as more complex programming techniques that use a composite key to search for multiple values.
|
Coding Tips from Too Many Years of Programming The Basic Flow of the SAS Data Step, When to Use the Link Statement, the Value of Includes, Why Use the Null Input Statement, Reading Variable Length Records, Where Statements vs If statements, the Efficiency and Simplicity of User Formats, Simple yet Powerful Macros, Arrays with _Numeric_ and _Character_ variable lists, Fixing SAS Data with Proc Datasets, The Summarizing Power of Proc Summary, and Proc SQL In-Line Views and Sub-queries. The author, Jimmy DeFoor, has been coding in SAS for thirty years and has supported marketing, cost estimating, and financial analysis, and operational risk. His paper will cover each of these subjects briefly and will provide a bibliography that lists papers and other source documentation which provide more detail on each subject.
|
Come and SYMGET It! A Solution for Dynamic Clinical Laboratory Result Formats A common report in any safety analysis is a statistical summary of clinical laboratory results. These clinical laboratory data consist of multiple tests, each with its own level of precision. The challenge is to develop a program that can automatically adjust to new and changing data while producing reliable output. This paper explores the combination of macro variables and the SAS functions PUTN and SYMGET to produce a flexible solution for all levels of SAS users.
|
Create and Format Excel Reports directly from your SAS code by Using SAS ODS The SAS Output Delivery System(ODS) provides a set of techniques to create and format Excel reports directly from your SAS code.
This paper will explain the following steps that are needed to produce formatted Excel reports by using ODS and Base SAS: -Use Excel formatting options available thru ODS to create one or multiple formatted Excel worksheet(s) inside a single Excel workbook -The output from SAS ODS is an XML file which opens into an Excel workbook. -All of the above steps are accomplished in your SAS code by using ODS ExcelXP Tagsets |
Dynamic Dashboards Using Base-SAS® Software Dynamic interactive visual displays known as dashboards are most effective when they show essential graphs, tables, statistics, and other information where data is the star. The first rule for creating an effective SAS® dashboard is to keep it simple. Striking a balance between content and style, a dashboard should be void of excessive clutter so as not to distract and obscure the information displayed. The second rule of effective dashboard design involves displaying data that meets one or more business or organizational objectives. To accomplish this, the elements in a dashboard should convey a format easily understood by its intended audience. Attendees learn how to create dynamic interactive user- and data-driven dashboards, graphical and table-driven dashboards, statistical dashboards, and drill-down dashboards with a purpose using Base-SAS® programming techniques including DATA step, PROC FORMAT, PROC PRINT, PROC MEANS, PROC SQL, ODS, Statistical Graphics and HTML.
|
Easy Come, Easy Go - Interactions between the DATA Step and External Files Chances are, your raw data was not created within the SAS® System. There is a good likelihood that your data may also need to be packaged and passed along to another non-SAS package.
This presentation will provide basic answers to two questions common to new SAS users: – How do I get my data into SAS for analysis? – How do I get my data out of SAS? The focus for this presentation will be on two pairs of DATA step statements: INFILE / INPUT and FILE /PUT. We will discuss syntax and usage, citing various types of files as examples. |
Essential Data Step Merge and PROC SQL Join Techniques using SAS University Edition Software After installing SAS Institute’s free ‘SAS University Edition’ you’ll want to test drive the software. SAS University Edition includes Base SAS, SAS/STAT, SAS/IML, Designer Studio (user interface), and SAS/ACCESS for Windows, with all the pwerful features found in the license SAS versions. To demonstrate the power found within SAS University Edition, we present conventional and unconventional DATA step merge programming techniques and PROC SQL joining programming techniques using Base SAS software. All SAS users are encouraged to attend and learn essential concepts, syntax and programming techniques.
|
Five Little Known, But Highly Valuable and Widely Usable, PROC SQL Programming Techniques The SQL Procedure contains a number of powerful and elegant language features for SQL users. This presentation highlights five little known, but highly valuable and widely usable, topics that will help users harness the power of the SQL procedure. Topics include using PROC SQL to identify FIRST.row, LAST.row and Between.rows in BY-group processing; constructing and searching the contents of a value-list macro variable for a specific value; data validation operations; data summary operations to process down rows and across columns; and using the MSGLEVEL= system option and _METHOD SQL option to capture information into the processes during query evaluation, the algorithm selected and used by the optimizer when processing a query, testing and debugging operations, and other processes.
|
Google® Search Tips and Techniques for SAS® Users Google (www.google.com) is the world?s most popular and widely-used search engine. As the premier search tool on the Internet today, SAS® and JMP®
users frequently need to identify and locate SAS and JMP content wherever and in whatever form it resides. Topics include how Google works and illustrates numerous search tips and techniques for finding articles of interest, reference works, information tools, directories, PDFs, images, current news stories, user groups, and more to get search results quickly and easily. |
Inside Functions and Macros SAS is rich in various built-in functions, and predefined SAS supplied macros. Similarly, functions and macros can also be developed by user based on his needs and requirements. In this paper, we will walk through the various types of functions, macros, and how the functions and macros are stored and processed internally. This paper also covers several interesting scenarios.
|
Latent Analysis Applications for Data Exploration and Regression Model Improvement The current study looks at several ways to investigate latent variables in longitudinal surveys and their use in regression models. Three different analyses for latent variable discovery will be briefly reviewed and explored. The latent analysis procedures explored in this paper are PROC LCA, PROC LTA, PROC CATMOD, PROC FACTOR, and PROC TRAJ. The analyses defined through these procedures are latent profile analyses, latent class analyses, and latent transition analyses. The latent variables will then be included in separate regression models. The effect of the latent variables on the fit and use of the regression model compared to a similar model using observed data will be briefly reviewed. The data used for this study was obtained via the National Longitudinal Study of Adolescent Health, a study distributed and collected by Add Health. Data was analyzed using SAS 9.3. This paper is intended for any level of SAS user. This paper is also written to an audience with a background in behavioral science and/or statistics.
|
Let Dates Drive Your Data: A Simple Primer Setting up Macro Dates Dates have been and continue to be an obstacle in data management and reporting among SAS programmers. Almost all data management processes and reporting rely on dates, whether it be admission, procedure, discharge, date of service, occurrence, billed, or paid date in health care situations and other business environments. Setting up dates to be automated macros provides a set standard against how data manipulation and reporting will be handled. The same methodology will be in place every time in the SAS session allowing for consistent results over time.
This paper will provide a SAS programmer basic instruction with the code needed to set up and create their own macro dates in order to help automate and drive their report. We will discuss and demonstrate the different options available to set dates and customize formats for data management and reporting. A demonstration of setting up macro dates will be provided with interpretation of the different elements a SAS programmer can change to customize their date macro. Using macro dates in code will help reduce time spent on manual coding changes and data errors due to forgetting to update code. |
Numeric Variable Storage Pattern This paper discusses the internal storage of numeric variables in the form of floating-point representation. Also discusses the difference in storage of Mainframe and Non-mainframe Systems. Examples are presented to clearly explain how the numbers are represented in the binary sequence at the hardware level.
|
Optimization of Refining Alkylation Process Unit using Response Surface Methods Statistical response surface methods were used to optimize the operation of an alkylation unit. Multiple linear regression models were constructed to model the relationship between alkylate yield, alkylate octane and isostripper reboiler duty response variables and key process variables including: isobutane to olefin (I/O) ratio, acid strength, IC4 recycle purity, and reactor temperature. The multiple regression models of the three responses were then used to generate an incremental profit response surface that maps out the relationship between the alkylation unit profit and the most significant variables. The incremental profit response surface was then used to select an optimum target region for step testing at the refinery prior to implementation of the unit targets.
|
Parsing Useful Data Out of Unusual Formats Using SAS® Most 'Introduction to Programming' courses will include a section on reading external data; the first assumption they make will be that the data are stored in some sort of documented and consistent format. Fortunately, in the 'real world', a lot of the data we deal with has the same basic assumption of occurring
in a documented, consistent format – a lot of it, but not all of it. This presentation will address some techniques that can be used when we are not dealing with cleanly formatted data, when the data we want is in a less-than-ideal format, perhaps intermingled or seemingly buried with unnecessary clutter. It will discuss the principles of using SAS® to parse a file to extract useful data from a normally unusable source. This will be accomplished by citing examples of unusual data sources and the SAS Code used to parse it. |
Pick one: Tips from a Lifetime of Coding or Building Used and Useful Applications Tips from a Lifetime of Coding
Data Step, Proc Sql, and SAS Macro methods that I find useful (I will give a true abstract once you all select). Building Used and Useful Applications -What does the user want? -What does the user most value? -Where and what is the data I need to use? -How will the user verify that I have the right data and transformed it the right way? -What coding method will be the most valuable and easiest to maintain? -How can the project be best structured to show progress and provide partial value until fully complete |
Read in Thousands of Datasets with One Click! Got thousands of datasets to read in and process on a tight schedule? The Florida Youth Tobacco Survey (FYTS) has provided data for monitoring and evaluating tobacco use among youth for the Florida Department of Health?s Bureau of Tobacco Prevention and Control since 1998. In 2015, 35 counties submitted middle school data while 33 counties submitted high school data. The maximum school or class size within one county is over 130. In each dataset scanned, there are 3 different surveys. Over time, we read in thousands of datasets on two different platforms, Linux SAS and PC SAS. The final output will be three combined data sets by survey type. Our approach is to use ‘PIPE’ to get the list of county and school, and use PROC SQL and SAS macros to automatically read in all the datasets and process them according to the survey type.
|
Reassigning Character/Numeric Variables length across multiple datasets for Efficiency and Consistency In this paper, we present a macro, which reassigns the variables length at each dataset level for Efficiency and at library level for Consistency. This macro is an extension of the previously presented macro at “Wester Users of SAS Software” which reassigns only Character variables length. In this paper, we will discuss the numeric/character variables are stored within the SAS system.
|
SAS Macros - Advanced Subjects A macro is an efficient method to accomplish the following tasks:
1. Modularize a program into smaller and more manageable pieces. 2. Encapsulate repetitive tasks into re-usable code. 3. Developers can organize their complex SAS programs into small macros. The macros can then be tested independently of one another. This paper will cover the following subjects: -Using multiple &?s to retrieve the value of a macro variable -Creating a macro variable from the value of another macro variable -Working with special characters in Macro variables -Use the Execute statement to pass a data step variable to a marcro -How to return a macro variable from a macro |
SAS Macros - An Intro A macro is an efficient method to accomplish the following tasks:
1. Modularize a program into smaller and more manageable pieces. 2. Encapsulate repetitive tasks into re-usable code. 3. Developers can organize their complex SAS programs into small macros. The macros can then be tested independently of one another. This presentation is an introduction to macros. The session will cover the following subjects: -Define a macro. -Call/invoke a macro. -Pass input parameters to a macro. -Pass output parameters out of a macro. |
Sorting a Bajillion Records: Conquering Scalability in a Big Data World In this era of big data, scalability is a common objective of data-centric software solutions. Quantity and Complexity are two of the common distinguishing characteristics of “big data,” and each can contribute to excessively large, memory-consuming data sets. Thus, a solution often is not considered viable until it can perform effectively against large and complex data sets and, additionally in some environments, efficiently enough to meet established completion time objectives. Sorted data are a common objective in data analytics, which can facilitate data joins, deduplication, presentation, and other processes. However, as file sizes grow exponentially, memory errors can cause the SAS processor to fail, resulting in the infamous MEMORY ERROR. This text introduces a macro %SAFESORT that can be implemented to detect memory failures caused by the SORT procedure and to subsequently perform a slower yet more robust sort that is fault-tolerant to memory errors. The %SAFESORT is demonstrated in the context of an exception handling framework to support dynamic processing and a return to functionality from a common error that once caused certain failure.
|
Table Lookup Made Easy Using Hash and PROC FCMP SAS provides a variety of methods to perform a table lookup, but one I’ve recently become enamored of uses two relative newcomers to the SAS universe: hash objects and the function compiler (PROC FCMP). In this presentation, I will provide illustrative examples of how to write a fast and efficient table lookup function using any SAS data set as your table source and only a few lines of SAS code.
|
The Master of Science in Analytics at Louisiana State University: Filling the Analytics Gap The unparalleled demand for well-qualified business analysts is challenging higher education to provide curricula specifically aimed at cultivating the requisite skills, knowledge, and abilities necessary to fill that analytics talent gap. Many institutions are answering that challenge by developing masters and certificate programs which train students in the use of business intelligence, business analytics, and information technology to help companies solve problems, increase revenues, reduce costs, streamline processes, and improve decision-making. This presentation will describe how the Master of Science in Analytics program at Louisiana State University plays a role in filling that analytics gap.
|
Top Ten SAS® Sites for Programmers: A Review We review the top ten SAS® sites for coders, beginning with sas.com and jmp.com. We then expand to sasCommunity.org, support.sas.com, and six other popular sites that assist you in training and programming. If you use Google to search for SAS Web sites, you will get over a million hits. We narrow the list down to ten.
|
Toward Exception Handling Objectives, Actions, Outcomes, and Communications Exception handling describes both the identification of and response to adverse, unexpected, or untimely events that can cause process or program failure, as well as anticipated events or environmental attributes that must be handled dynamically through prescribed, predetermined courses of action. Rapid error suppression and return to functioning is the hopeful end state but, when catastrophic events do occur, exception handling routines can terminate a process or program gracefully while providing meaningful execution and environmental metrics to developers both for remediation and future model refinement. SAS literature, however, too often depicts exception handling routines that either abruptly terminate the SAS session or which provide a static “exception report” to the log or ODS output stream, failing to capitalize on the full dynamic potential of exception handling. This text introduces the full array of potential reactions that software can take when an exception is encountered. Moreover, it presents various communication modalities to inform stakeholders of the exceptional event.
|
Using SAS for Analyzing Models with Qualitative Dependent Variables: Case of U.S. Vehicle Crash Data Having qualitative or non-numerical data as the dependent variable in data analysis is a critical issue in social science. Qualitative data analysis pays greater attention to individual cases and looks further than precise numerical data. Also, social science researches mostly deal with behavior categories which can be analyzed with qualitative methods. Researcher will be able to study selected issues, cases, or events in depth and detail by using Qualitative methods. These types of analyses are often used for policy and program evaluation and behavioral analyses research. Qualitative approaches have the advantage of allowing for more diversity in responses as well as the capacity to adapt to new developments or issues during the research process itself.
SAS is a very powerful tool for statistical analysis in situations that dependent variable is a qualitative variable. This paper is using vehicle crash fatalities data to show how SAS can be used for analyzing models with a qualitative dependent variable. Specifically, in this paper we show the impact of drunk driving and seat-belt use on severity of vehicle accidents using U.S. vehicle crash data. Using a Multicategory Logit model, the results show that, given a fatal accident happened, the probability of driver being killed is higher if she/he is drunk regardless of the cause of the accident. |
Using the Free SAS® University Edition Software After installing SAS Institute's free 'SAS University Edition' you will want to take a test drive. The software bundle includes Base SAS, SAS/STAT,SAS/IML, Designer Studio (user interface), and SAS/ACCESS for Windows, with all'the popular features found in the licensed SAS versions. There is an incredible opportunity for users, statisticians, data analysts, scientists,programmers, students, and academics everywhere to use (and learn) for career opportunities and advancement. Capabilities include data manipulation, data management, comprehensive programming language, powerful analytics, high quality graphics, world-renowned statistical analysis capabilities, and many other exciting features.
We present, in short order, running SAS University Edition, including checking the log and the results window. Additional topics include a few powerful features found in this exciting software bundle. We conclude with a summary of tips for successfully using the SAS University Edition. |
Validation Summary using SYSINFO This paper presents a macro that produces a Validation summary using SYSINFO automatic macro variable. The study lead who is managing a clinical study often needs to make sure that the datasets are validated properly. In a general scenario, the lead distributes the datasets among programmers to either create primary or validation datasets. The primary and validation programmers create their datasets following the Specifications in particular locations. This macro compares each dataset in primary location with its counterpart in validation location. After performing PROC COMPARE of each dataset, the result of the comparison is stored in an automatic macro variable ?SYSINFO? that is supplied by the SAS system. The macro decodes the value of SYSINFO in order to interpret the comparison result and produces a summary report of validation of all the datasets present in Primary and Validation locations.
|
What's Hot, What's Not - Skills for SAS® Professionals As a new generation of SAS® user emerges, current and prior generations of users have an extensive array of procedures, programming tools, approaches and techniques to choose from. This presentation identifies and explores the areas that are hot and not-so-hot in the world of the professional SAS user. Topics include Enterprise Guide, PROC SQL, PROC REPORT, Macro Language, DATA step programming techniques such as arrays and hash, SAS University Edition software, support.sas.com, sasCommunity.org®, LexJansen.com, JMP®, and Output Delivery System (ODS).
|