SESUG 2011 Papers - Index
114 papers. Source: SESUG (SouthEast SAS Users Group) conference proceedings.
| # | Title× | Authors× | Abstract× | Keywords× | Extras | Pages |
|---|---|---|---|---|---|---|
| 1 | 3DSHU+: C reating Stylish Multi-Sheet Microsoft Excel Workbooks the Easy Way with SAS | Vincent DelGobbo | Transferring SAS data and analytical results between SAS and Microsoft EXCEL can be difficult, especially when SAS is not installed on a Windows platform. This paper explains how to use Base SAS9 software to create multi-sheet Microsoft 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, and also methods for working with ODS styles and the ExcelXP ODS tagset. Most importantly, 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! The use of SAS server technology is also discussed. Although the title is similar to previous papers by this author, this paper contains new and revised material not previously presented. |
excel, xls, output delivery system, sas output, proc report, proc template, sas base, proc step, by group processing, ods xml, sample, proc format, dataset | source | 22 |
| 2 | A Coding Practice for Preparing Adaptive Multistage Testing | Yung-Chen Hsu | The purpose of this paper is to present a simulation study of a coding practice for preparing adaptive multistage testing (MST) designs for a credentialing testing program in the coming years. MST is an adaptive test administration method in which a test form is tailored as a sequence of pre-constructed modules at item set level. At each adaptation point a module is selected to match the proficiency estimate of the examinee based on cumulative performance on previously administered modules. For some testing programs, MST is considered a better fit in their future test development because the test delivery model offers a balanced tradeoff and a promising amelioration between the computerized adaptive tests and the traditional linear fixed-length tests. In the simulation, a macro is developed to estimate the proficiency scores based on item response theory. The algorithm is implemented with PROC IML using Newton-Raphson method. To assess the classification consistency and decision accuracy for examinees, kappa coefficients from PROC FREQ and additional consistency measures are computed to more fully characterize the extent of the agreement. Practical policy questions and test development considerations are also discussed. |
likelihood function, proc step, correlation, proc freq | source | 6 |
| 3 | A General-Purpose SAS Report Portal for the Web | Craig K. Ray | In order to meet the demands of today's information consumers, SAS report programmers frequently need to make their content available interactively to end users. Web technology provides an excellent method for users to request on-demand reports and supply any necessary parameters, but setting up the necessary web infrastructure can be a complex task, requiring a skill set very different from that needed for SAS report programming. Recognizing these needs, we developed and implemented the Westat Automated Report Portal (WARP), which utilizes SAS/INTRNET software to provide a generalized and secure environment for SAS programmers to make their reports web-accessible without requiring any web programming. Since its launch in late 2003, WARP has provided a cost-effective mechanism for dozens of Westat projects with interactive reporting needs to leverage the power of SAS to develop sophisticated, parameterized reports. This paper describes the overall architecture of the system and summarizes its capabilities in areas such as output format (HTML, EXCEL, PDF, RTF), administration, customization, and project integration. |
sas log, excel, macro variable, sas programmer | source | 8 |
| 4 | A Macro to Change Windows Filenames | Daniel Levitt | I was recently asked to change all the file names in a series of folders by adding a numeric sequence number to each FILENAME. The files were to be ordered by creation date and numbered independently of other folders. Renaming one file at a time can be extremely tedious especially when there could possibly be hundreds of files in a project folder. The program I wrote allowed me to rename all the project folder files in place using a DATA STEP, PROC SQL, and a simple Macro. This SAS program eliminated the need to look at the files and avoided having to copy the entire folder while they were renamed. This program has saved me an enormous amount of time and energy which I then used for other projects |
proc sql, dataset | source | 3 |
| 5 | A Paperless Report Generation and Distribution System | George P. Sharrard | All over the world, business units are looking for ways to be more "Green". What better way to enhance the "Green-ness" of your projects then by offering paperless solutions for the reports you generate. Using a web server, reports can be generated in .pdf and .html format for anyone in your organization to access. Need more security? Then don't use the web server - generate the same .pdf and .html reports as email attachments. If your reports take the form of daily notifications then maybe you should consider sending emails where the body of the email is nicely formatted html. We will examine the FILENAME statement's options as they apply to the email engine; specifically the 'to', 'subject', 'attach', and 'type' options. For web based reports we will highlight the use of ODS PDF and ODS HTML for creating very flexible output. |
filename statement, ods html, ods pdf, macro variable | source | 4 |
| 6 | A PICTURE Is Worth a Lot of PUTs | Carol A. Martell | This paper demonstrates the use of PICTURE formats to deliver SAS data to nonstandard destinations, including OpenGIS KML for Google Earth and ArcGIS. | put statement, numeric variable, dataset | source | 8 |
| 7 | A Step by Step Approach to Preparing for a SAS Intelligence Platform Environment Deployment/Migration | Platform Environment | Getting a new SAS Intelligence Platform up and running is an exciting time for a company. The promises heard during the sales cycle and project demonstrations need to become actionable processes by the administrators, power users and information consumers once the installation is complete. The reality is that this can only happen with careful planning and preparation before, during and after the SAS platform installation process. This paper will address how to plan and prepare for each phase of a SAS Intelligence Platform deployment and migration, such that, when the installation and configuration is complete; the platform can be leveraged in an organized manner. | business intelligence, oracle access | source | 8 |
| 8 | Acknowledging the Unknown: A SAS Macro for Investigating Omitted Variable Bias in Two-Level Linear Models | Jason A. Schoeneberger, Bethany A. Bell, Jeffrey D. Kromrey |
Albeit model specification is an essential aspect of any statistical model, there is little evidence to suggest that applied researchers adequately consider the impact of model misspecification. To help address this important issue, in this paper we introduce users to MIXED_OVA, a SAS macro for conducting sensitivity analysis of hypothetical omitted variable bias in two-level linear models. By utilizing data from PROC MIXED ODS tables in conjunction with PROC IML data simulation, the macro provides a comparison of parameter estimates, standard errors, and p-values from a user's analytic model with those generated from a model that contains the hypothetical omitted variable. This paper provides the macro programming language, as well as results from an executed example. Keywords: MODEL SPECIFICATION, SENSITIVITIY ANALYSIS, PROC MIXED |
correlation, proc mixed, fixed effects, proc step, proc calis, dataset, estimate, response variable, macro parameter, degrees of freedom, proc iml, sample, covariance, interval variable, predictor variable, regression analysis | source | 16 |
| 9 | An Exact Implicit Enumeration Algorithm for Variable Selection in Multiple Linear Regression Models Using Information Criteria | Dennis J. Beal | For large multivariate data sets the data analyst often wants to know the best set of independent regressors to use in a multiple linear regression model. Akaike's Information Criteria (AIC) is one information criterion calculated in SAS that is used to score a model. For a small number of independent variables p, an explicit enumeration of all possible models is possible. However, for large multivariate data sets where p is large, an explicit enumeration of all possible models becomes computationally intractable. This paper presents SAS code that implements the exact implicit enumeration algorithm authored by Bao (2005) that has been shown to always arrive at the globally optimal minimum AIC value when let run to completion. The number of models evaluated to determine the optimal model with the smallest AIC score is minimal and shown to be much more efficient than an explicit enumeration of all possible models. A large multivariate data set is simulated with a known true model to demonstrate how fast the exact implicit enumeration algorithm arrives at the true model. The number of models evaluated is compared to an explicit enumeration algorithm and the REG procedure in SAS. This paper is for intermediate SAS users of SAS/STAT who understand multivariate data analysis and SAS macros. |
proc reg, proc step, multiple regression, predictor variable, regression analysis, feature selection, macro definition | source | 12 |
| 10 | An Introduction to SAS Hash Programming Techniques | Kirk Paul Lafler | SAS users are always interested in learning techniques that will help them improve the performance of table lookup, search, and sort operations. Beginning in Version 9, SAS software supports a DATA STEP programming technique known as hash to allow a data structure to associate a key with one or more values. This presentation introduces what a hash object is, how it works, and the syntax required. Essential programming techniques will be illustrated to sort data, search memory-resident data using a simple key to find a single value, as well as more complex programming techniques that use a composite key to search for multiple values. |
hash table, lookup, sas log, composite key, proc sort | source | 8 |
| 11 | Analysis of a Binary Outcome Variable Using the FREQ and LOGISTIC Procedures | Arthur X. Li | A common application in the healthcare industry is to investigate the association between a response variable that has dichotomous outcome, such as having or not having a certain disease, with one or more variables. This type of study can be analyzed by using the FREQ procedure if there are only one or two explanatory categorical variables. A more general approach to study a binary outcome variable would be to build a logistic regression model by using the LOGISTIC procedure, which can handle one or more categorical or continuous independent variables. In this talk, in addition to reviewing both PROC FREQ and PROC LOGISTIC, other model-building issues, including detecting confounding variables and identifying effect modifiers, will also be addressed. After graduating from USC with an MS in Biostatistics in 2006 Arthur Li started working at the City of Hope Comprehensive Cancer Center as a biostatistician. In addition Arthur developed and taught an introductory SAS course in the Department of Preventive Medicine at USC for the past four years. |
odds ratio, likelihood function, logistic distribution, relative risk, proc freq, predictor variable, proc step, response variable, proc logistic, sample, sample size, regression analysis, logistic regression, interaction effect, nominal variable, maximum likelihood estimation, confidence interval, null hypothesis, proc calis | source | 18 |
| 12 | Analysis of Complex Survey Data | Varma Nadimpalli | Analysis of dose -response relationships has long been the main focus of clinical and epidemiological research. More recently, this type of analysis has been employed to evaluate public education campaigns. The data that are collected in such evaluations are likely to come from standard household survey designs with all the usual complexities of multiple stages, stratification, and variable selection probabilities. To meet these challenges, a new jackknifed Gamma test for a monotone dose -response relationship is proposed. The main focus of this paper is analysis of the data from the complex survey and computation of the jackknifed gamma test using SAS. KEY WORDS: Gamma, Jackknifed, Complex Survey | sample, sample weight, proc freq, intraclass correlation, correlation, control total | source | 12 |
| 13 | Analyst Beware: Five Dangerous Data Step Coding Traps | David H. Abbott | The SAS DATA STEP is a powerful data processing language with many features and abundant flexibility. However, it is complex and the results obtained from a DATA STEP can easily differ from what is intended and in some cases SAS provides no indication of anything amiss. This talk examines five dangerous traps in DATA STEP programming. These traps/pitfalls are dangerous because they: 1) produce no ERRORs or WARNINGs in the SAS log, 2) generate erroneous results, and 3) are likely to be encountered in common DATA STEP programming tasks. The five traps occur in four different areas of DATA STEP programming: Missing value handling, FIRST/LAST variable related, Merging datasets, and Character string handling. These five traps do not comprise a comprehensive list of the dangerous traps in DATA STEP coding, but they are perhaps the most interesting and the most likely to lead to erroneous material in final reports. Let the analyst beware. |
data step, missing value, subsetting if, merge statement, in=, sas base | source | 9 |
| 14 | Arrays - Data Step Efficiency | Harry Droogendyk | Arrays are a facility common to many programming languages, useful for programming efficiency. SAS DATA STEP arrays have a number of unique characteristics that make them especially useful in enhancing your productivity. This presentation will provide a useful tutorial on the rationale for arrays and their definition and use. |
data step, variable list, temporary array, numeric variable, array | source | 9 |
| 15 | Assign Overpayment to Insurance Data with Adjustments | Assign Overpayment | The purpose of this study is to assign overpayment to insurance data with adjustments using SAS . Suppose we have an algorithm to calculate the overpayment for each insurance ID, we need to join back with the original data to get the adjustments and assign the overpayments to the insurance claims with adjustments. Since the overpayments are calculated by rolling up the original dataset, we need to join back to get the adjustments by the same insurance ID. There are some rules we need to consider to assign the values of overpayments after this join back. A SAS macro with procedures such as PROC SQL and DATA STEPS is employed to do the data analysis |
insurance claims, create table | source | 5 |
| 16 | Automatization of Patient Characteristics Report | Mirjana Stojanovic | This paper describes a standardized and presentable patient characteristics report. In an effort to standardize the appearance of the patient characteristics' report our team decided to creat e one macro that will produce patient characteristics tables for all studies. This macro prov ides an easy method for producing standardized and nicely formatted tables. It uses the same lo gic and structure across all studies. In addition the macro automatically computes all stratification parameters based on number of strata and number of levels within each strata. This paper will outline the features of the macro including examples of code and output. This paper is intended for programmers with a sound foundation in SAS macro programming | macro variable, macro loop, %if-%then-%else, macro facility | source | 8 |
| 17 | Be Bold with Proc Compare and %RTFTable | Patricia Guldin | Comparing data sets and reviewing data are quite common tasks. New data comes in, data points get updated and people need and want to know about it. When reviewing new or modified data, it is often desirable to see all of the data. This often results in repeatedly running the same programs, looking for changes in ever growing reports. What an achievement it would be if the new and modified data popped out at us; life would be easier and programmers would become heroes in the eyes of those who review the data. This paper will spark ideas of ways to make this happen using the stylevar parameter of %RTFTable in conjunction with PROC COMPARE and will provide a specific example of one use of this technique |
proc compare, proc step, adverse events, sample | source | 7 |
| 18 | Becoming a Better Programmer with SAS Enterprise Guide 4.3 | Andy Ravenna | Both existing and new users of SAS are turning to SAS Enterprise Guide to write and run their code. Long-time users are accustomed to typing all their code into the Program Editor window and simply hitting the Submit key. New users do not have this same set of expectations and are more willing to point and click on occasion. But the truth is becoming clear; the winning programmer will be the one who has the expertise to create the best of both worlds--either coding or clicking, depending upon which is more efficient for a given task. SAS Enterprise Guide 4.3 contains new functionality that can help anyone become a better programmer. These pages address the all-important question: when is it appropriate to code, and when to click? The aim here is to expose new users-as well as those familiar with SAS-- to tips and best practices that will allow them to return to the office as better programmers. | sas enterprise guide, proc step, excel, dataset, proc transpose, substr function, sas programmer, work library | source | 40 |
| 19 | Breastfeeding in Developing Countries: A Case Study of Nepalese Children | Paerwen Paerhate, George Mason |
Breastfeeding is beneficial for the health of the child and the breast feeding mother. It is the recommended practice by the American Academy of Pediatrics. Many studies have been conducted on the effect of breastfeeding on children's health in the developed countries, whereas little is known about breastfeeding in the underdeveloped countries. This study characterized the relationship between breastfeeding and children's age and gender in Nepalese children. Using secondary data that were collected on 200 children at 5 time points, spaced approximately 4 months apart (1000 total observations), a logistic regression model was developed to regress the breastfeeding status on children's age and gender. This study utilized the Generalized Estimating Equations (GEE) from GENMOD procedure in SAS 9.2 to examine three situations of the distribution of variance of the model error term: compound symmetry (QIC = 539.6898), autoregressive (1) (QIC =525.8675 ), and independent (QIC =523.3782 ). Preliminary results suggest that the independent covariance structure fits the data best. The study found no significant gender effect on breastfeeding status. The probability of breastfeeding was negatively associated with increasing age of the child but the magnitude of this effect increasingly diminished as age increased. |
residual, proc genmod, logistic regression, covariance structure, covariance, logistic distribution, regression analysis, correlation | source | 4 |
| 20 | Build Excel-Like Pivot Table Using PROC SQL and PROC TRANSPOSE | Mai Nguyen, Shane Trahan, Inga Allred, Nick Kinsey |
The enormity of data used and collected in all levels of research is overwhelming; to many data analysts this deluge poses not only opportunities but can be a significant hindrance to figuring out "what does my data tell me?". Tools abound but many analysts just need something to get them started and many turn to one simple yet effective tool, Microsoft EXCEL's PivotTable utility. The EXCEL's PivotTable is a versatile function allowing users to view data in a variety of different ways. Large datasets can be easily manipulated by filtering, transforming and aggregating information providing valuable insights including difficult to detect trend identification. Our paper will provide code and illustrate a method of using this data mining technique from EXCEL and firmly places this unique and simple to understand tool into the hands of SAS developers. We will step users through the use of PROC SQL and PROC TRANSPOSE to create a robust pivot table utility easily applied to a variety of SAS based applications. Our goal is to give users a tool that not only can be used across many types of data but also help identify important information to begin analysis. |
proc sql, proc step, proc transpose, excel, group by, dataset | source | 12 |
| 21 | Business Intelligence and Analytics: Complements within a Decision Support Culture | Alan R. Mann, Albert Briggs, Emile Barnes |
"Everybody talks about the weather, but nobody does anything about it!" is a common cultural saying, which could apply to Business Intelligence (BI), but one might replace the 'does' with 'knows much!' Questions to be answered are: What is BI? What is Analytics? When does a collection of enterprise data become Business Intelligence? When does data get expressed as Analytics, but not necessarily Business Intelligence? Do the 2 overlap? How does an analytic and data transformation product such as SAS contribute to the overall build of a BI enterprise? The poster visits the semantic adventure that vexes enterprise planners, application developers, and managers. While Business Intelligence is the overall collection of organized data into knowledge, is it a superset or subset of Analytics? Can you have analytics without Business Intelligence? Therefore, we may assume an overlap, not a dichotomy. Could BI stand without an analytic component? An analytic component, from an arithmetic script to a massive statistical analysis could stand on its own, and could compete with a business intelligence plan as a method to the same solution. This poster will define the boundaries and framework of definition, in hopes that a guide to defining project scopes will follow the solution rather than the label. | business intelligence, data governance, quality control | source | 6 |
| 22 | Can you decipher the code? If you can, maybe you can break it | Jayanth Iyengar | You would think that training as a code breaker, similar to those employed during the Second World War, wouldn't be necessary to perform routine SAS programming duties of your job, such as debugging code. However, if the author of the code doesn't incorporate good elements of style in their program, the task of reviewing their code becomes arduous and tedious. Style touches upon very specific aspects of writing code; indentation for code and comments, case for keywords, variables, and dataset names, and spacing between PROC and DATA steps. Paying attention to these specific issues will enhance the reusability and lifespan of your code. By using style to make your code readable, you'll impress your superiors and grow as a programmer! |
sample, proc step | source | 6 |
| 23 | Categorizing the Degradation State of Aircraft Generators using Rank Order Statistics and SAS CLUSTER Procedure | Tsung-Hsun Tsai | Maintaining an aircraft's electrical generator in operable condition is critical as failures in the power generator system can lead to catastrophic results. With a renewed emphasis on performing maintenance and repair before the problem arises, there is a strong push toward developing stringent health management technologies that can be realized in practice. This paper uses SAS CLUSTER procedure and rank order statistics of symbolic sequence to assess the health state of Navy P-3 aircraft generators. By mapping the complex time series signal to binary sequence for encoding into abstract symbolic representation, the rank- frequency distribution is obtained by simple occurrence counting. The symbolic approach originated as a technique for analyzing hidden temporal structures in human cardiac dynamics. Two time series with similar patterns of fluctuations have similar probabilities and ranks of symbols. The objective of the study is to use the test data collected from Electrical Signature Analysis on five P-3 electrical power generators to estimate the differences of degradation state. Using a similarity measure and CLUSTER procedure, a hierarchical clustering tree can be constructed by using the TREE procedure from pair-wise measurements. The results uncover the difference of signal patterns of electrical power generators with quantitative information. Furthermore, the clustering tree not only discriminates patterns generated from different aging of the generators, but also reveals one of the generators that was used differently. A discussion of the potential for advancing health management techniques for aircraft generators is given. |
time series analysis, proc step, proc freq, proc cluster, frequency analysis, proc tree | source | 6 |
| 24 | CI_MEDIATE: A SAS Macro for Computing Point and Interval Estimates of Effect Sizes Associated with Mediation Analysis | Thanh V. Pham, Eun Kyeng Baek, Merlande Petit-Bois, Jeffrey D. Kromrey |
Measures of effect size are recommended to communicate information on the strength of relationships. Such information supplements the reject/fail-to-reject decision obtained in statistical hypothesis testing. Because sample effect sizes are subject to sampling error, as is any sample statistic, computing confidence intervals for these statistics is a useful strategy to represent the magnitude of uncertainty about the corresponding population effect sizes. This paper provides a SAS macro that uses bootstrapping to compute confidence intervals for an effect size associated with mediation analysis models. Using SAS/IML, the macro produces point and interval estimates of an R-squared effect size that represents the proportion of variance accounted for by the mediated effect. This paper provides the macro programming language, as well as an example of the macro call and output. Finally, the results from a simulation study investigating the accuracy and precision of the estimates are presented. |
effect size, confidence interval, sample, bootstrap, mediation analysis, dataset, sample size, response variable, predictor variable, correlation, monte carlo, macro definition, confidence level, regression analysis | source | 10 |
| 25 | Combining External PDF Files by Integrating SAS and Adobe Acrobat | Brandon Welchc, Ryan Burns |
As SAS programmers of various disciplines, we often utilize additional software to complete a programming task. One popular approach is integrating SAS and Microsoft EXCEL and/or Microsoft Word via Visual Basic for Applications (VBA). Using similar techniques, one may establish a link between SAS and Adobe Acrobat via Inter-application Communication (IAC). This linkage provides programmers the ability to automate processes by embedding Adobe specific language in their VB scripts. In this article, we illustrate the construction of a SAS program that outputs a Visual Basic Scripting (VBS) file, which is then submitted to combine PDF files. We demonstrate the approach in three steps. We first scan a folder using SAS File I/O functions to identify the PDF files to combine. Then we construct the VB code in a DATA STEP centered on the files residing in the folder. Finally we output the contents of our DATA STEP into a VBS file which is submitted within the same SAS program. The techniques we present offer a good overview of basic DATA STEP programming that will educate SAS programmers at all levels. |
macro variable, excel | source | 9 |
| 26 | Condensed and Sparse Indexes for Sorted SAS Datasets | Mark Keintz | This paper shows two types of user-created compressed indexes that realize both significant disk space savings and improved retrieval performance vs. the ordinary SAS index for large sorted datasets. For datasets in which the sort variable has low cardinality (i.e. a large number of observations for each value of the sort key), a compressed index takes less than 1% of the disk space of the SAS index, and almost doubles subset retrieval speed. For datasets with high sort variable cardinality, a sparse index provided similar disk space savings and improved retrieval speed by a factor of four in our data (about a half trillion stock trades and quotes since 1993 from major US exchanges). The paper will show how to create and use both the condensed and sparse indices, along with some rules on when to apply them. After over a decade as director of research computing for the demography group at the University of Pennsylvania Mark Keintz joined Wharton Research Data Services in 2001. Mark has been a research "enabler" for several years having served on NIH grant review panels for small business innovation and as a research computing consultant on numerous projects. His current interests are in efficient use of large data sets and development of financial research applications. Mark has been using SAS since it was documented in one book. | index, set statement, elapsed time, cpu time, data step, sorted data, dataset, where statement, macro variable | source | 16 |
| 27 | Coping with Job Loss Or: how I survived being laid off with one day's notice | Dianne Louise Rhodes | Over the course of your career, the likelihood that you will lose your job due to unforeseen circumstances increases as you age. It may be a forced retirement, a layoff, being downsized or fired; odds are it will happen to you. This paper presents some coping strategies garnered from my experience with being laid off with one day's notice in January 2008. | health insurance, premium | source | 7 |
| 28 | Counting the Ways to Count in SAS | Imelda C. Go | This paper first takes the reader through a progression of ways to count in SAS. A new programmer might not be able to resist the urge to hard code counters in the DATA STEP, but SAS does offer a number of tools that can facilitate the counting process and simplify code. The elements discussed include: _N_, PROC FREQ, PROC FORMAT, BY-group processing, and PROC MEANS. The need to count records according to certain groups is related to the need to generate statistics according to groups. The paper ends with a macro example that uses a single PROC MEANS statement to easily count the number of records and calculate statistics according to several categories. Note: The sample code in this paper was tested using SAS Version 9.2 |
class variable, proc step, proc freq, missing value, sas log, frequency analysis | source | 12 |
| 29 | Create compelling visualizations with geographic data and JMP 9 | Jeff Perkinson | JMP 9 introduces exciting graphical support for geographic data. In this presentation, you will learn how to use the built-in background maps in any plot of geographic data. You will also see how to connect to a Web mapping service to display specialty maps like satellite images, radar images or roadways. Because JMP 9 can plot geographic shapes based on place names, we'll demonstrate how to use the flexible architecture to create your own shape files to plot any location, like a floor plan or campus. Lastly, we'll show how to convert SAS map data sets for use in JMP. | dataset | source | 10 |
| 30 | Creating a Stored Macro Facility in 10 Minutes | Erik S. Larsen | Every SAS macro developer from time to time has spent countless hours writing, testing and perfecting code so that it can be used over and over by different users on different platforms. There are certain situations where one needs to enhance the speed of the processing of SAS code, such as in a production environment or if there is a need to process large volumes of data. A SAS Stored Macro Facility consists of a library of SAS macros which are already compiled, that are available to users or processes at any time. These pre- compiled macros run immediately when called and do not use valuable CPU time while waiting for compilation. Some examples of where a stored macro facility would be useful are in production environments, where jobs may be scheduled to run on a certain day of the day, week, or month. Another would be a standard report which is being used for an FDA submission and needs to be in an exact format. Creating a stored macro facility can be a beneficial tool for a developer or end-user and it is fairly easy to set up on any platform. There are also options to store the source code along with the compiled macro. This paper will give a brief introduction to the SAS Stored Macro Facility and explain how to set it up and use it to its full potential. | stored macro, macro facility, autocall macro, libname statement, cpu time, macro definition | source | 3 |
| 31 | Creating Correlated Variable Tables Dynamically | John Barrow, Aref Dajani |
Certain survey imputation methods rely on a correlated variable. In this instance, it is advantageous to have a summary of the correlation matrix. During a recent imputation study of the Annual Survey of Local Government Finances, a two column static table was generated containing a column of all variables and a column of their highest correlated variables. To generate this table, PROC SQL and PROC CORR were used as well as MACRO coding. The table was used together with the %SCAN macro function to impute variables using their highest correlated variable. The power of this macro is that the table is generated dynamically with each imputation implementation. Thus, if variables are added to a survey or study, an updated table will be created without additional effort. The authors present two solutions: one using PROC ODS, one using arrays. |
proc step, proc corr, sas output, dataset, correlation, imputation, macro function | source | 8 |
| 32 | Creating Stored Processes with Dynamic, Cascading Prompts | Harry Droogendyk | SAS Stored Processes are an important component of the SAS Enterprise Business Intelligence suite. Served-based SAS Stored Processes ( STP ) allow the encapsulation of common business rules to generate consistent results, the elusive "single version of the truth". STPs can be created a number ways, including from Enterprise Guide projects, and invoked from various interfaces including EXCEL, the STP web interface, Information Maps and the Portal. User specified parameters increase the flexibility and utility of this useful facility. In the latest release of SAS, STP parameters can be both dynamic and cascading, providing the ability to generate relational, data-driven prompts to customize STP results. |
excel, data validation rules, sas enterprise guide project, macro variable, macro definition, sas enterprise guide | source | 16 |
| 33 | Development of a SAS Macro for Automated Data Cleaning of Major Outcomes of Interest in Hematopoietic Cell Transplantation | Peigang Li, Min Chen, Zhiwei Wang |
Previously we have developed a set of SAS macros to run against clean outcomes data so that univariate summary statistics can be automatically generated for major ouRTItcomes of interest, such as relapse, treatment related mortality, progression/disease free survival and overall survival (Li, Zhu and Chen, MWSUG Paper 177-2010). Among the outcomes, the data cleaning of relapse is the most time-consuming due to (a) evolving definitions of relapse; (b) applicable monitoring methodologies for acute or chronic hematological diseases (National Cancer Institute Relapse Workshop November 2009); multiple sources of relapse information from comprehensive report forms (CRFs), transplant essential data (TED) forms, and legacy forms; (d) insufficient reporting by the transplant centers. We have designed and developed a SAS macro to automate and standardize the process of relapse cleaning for Acute Lymphoblastic Leukemia (ALL), Acute Myelogenous Leukemia (AML), Chronic Myelogenous Leukemia (CML), and Myelodysplastic Syndrome (MDS). We validated relapse status against clean outcomes data from early studies. Both sensitivity and specificity have achieved 99% from the most recent test, and a few misclassified non-relapse cases are likely due to hardcoding in early studies. The initial design required input data to include relapse- related key variables in addition to the patient unique identifiers. The final version only requires patient unique identifiers. The macro will greatly speed up CIBMTR studies from protocol development to creation of statistical analysis datasets. | adam dataset, clinical trial, competing risks, final analysis, macro definition, temporary dataset, sample | source | 7 |
| 34 | Does SAS Distance Measurement Differ from ArcGIS Distance Measurement? | Imam Xierali | Distance calculation on the surface of the earth is an important application for many fields of study such as geography and public health. This study is to examine the differences between the distance calculation with geodist function in SAS 9.2 and distance measures with ArcGIS 9.3. Distance measures between a sample of points are calculated using SAS 9.2 and the same distances are also measured with ArcGIS 9.3 encompassing from very large to vary small scales. The correspondence between the measurements from the two software applications are then analyzed. Results suggest that there are significant differences between the SAS distance function and ArcGIS distance calculation between the points when projections of points are important. When distance measures are important factors for one's analysis, consideration of different geodetic models and projection distortions could be important as well. | distance measure, euclidean distance, paired t-test, sample | source | 9 |
| 35 | Easier than You Think: Creating Maps with SAS Enterprise Guide | Stephanie R. Thompson | Have you ever wanted to display data on a map to add more punch to your analysis? Sometimes seeing things geographically can put things into a completely new perspective. Letting your data tell a story on a map is easier than you might think. A two-step approach with SAS Enterprise Guide is all you need. From using supplied shape files right through customizing your graph, this hands-on workshop walks you through the process. Some best practices are also included to make sure your customers are impressed. They will never know how easy it really was. | sas enterprise guide, missing value | source | 9 |
| 36 | Evaluating Consumer Price Behavior Using JMP | Joshua Klick | The Consumer Price Index for the urban population (CPI-U) represents the month -to -month inflation experience of the average urban consumer within the United States. The CPI-U is based on expenditure weights and price change s for a defined market basket of goods and services. The expenditure weights are derived from the Consumer Expenditure Survey (CES) and are updated biennially. The change in prices is based on the Bureau of Labor Statistics (BLS) price survey, which accounts for nearly 90,000 price quotes collected each month. The purpose of this paper is to demonstrate an interactive analysis of the impact of hypothetical component inflation on overall inflation using JMP Prediction Profiler. First , we will set up our CPI-U model in Microsoft EXCEL based on data queried from the BLS website. Next , we will define the model using the JMP application within EXCEL. Last, we will interactively analyze how the change in a component group index impacts the All-Items aggregate index |
excel, interaction effect | source | 6 |
| 37 | ExcelXP on Steroids: Adding Custom Options To The ExcelXP Tagset | Mike Molter | The multitude of options available with ODS's ExcelXP tagset has allowed users access to dozens of EXCEL features when creating spreadsheets from SAS, but not all of them. ExcelXP is a SAS-made tool, but because it is a tagset, users have the ability to modify it. In this paper we'll discuss strategies for adding simple functionality to ExcelXP. Users of all levels will not only see the brief, intuitive tagset code used to produce the required XML for these specific examples, but will also realize the power over their output that this and other TAGSETS give them. Those with more experience with XML and tagset coding will learn a little more about the inner workings of ExcelXP as well as general strategies for adding any functionality to any tagset |
excel, put statement, proc step, xls, set statement, macro parameter, proc template, macro loop | source | 14 |
| 38 | Eyes on the Road: A Methodology for Analyzing Complex Eye-Tracking Data | Eye Tracking | Distracted driving is a relevant social issue with potentially devastating consequences. In part due to recent calls from President Obama and United States Transportation Secretary LaHood to curb distracted driving, research on the topic is becoming more prevalent. The use of eye tracking devices in on-road vehicles is an invaluable resource to investigate driver situational awareness and attention capture. Such tools provide insight into where drivers are looking, both within and outside the vehicle, while traveling down a roadway. Data from eye trackers in a real world environment, however, present a unique set of analysis challenges. For example, there are multiple ways to quantify visual behavior (e.g., duration of fixations, percentage of time, etc.) and such quantifications are constrained to non-negative values since a driver cannot look at an object for a negative amount of time. Additionally, responses are correlated since it is general practice to use eye movement data from one person over a period of time, as opposed to one specific instance in time. The GENMOD procedure in SAS lends itself to accommodating such analysis challenges of eye tracking data through the use of generalized estimating equations which allow for restrictions on the values of a response variable and account for correlated measurements. This paper demonstrates the application of generalized estimating equations through the GENMOD procedure to analyze driver visual behavior in the presence of different roadway environments. Eye tracking devices are implemented in a variety of settings (e.g., training flight simulators, software usability, etc.). As such, it is hoped that analytical methodologies presented in this paper are also useful in the analysis of a variety of other eye tracking applications. |
estimate, correlation, proc genmod, likelihood function, sample, proc step, predictor variable, response variable, maximum likelihood estimation, feature selection, generalized estimating equations, data science, main effect, proc freq | source | 11 |
| 39 | Fighting Fraud in a Pre-Payment Environment | Fighting Fraud, Julie Malida, Greg Henderson |
In the U.S. Health Care industry, dollars lost to fraud each year are 3-10% of total U.S. Health Care spending. In Europe, the fraud estimate is 6% of health care spending, in Canada, 2% of health care spending. Health care fraud is a lucrative business and organized crime. Cross- border schemes and multi-party collusion have moved full force into health care. Most payers of health care claims are still detecting and investigating fraud after the claim is paid ("pay and chase".) However, there is a growing recognition that detecting and stopping fraud before the claim is paid ("pre-payment" ) is the way of the future. Fighting fraud pre-payment by having the right detection tools in place to identify leads and prioritize them quickly is a key. Private payers were the first to embrace the concept of moving the screening process further up in the transaction life cycle, and government entities are now recognizing the benefits of this approach as well. | source | 11 | |
| 40 | Find Potential Fraud Leads Using Data Mining Techniques | Find Potential Fraud Leads, Qiling Shi, Carrie McBrayer |
The purpose of this study is to use data mining techniques such as principal component analysis and clustering technique to find the potential fraud leads using SAS. Here fraud leads are the providers with suspicious or extremely aberrant billing activities that should be investigated in more details. We will identify the results from a supposed fraud matrix which also give rise to the concern. This example of fraud matrix ranks eleven providers by seven fraud indices, where these seven indices are given equal importance. A fraud index can be the rank of number of services billed during the holidays or provided to a deceased client. We will combine the multiple fraud indices into one comprehensive index and rank the providers by this comprehensive index. The top providers should be the fraud leads which are on the top of the alert list. Also by clustering providers into different categories using these seven fraud indices will give people a better picture of fraud maps. SAS procedures such as PROC PRINCOMP, PROC SORT, and PROC UNIVARIATE, PROC TABULATE, PROC PRINT, ODS HTML, PROC CLUSTER, PROC TREE, PROC SQL and DATA STEPS are employed to do the data analysis. |
proc princomp, proc step, data mining, proc cluster | source | 6 |
| 41 | From Obscurity to Utility: ADDR, PEEK, POKE as DATA Step Programming Tools | Paul M. Dorfman, Lessia S. Shajenko |
APP functions is an (unofficial) collective abbreviation for the SAS functions ADDR, PEEK, PEEKC, the CALL POKE routine, and their so-called LONG 64-bit counterparts - SAS tools designed to directly read from and write to the physical memory in the DATA STEP and SQL Procedure. APP functions have long been a SAS user dark horse. Firstly, the examples of APP usage in SAS documentation boil down to a few tidbits in a technical report, all intended for system programming tasks, with no hint how the functions could be used in plain data management SAS programming. Secondly, the note about the CALL POKE routine in the SAS documentation is so intimidating in tone that many a folk may have decided to avoid the potentially precarious route altogether. However, nothing can stand on the way of a curious SAS programmer daring to take a closer look; and it turns out that APP functions are very simple and useful tools! They can be used to explore how things "really work", make code more concise, implement "en masse" (group) data moves, and, oftentimes, significantly improve execution efficiency. The author and other SAS-L activists, notably Peter Crawford, have been exploring the APP world since 1998, occasionally letting the SAS-L community to peek at their findings. This tutorial is an attempt to the results in a systematic way. Welcome to the APP world! You are in for a number of not unpleasant surprises. |
numeric variable, character variable, sas programmer, temporary array, length statement, data governance, variable, variable list, proc sql, dataset | source | 18 |
| 42 | Graphing a Progression of Time Series Plots | Nathaniel Derby | Graphing is an essential step for exploratory data analysis and statistical modeling. However, when graphing an ordered progression of time series plots, it can be difficult to effectively display the progression without looking disorganized and chaotic. This paper shows a couple of approaches to this problem using the GPLOT procedure from SAS/GRAPH software and the LAYOUT OVERLAY,LAYOUT DATAPANEL andSERIESPLOT statements from the Graphic Template Language (GTL) in ODS statistical graphics. KEYWORDS: SAS, graph, GTL, time series. All data sets and SAS code used in this paper are downloadable fromhttp://nderby.org/docs/RUG11-TSPlots.zip |
time series analysis, exploratory data analysis, data science, series plot, random intercept, macro definition | source | 11 |
| 43 | Healthcare Provider Cost Reporting Information System | Kimberly Andrews, Richard Andrews |
Medicare-certified institutional providers are required to submit an annual cost report to a Fiscal Intermediary (FI). The cost report contains provider information such as facility characteristics, utilization data, cost and charges by cost center (in total and for Medicare), Medicare settlement data, and financial statement data. CMS maintains the cost report data in the Healthcare Provider Cost Reporting Information System (HCRIS). HCRIS includes subsystems for the Hospital, Skilled Nursing Facility, Home Health Agency, Renal Facility and Hospice Cost Report. This paper will describe characteristics of the files, how to interpret them, and program code to analysis the data within. | input statement, health insurance, proc sql, dataset, oracle, outlier | source | 19 |
| 44 | How variable-dependent macros can help you | Mindy Wang | In clinical trials and many other research fields, repetitive statements happen very often. This paper illustrates how to deal with the same task with three different approaches. The first approach uses simple copy and paste any SAS beginner can do. The second approach uses a simple macro program to make the task more efficient, and reduce the length of the program. To further improve the program and to make the program more adaptable to other projects, the third approach uses variable -dependent macros which minimize tedious typing, eliminate possible human errors, and ensure the accuracy of data | macro variable, data step | source | 8 |
| 45 | Identifying, Tracking, and Analyzing Patterns in Finite Concurrent and Sequential Events using SAS | Vijayalakshmi Sampath | Two or more events are considered to be concurrent (simultaneous) if they happen at the same time. Historically, concurrent events have fascinated as well as posed challenges to researchers in the form of defining, interpreting, and measuring them. Be it in the field of Physics and the treatment of concurrent events as Objective (Newtonian classical physics and reference frame independent simultaneity) or subjective (Einstein's Special Theory of Relativity and reference frame dependent simultaneity), in the field of distributed computing where identifying simultaneous message communications between the systems is crucial for resource management, or even in the field of Education and Healthcare where tracking concurrent enrollments or eligibilities becomes essential for planning and policy analyses. Depending on the application area, the treatment of the source and the event may vary in terms of evaluating the concurrent events. This paper discusses, in general, the common factors to consider while attempting to identify a finite number of concurrent and sequential event patterns. It further presents generic SAS coding tips to track these patterns to quantify and analyze them. The paper concludes by presenting an example from an application area and how the concepts discussed apply to the particular example. | sample, retain | source | 10 |
| 46 | In Lockstep with the DoW-Loop | Paul M. Dorfman, Lessia S. Shajenko |
The DOW-loop is a nested repetitive DATA STEP programming structure, intentionally organized in order to allow for programmatically and logically natural isolation of DO-loop instructions related to a certain breakevent from actions performed before and after the loop, and without resorting to superfluous conditional statements. Readily recognizable in its basic and most well-known form by the DO UNTIL (LAST.ID) construct, which naturally lends itself to control-break BY-processing of grouped data, the DOW-loop, however, is much more morphologically diverse and general in nature. In this talk, we aim to examine the internal logic of the DOW-loop and use the power of example to reveal its aesthetic beauty and pragmatic utility. To some industries, for example, pharma, where "flagging" every observation in a group based on conditions within the group is ubiquitous, the DOW-loop lends itself as an ideal logical vehicle by greatly simplifying the alignment of stream-of- consciousness and SAS code. |
set statement, missing value, hash table, output, by group processing, dataset, data step, automatic variable, proc sql | source | 18 |
| 47 | Intelligent PROC SORT NODUPKEY | Andrea Wainwright-Zimmerman | Have you ever had a dataset that you were updating records in and needed to eliminate the old records and replace them with new? PROC SORT with the nodupkey option will eliminate rows that duplicate your key fields, but it randomly chooses which field to keep and that may not be the one you want. This paper will show how to combine a PROC SORT and a datastep to get the sorted dataset with the exact records you want. |
proc sort, proc step | source | 4 |
| 48 | Introduction to ODS Graphics for the Non-Statistician | Mike Kalt, Cynthia L. Zender |
Are you a History, English, or other Humanities major who's stumbled into SAS programming? Are you a business analyst or report analyst whose statistical knowledge ends with mean, median, percentiles and standard deviation? Don't know a fitted loess curve from a survival estimate? Need to produce some series plots and bar charts and maybe the occasional box plot? Don't Panic! This presentation is for you! This presentation illustrates how to use the new SG procedures, in particular, SGPLOT and SGPANEL to produce simple plots and bar charts. Once you know the basics of the SGPLOT statements to produce single graphs, learning SGPANEL to created paneled output will be a cinch. Through concrete examples, this paper will guide you through the basics of producing and customizing simple graphs using the new SG procedures. In addition, use of the ODS GRAPHICS statement for setting graph options will be covered. (Note: The SGSCATTER and SGRENDER procedures fall outside the scope of this presentation.) |
proc step, bar chart, proc sgplot, proc freq, series plot, histogram, proc sgpanel, proc sgscatter, vertical bar chart, sas base, nominal variable, proc gchart, proc univariate, scatter plot, line chart | source | 28 |
| 49 | Introduction to SAS Macro Language | John Myers | Step by step process for developing SAS programs using the SAS macro language. Topics include creating macro variables, building macro definitions, conditional processing and iterative processing. Examples are given to illustrate these topics. This presentation would be useful to those who have some experience with base SAS and want to begin using the SAS macro language. | macro variable, macro definition, macro facility, macro put, put statement, proc step, macro parameter, keyword parameter, %macro parameters, &variable, proc print, proc sort, proc sql, title statement, if-then-else, %if-%then-%else, macro loop | source | 7 |
| 50 | JMP Analytics Applied in Diagnostic Radiology and Neurosurgery Trauma Research | Melvin T. Alexander | JMP analytics helped trauma neurosurgeons and radiologists, diagnosing brain and spinal- cord injured patients, identify key factors affecting patient outcomes. A study in Neurosurgical Focus (June, 2009, 26, E8) showed how JMP discovered risk factors associated with subdural hygroma (SDG). SDG is the collection of cerebrospinal fluids over the brain following surgery that can result in delayed head-trauma complications. Sixty-eight patients were followed 36- weeks longitudinally, 39 patients had SDG, 29 patients without SDG. Likelihood Ratio and Fisher's exact test results indicated that motor vehicle accidents (p< 0.007) and falls (p<0.005) were most often linked with SDG development. Diffuse brain injuries were more prone to SDG complications (p< 0.0299). JMP was used in another study by published in the American Journal of Roentgenology (2009, 192, 52-58) to identify quantitative, anatomic measurements of head and neck images that distinguished patients with and without Craniocervical Distraction injuries (CCDIs). CCDIs are often fatal head-neck injuries that have been associated with survival to the hospital. Improved emergent patient retrieval systems have increased survival to the hospital. However, CCDIs tend to be missed in physical examination and diagnostic imaging. Logistic regression and recursive partitioning determined that measures such as the midline occiput- C1 spinolaminar distance (p=0.0016), midline C1-C2 spinolaminar distance (p<0.0001), basion-dens distance (p<0.0001), sum of condylar displacement (p=0.0002), and basion- posterior axial line distance (p<0.0001) differentiated patients with CCDIs from patients without CCDIs. This presentation examines the role JMP software (version 7 or higher) plays in advancing follow-on investigations. | proc freq, odds ratio, data cleaning, dataset, bootstrap, likelihood function, logistic regression, logistic distribution, sample, regression analysis, roc curve | source | 18 |
| 51 | JMPing in: A SAS Programmer's look at JMP | Barbara B. Okerson | JMP software provides a variety of ways of understanding, visualizing and communicating what your data is telling you, but until recently has been used mainly as a stand-alone product. This paper shows the advantages of adding JMP software and its functionality to a SAS programming environment. Topics covered emphasize the connectivity with SAS, including: previewing SAS data, running SAS procedures from within JMP, using JMP for further exploration of SAS results, and using SAS geographic data with JMP. Through these features and others in a point - and-click environment, JMP can increase the power and functionality of SAS analytics | dataset, sas log, sample, variable, sas enterprise guide, sas output | source | 8 |
| 52 | Keeping Up Appearances: Turning Specifications into SAS Format Libraries and Statements | Turning Specifications | Specifications documents concerning the desired appearance of SAS data are often provided in an EXCEL spreadsheet format. While such an arrangement provides ease of use to the person creating it, typically the client to whom the final data delivery will eventually be returned, having format information set up this way it not directly conducive to its use in SAS. This paper describes the process by which formats presented in this way can be easily converted into both SAS format libraries and format statements. The process centers around the use of standard reports from Oracle Clinical to provide the basic information, but the methods can be applied to any specifications document in EXCEL. Along with the final format products, this encompasses evaluating the appropriateness of format names and making broadly applicable changes as needed, ensuring unique variable names, particularly if data is coming from multiple sources, and building in appropriate quality control steps along the way. This conversion requires both DATA STEP work and several common procedures (IMPORT, CONTENTS, FREQ), but is accomplished entirely in Base SAS and does not need any special products. Flexibility remains in the process to compile or subdivide both the format catalog and statements as needed by the user or as applicable based on the requirements of a particular deliverable. |
format statement, proc step, proc sort, excel, proc print, view | source | 11 |
| 53 | Let SAS Do the Downloading: Using Macros to Generate FTP Script Files | Arthur Furnia | Analysts often need to obtain data generated by an office outside of their organization. Ideally, the analyst would have access to the database of that office, but sometimes security rules require that the data must be obtained in some intermediate format to be processed later. Downloading this intermediate data can be labor-intensive, and not only wasteful of time but also prone to human error resulting in bad or incomplete data downloads. Imagine changing a few macro parameters in a SAS program, that when executed creates its own code to download all required files, waiting for one set of files to download before writing more code to download the next set of files, until it reaches a pre-determined point at which processing stops. This paper shows an example of how to use a series of macros to construct an individual script file containing FTP commands that when executed downloads a specific group of files for a given month from a specific location on the FTP site to a specific directory on a local computer or network. As many script files are created as there are directories requiring data. After each script file is run, it is then deleted. Since only a few parameters at the beginning of the program need to be changed each month, even non-SAS users can easily run the program. Therefore an analyst can run a SAS program overnight, and spend no more time painstakingly downloading data from an FTP site. | macro variable, character constant, proc step, sysrc, proc sql, macro loop, do loop, numeric variable, proc import, macro definition, sysdate9, %if-%then-%else, date variable, macro function | source | 12 |
| 54 | Let's Give 'Em Something to TOC about: Transforming the Table of Contents of Your PDF File | Bari Lawhorn | In PDF files, the table of contents provides a map that helps your audience to navigate the document easily. However, the default table of contents that is generated by the SAS Output Delivery System (ODS) destination, while informative, is fairly utilitarian. Your procedures and DATA steps generate tables and graphs that have meaning to you and your audience. Likewise, the table of contents should also be as meaningful as possible by clarifying the contents of your PDF. This paper explains and demonstrates step by step how to use the following statement, options, and procedures to customize your table of contents: the ODS PROCLABEL statement the CONTENTS= and the DESCRIPTION= options the DOCUMENT destination and procedure the TEMPLATE procedure These SAS procedures, statements, and options provide you with the flexibility and the power to customize your table of contents so that you really leave your audience with something to TOC about! |
proc step, proc report, sample, output delivery system, proc gchart, ods pdf, proc greplay, proc sql, missing value, proc gplot, proc freq, proc print, proc reg, proc sgpanel, proc tabulate, macro variable, sas programmer, proc template, file statement, sas output | source | 18 |
| 55 | Linear Logistic Test Model: Using SAS to Simulate the Decomposition of Item Difficulty by Algorithm, Sample Size, Cognitive Component and Time to Convergence | George MacDonald, Jeffrey D. Kromrey |
Fischer (1973) introduced a model called The Linear Logistic Test Model (LLTM) that is capable of bridging cognitive processing models and psychometric models. In his mathematics study, he found that differentiating calculus items could be explained by eight basic cognitive operations. He postulated that item difficulty could be re-parameterized to express these operations. LLTM can be coded in SAS using PROC NLMIXED. Clustering items within persons is considered by many to be a multi-level approach. Because no algorithm method exists that always finds the global optimum, and given the array of optimization algorithms available, coders may well want to know which algorithms work best under various test conditions. To provide some answers to these questions, a simulation study was undertaken to determine the utility of the algorithm methods available in PROC NLMIXED according to varying sample sizes,number of cognitive components, and time to convergence. The results will be interpreted and their significance, and implications for LLTM use will be discussed. Guidance for the use of PROC NLMIXED, for the estimation of LLTM, and suggestions for future research will be highlighted. |
sample size, sample, confidence interval, proc step, estimate, logistic distribution | source | 11 |
| 56 | Loading Metadata to the IRS Research Compliance Data Warehouse (CDW) Website: From Excel Spreadsheet to SQL Server Relational Database Using SAS Macro and PROC SQL | Robin Rappaport, Jeffrey S. Butler |
Providing metadata for the largest database in the IRS, the Compliance Data Warehouse (CDW), lets researchers quickly search for and understand the meaning of data available for analysis. With more than 25,000 unique columns and over 500,000 separate attributes, CDW delivers large-scale metadata as part of a broader data quality initiative. In addition to standardized column definitions that are searchable through the CDW website, metadata also include lookup reference tables, data types, legacy source information and other attributes. Most metadata are initially created or updated in EXCEL, after which they are imported into SAS data sets for additional processing. SAS macros are implemented to iteratively read, process, format, and perform other operations one column at a time for each table being updated. Using the ODBC engine type via the LIBNAME statement, PROC SQL executes INSERT, UPDATE, or DELETE statements in Microsoft SQL Server, which stores the final metadata published to the CDW website. SAS logs are monitored to ensure the integrity of database transactions, and a staging web site is analyzed to validate results. By leveraging the power of SAS to import source data, iteratively process data with macros, and update external databases, hundreds of IRS researchers can reliably access metadata on a regular basis to support their analytical needs. |
proc sql, dataset, sql server, proc step, excel, macro definition, proc import, data cleaning, data profiling, libname statement, data validation rules, proc freq | source | 7 |
| 57 | Locally Visible, Remote Data and Format | Locally Visible | Problem Statements: 1) Say you have SAS data on Unix or mainframe; do you have to be on Unix or mainframe and invoke SAS there to use or view the data? Answer 1: No, you don't have to; you can use PC SAS to view Unix SAS data. 2) So how can you view Unix or mainframe data in a PC SAS session? The prerequisite is SAS/CONNECT or SAS/SHARE then remote data and format becomes visible just like local data and format. |
proc step, proc print | source | 3 |
| 58 | Macro Design and Usage in A Multi-Tier Architecture for ETL and Google Visualization API Integration | Visualization API | A multi-tier application architecture separates data management, application processing, and presentation. This paper shows how to facilitate this separation of concerns by producing loosely coupled macro components with specified purposes that also interact with one another. It examines an ETL batch file written so that one macro extracts spreadsheets from a web server, a second macro transforms the spreadsheets, and yet another loads them into datasets. This data processing is extended with a presentation layer macro which integrates SAS with the Google Visualization API to produce a highly interactive motion or bubble chart that "plays" a dynamic "movie" to explore several U.S. federal government indicators over time. Ultimately, all of these SAS components can be housed in a repository in order to be reused by developers in an organization. This paper explores how good macro design includes: 1) utilizing a naming convention with nouns for objects or variables and action verbs for macro functions to reveal system decomposition; 2) using parameters beyond the standard numeric and character data types--for example, arrays and dataset parameter objects; 3) and, finally, choosing the appropriate input parameters for a macro interface and clearly understanding its output. Macros, as this paper shows, can also call other macros to output data from a permanent data store, such as a dataset, to its most natural form -i.e., persistent memory objects. Expanding SAS macro developers' understanding on how to set persistent macro objects and then retrieve them in a multi-tier architecture is arguably one of this paper's more important contributions. In conclusion, the SAS community will realize the many advantages of a multi-tier architecture: code that is easier to maintain, extend, and even reuse. If designed correctly, any application using SAS will be nothing more than a black box for an end user, configurable by XML files. Architects, moreover, will be better able to understand and communicate how SAS systems are used in their organizations, since a multi- tier design provides an intuitive and standard means of describing a system implementation. And, finally, developers will be able to extend and reuse existing macro code to add new behaviors, as needed, through the introduction of additional macros; this will ultimately allow SAS developers to more readily respond to new requirements and incorporate enhancements. | excel, sas programmer, macro definition | source | 11 |
| 59 | Macros for Two-Sample Hypothesis Tests | Jinson J. Erinjeri, D.K. Shifflet |
Statistical Hypothesis Testing is performed to determine whether enough statistical evidence exists to conclude that a hypothesis about a parameter is supported by the data. This paper deals with the macro codes for 2-sample hypothesis testing for proportions and means which are the commonly used statistical tests across all industries. The application was mainly developed to determine whether or not there existed significant difference (mean/proportion) between the important travel variables from year to year in the raw data. In this paper, we have presented the generalized macros for the Two-Sample hypothesis tests. | sample, hypothesis testing, sample size, proc step, proc freq | source | 7 |
| 60 | Making Your SAS Data JMP Through Hoops | Mira Shapiro | Longtime SAS users can benefit by adding JMP to their repertoire. JMP provides an easy-to- use and robust environment for data exploration, graphics and analytics. This paper will provide an introduction to JMP 9 with an emphasis on features that SAS users will find useful. During this presentation, users will learn how to read their SAS data, import EXCEL spreadsheets, transform their data, explore distributions, create reports and create sophisticated graphics all in the JMP environment. Users will be introduced to the tools within the JMP 9 environment that provide a pathway to quickly learn how to use the product and some of its unique features. |
dataset, sample, histogram | source | 11 |
| 61 | Misquoting Jane Austen in the Name of Quality Assurance | Deborah Posner | A proficient programmer may not be an eager code checker. Have you ever heard a programmer announce that a task was completed, followed by someone else finding errors in the log, unexpected results, or (horrors!) no results at all? Have you ever been that programmer? The reality is that no matter how many times we say checking your work is part of the job, the tasks of programming and checking are intrinsically distinct. Virtuous programmers and their vigilant managers must determine the best way to accomplish the quality assurance task with regard to thoroughness and expedience. This paper outlines specific quality assurance tasks for programmers to include in their standard workflow. It also provides programming code to create outputs expressly designed for programmers, managers, and specification writers for their review. These outputs report on missing values in the data, missing labels for variables, values (i. e., codes) without labels, and values where labels exist for expected data, but no data occurred for these values. | proc step, missing value, character variable, numeric variable, create table, data step, proc format, quality assurance, full join, proc sql, inner join, sample | source | 11 |
| 62 | Missing_Items: A SAS Macro for Missing Data Imputation in Summative Response Scales | Patricia Rodríguez de Gil, Jeffrey D. Kromrey |
Missing data are usually not the focus of any given study but researchers frequently encounter missing data when conducting empirical research. Missing data for Likert-type response scales, whose items are often combined to make summative scales, are particularly problematic because of the nature of the constructs typically measured, such as attitudes and opinions. This paper provides a SAS macro, written in SAS/IML and SAS/STAT, for imputation of missing item responses that allows estimation of person-level means or sums across items in the scale. Imputations are obtained using multiple imputation (MI), single regression substitution (SRS), relative mean substitution (RMS), and person mean substitution (PMS). In addition, the results of a simulation study comparing the accuracy and precision of the imputation methods are summarized |
missing value, mean imputation, sample, imputation, multiple imputation, regression analysis, dataset, macro call, rmse, mse, missing at random, variable, correlation, data science | source | 13 |
| 63 | MV_META: A SAS Macro for Multivariate Meta-Analysis | Julie A. Gloudemans | Meta-analysis of multiple outcomes and multiple tre atments from a single study require more sophistica ted models than the typical meta-analytic models that assume i ndependence of effect sizes. Three different approa ches have been suggested to accommodate dependent effect sizes: a multivariate multi-level approach (Kalaian & Raudenbush, 1996), a robust variance estimation strategy (Hedge s, Tipton, & Johnson, 2010), and the traditional un ivariate random effects approach (Hedges & Olkin, 1985). Thi s paper presents a SAS macro that calculates multiv ariate meta-analysis confidence intervals, mean effect siz es, and estimated effect size variances for each ou tcome variable given a sample of effect sizes and sample sizes. Th is paper includes a demonstration of the macro, sam ple inputs and output, and an examination of the accuracy and precision of the three approaches based on a simulation study. Keywords: DEPENDENT EFFECT SIZES, RANDOM EFFECTS, CONFIDENCE INTERVALS, BASE SAS , | effect size, proc mixed, sample, fixed effects, sample size, confidence interval, proc calis, response variable, covariance, weighted mean, proc step | source | 12 |
| 64 | My annual reporting is requiring a full staff - Help! | Erin Lynch, Daniel O'Connor, Himesh Patel |
With cost cutting and reduced staff everyone is feeling the pressure to finish their job. Preparing reports of any kind can be very time consuming. Not to worry SAS is here to rescue. This presentation goes over a real world example of generating complex reports for charter schools. You will see how data from various sources (enrollment, attendance, assessment) is consolidated. Customization by school produces multiple instances of the same basic report. You will see how SAS software can create polished, detail rich, academic charts and graphs that can be automatically customized by school. Using the power of ODS and SAS/GRAPH procedures you can easily display data in a custom report that has never looked so good. Examples and code in this presentation will help you generalize the usage. These same techniques can be applied to any industry. Going from data to displaying graphs is much easier. |
proc step, proc fcmp, excel, proc sgplot, sample, macro definition, output delivery system | source | 12 |
| 65 | ODS PDF and RTF application development | Benno F. Kurch | For an ODS developer at a beginning or advanced level, creation of tailor-made ODS PDF or RTF reports is not an out-of-the-box, turnkey operation. Creation of such reports may require out-of-the-box thinking. Implementing a larger font size, for example when converting a listing report to an ODS report may require report re-design and consultation with business review personnel. This paper will present an overview of report design techniques and coding approach based on the use of DATA STEP, macro programming and PROC REPORT. The paper will mainly be oriented to the production of ODS PDF reports for the pharmaceutical industry. Taking time up front to think thru potential issues can significantly reduce development time and produce properly designed ODS reports that will impress users with their professional look. |
ods pdf, proc step, proc report, macro loop, macro definition, proc template, %if-%then-%else | source | 10 |
| 66 | On Deck: SAS/STAT 9.3 | Maura E. Stokes, Fang K. Chen |
SAS/STAT 9.3, coming soon to a site near you, delivers numerous enhancements to the statistical software. The PHREG procedure supports frailty models for incorporating random effects in Cox regression and the MCMC procedure provides a RANDOM statement to facilitate fitting Bayesian models with random effects. The NLIN procedure has been updated, and the MI procedure offers additional flexibility by providing a fully conditional specification method. The new SURVEYPHREG and HPMIXED procedures are also outfitted with additional capabilities. This talk reviews the highlights of the 9.2 and 9.22 releases of SAS/STAT software and then describes important 9.3 enhancements with practical illustrations. |
poisson distribution, likelihood function, proc mixed, sample, prior probability, maximum likelihood estimation, poisson regression, proc step, regression analysis, estimate, proc phreg, response variable, zero-inflated poisson, confidence interval, logistic distribution, proc freq, binomial distribution, numeric functions, proc nlin, proc genmod | source | 20 |
| 67 | Our Adverse Event Review Reports Generated All in ODS Report Writing Interface | Sijian Zhang | It is a common practice that third party software is used for generating complex reports. Usually, the data or some report components are prepared in SAS, and then other reporting jobs are outsourced to other software, such as MS Word. This situation has been changed since SAS 9.2. Taking one of our routine reports as an example, this paper will illustrate what the ODS report writing interface can do, how syntaxes are applied and completed reporting features are coded with ease. With this new tool, our complex reports are all done in SAS in a smoother and more efficient way. |
adverse events, output delivery system, if-then-else | source | 10 |
| 68 | Output Delivery System (ODS) - Simply the Basics | Kirk Paul Lafler | Are you looking for ways to improve the way your SAS output appears? Output Delivery System (ODS) can help turn tired-looking output into great looking information with a purpose. Gone are the days when the only available formatting choice is boring output listings containing lifeless monospace fonts. ODS introduces exciting new features for your output. Using built-in format engines, ODS provides SAS users with a powerhouse of exciting capabilities to produce "quality" and publishable output. This hands-on workshop shows users how to select the output of interest using selection (and exclusion) lists; and how ODS is used to send selected data and output to output destinations including RTF, MS EXCEL spreadsheets, PDF, HTML, and SAS data sets. |
proc univariate, output delivery system, sas output, ods pdf, ods html, ods rtf, dataset, proc step | source | 14 |
| 69 | Permutated-block randomization with varying block sizes using SAS Proc Plan | Lei Li | Permuted-block randomization with varying block sizes using SAS PROC PLAN Permuted-block randomization is often used in determining treatment assignments for clinical trials. This method allows flexibility in achieving balanced allocation of subjects among treatment groups and is further enhanced with increased randomness of the assignments by the use of varying block sizes. Chow and Liu (2004) illustrated the implementation of the permuted- block randomization with a fixed block size using the SAS PROC PLAN. This paper presents a modified version of their SAS program to implement the permuted-block randomization with varying block sizes. This program is simple to run and self-contained. Users can easily adapt the program to meet various design specifications, produce analytical statistics and present the generated randomization schedule in a desired format |
randomization, proc step, treatment arm, clinical trial, sample | source | 6 |
| 70 | PIPE Dreams: Yet Another Tool for Dynamic Programming | Scott Burroughs | Statisticians are often divided into Bayesians and Frequentists when it comes to study design and analysis beliefs. As a SAS programmer, you could put me in the Dynamic camp. This is my 5th presentation at a SUG, and all have had something to do with dynamic programming. Dynamic programming is letting the ever-changing and often unknown data drive the results….no hardcoding! There is a dynamic tool that I've used when I needed to read in data sets from a certain directory where I didn't necessarily know the names of the data sets nor how many there were. The PIPE command in SAS is a tool to read in data sets from a directory when the names and quantity are unknown and changing | proc contents, proc step, macro variable, filename statement, macro definition | source | 6 |
| 71 | Practical Approaches to Counting in SAS: How to Get Started When You Don't Know Where to Begin | Sharon Avrunin-Becker | One of the wonderful things about SAS is that there are several ways to approach a programming problem with no one way being right or wrong. Some ways take more time to keyboard out all the steps and some ways take up less lines of programming but take up more of your brain energy trying not to type a few extra lines of code. One of the things SAS is frequently used for is to create reports which have calculations of numbers. The biggest question is how do I get my number totals. This paper will show you two different scenarios and how the same answer can be derived in totally different ways. | proc step, proc sql, proc freq, proc tabulate, create table | source | 5 |
| 72 | Printable Spreadsheets Made Easy: Utilizing the SAS Excel XP Tagset | Richard Andrews | The SAS System offers myriad techniques for reporting on data within Microsoft EXCEL. Depending on the task at hand SAS Access or the Output Delivery System (ODS) might be good choices; Dynamic Data Exchange (DDE) or the old standby, Comma-Separated Values (CSV). This paper describes a method of creating multi-tab, print-ready reports using the EXCEL XP tagset available in version 9.1. This feature of Base SAS can greatly minimize the manual and repetitious task of preparing headers, footers, and various other formatting needs. |
excel, ods html, proc print, proc step, footnote statement, sas base, options statement | source | 11 |
| 73 | Proc CDISC: Implementation and Assessments | Sheetal Nisal | With the rapid developments in the industry standards like CDISC and with demanding FDA requirements, CROs and sponsor companies are trying to implement various data models developed by clinical data interchange standards consortium (CDISC). PROC CDISC is one of the important procedure which provides a way to import and export an XML document in CDISC ODM (operational data model) and SDTM (Study Data Tabulation model) formats. It provides functionality and features that is based on specific CDISC model. This paper introduces and describes application of PROC CDISC for different domains, and illustrates the differences in output produced by PROC CDISC when applied to different type of metadata. |
proc step, data cleaning, concomitant medications, dataset, missing value, data standard, cdisc | source | 6 |
| 74 | PROC COMPARE - Worth Another Look! | Christianna S. Williams | PROC COMPARE is one of those workhorse procedures in the Base SAS closet that deserves to be dusted off, tuned up and pressed into service again! With well-chosen PROC COMPARE options and statements, you can compare pairs of SAS datasets at multiple levels without the need for DATA STEP MERGEs or SQL JOINs. Specifically, you can identify differences and similarities across SAS data sets with respect to: data set attributes; variable existence and attributes; existence of matching observations; and variable values (at user-specified levels of precision). This handy PROC can even be used to compare values of one variable to another within a dataset. Additionally, several different reporting options are available and can be customized to project needs. This flexibility makes PROC COMPARE an extremely useful tool for a variety of purposes, including data cleaning and validation, ensuring that new data is consistent with "legacy" data (or differs in expected ways), and even for some simple longitudinal analysis! This tutorial-style paper will teach you how to harness some of the power of this under-appreciated procedure! |
proc compare, proc step, missing value, character variable, dataset, numeric variable, sas base | source | 25 |
| 75 | PROC FORMAT, a Speedy Alternative to Sort/Sort/Merge | Jenine Milum | Many users of SAS System software, especially those working with large datasets, are often confronted with processing time challenges. How can one reduce the amount of CPU required to retrieve specific data? In this paper, an "outside the box" approach using a matching method utilizing PROC FORMAT replaces the CPU heavy Sort/Sort/Merge. It is ideal for situations when a key from one file is needed to extract data from another file. It is more apparently useful when at least one of the files is quite large. This method has been proven time and again to decrease CPU by 70%-80% and is effective on all platforms utilizing Base SAS |
proc format, proc step, data step, cpu time | source | 5 |
| 76 | Proc MIXED - Right Options to get Right Output | Shilpa C. Edupganti, Sheetal Nisal |
The MIXED Procedure fits a variety of mixed linear models to data that enables us to use these fitted models to make statistical inferences about the data. Once a model has been fit to the data, we can use it to make statistical inferences via both the fixed-effects and covariance parameters. PROC MIXED computes several different statistics suitable for generating hypothesis tests and confidence intervals and several other statistical parameters. The validity of these statistics depends upon the mean and variance-covariance model we select by the right ordering of the data and picking the right estimate difference, so it is important to choose the right model. We use PROC MIXED for statistical analyses very frequently and might have to do some trial and errors to check which model works best for us. There were few problems that we have overcome when running on large data and some of the trial output from PROC MIXED helped us to assess the model and compare it with others which gave us a lot of options to work on the mixed model changing the model itself with right treatment ordering and picking up the right treatment covariate interaction and other parameters. Based on multiple possibilities one option would be best for each of the possibility. So this presentation demonstrates different problems and its suitable method to pick the right parameter or model to deliver the desired output. |
proc mixed, proc step, feature selection, data science, interaction effect, covariance, clinical data, out=, sample | source | 9 |
| 77 | PROC SURVEY... Says!: Selecting and Analyzing Stratified Samples | Darryl Putnam | Statisticians and analysts need to design stratified survey plans and analyze the results of those surveys. Gone are the days when the analyst can ignore survey design tools when drawing inferences from the surveys. By forgoing the SAS survey analysis procedures, estimates of the mean and standard error will be incorrect. By combining DATA STEP processing with the SAS survey analysis procedures of PROC SURVEYSELECT and PROC SURVEYMEANS, we can determine the sample size, allocate the sample size across strata, and then draw correct inferences. This paper will demonstrate how to use these survey design and analysis tools with a stratified sample of an inventory audit |
sample, sample size, proc step, proc surveyselect, confidence level, proc surveymeans, proc calis, random sampling, finite population correction, confidence interval, dataset | source | 9 |
| 78 | Quick and Dirty Formatted Excel Workbooks Without DDE or ODS | Andrea Wainwright-Zimmerman | There is a simple trick using the X command in SAS that allows you to write out your SAS data to a already formated EXCEL sheet with graphs and pivot tables already built. This paper will describe how to accomplish this, as well as the limitations of this method. The presentation will include a live demo. |
proc export, excel, proc step, name range list | source | 9 |
| 79 | RDPLOT: A SAS Macro for Generating Regression Discontinuity Plots | Jason A. Schoeneberger | Applied social science and education researchers often face less than ideal research design conditions for understanding interventions or programs. A lack of willingness on the part of policymakers to utilize random assignment in these fields prevents researchers from capitalizing on the high levels of internal validity offered by such a design. One research design that offers a palatable alternative to all stakeholders is the regression discontinuity design, where a pre-intervention measure is used to determine what research subjects receive the intervention. Typically all subjects below (or above) some cut-point on the pre- intervention measure continuum are assigned to receive the intervention, while all other subjects serve as the control. In this design, the interest is centered on the post-intervention measure for those students just on either side of the cut-point on the pre-intervention measure. A regression model is used to determine whether a significant difference exists between the intervention and control groups on the post-intervention measure. A treatment effect creates a discontinuity in the regression line, depicting the advantage (or disadvantage) associated with the intervention. Interpretation of these designs is aided by examination of a graphical depiction of the discontinuity in the regression line. The macro described herein was designed to facilitate the generation of regression discontinuity plots under homogenous or heterogenous conditions through the entry of eight parameters into the RDPLOT SAS macro. | regression analysis, regression discontinuity, macro parameter, proc step, proc glm, dataset, proc genmod, proc sql | source | 13 |
| 80 | Ready to Become Really Productive Using PROC SQL? | Sunil Kumar Gupta | Using PROC SQL, can you identify at least four ways to: select and create variables create macro variables create or modify table structure change table content Learn how to apply multiple PROC SQL programming options through task-based examples. This hands-on workshop reviews topics in table access, retrieval, structure and content, as well as creating macro variables. References are provided for key PROC SQL books, relevant webinars, podcasts as well as key SAS technical papers. |
proc sql, macro variable, proc step, order by | source | 19 |
| 81 | Resolving OpenCDISC Error Messages Using SAS | John R. Gerlach | The Clinical Data Interchange Standards Consortium (CDISC) Study Data Tabulation Model (SDTM) defines the required standard for the submission of human clinical trial data to a regulatory agency. OpenCDISC Validator is a free, open-source tool that is embraced by many pharmaceutical and biotechnology companies and used to assist in validating clinical data in accordance with the ever-evolving CDISC standards. Although OpenCDISC does a thorough job of validating CDISC domains, the application produces error messages that can be difficult to understand, let alone resolve. Interpreting the output and determining the necessary course of action is not always straightforward. Certainly, creating and validating clinical data requires a multi-faceted approach that includes having knowledge of the CDISC standard, experience with Base SAS, as well as an und777erstanding of clinical data. OpenCDISC introduces another factor to that endeavor. This paper gives an overview of the OpenCDISC application and discusses examples of programming techniques for resolving data issues. | data cleaning, controlled terminology, sdtm domain, proc sql, proc freq, adverse events, macro variable, missing value, vital signs, serious adverse event, proc step, trial summary, macro loop, cdisc | source | 11 |
| 82 | SAS Code to Export and Create Pivot Tables in Excel 2007 | Robert Williams | Management and decision makers are always asking to have their report results in a pivot table in EXCEL 2007. Why? Because EXCEL is a widely used office software and pivot tables are popular among the business end users due to ease of drill-down capabilities of the data. Unfortunately, creating pivot tables is a manual process using a mouse. It becomes a chore when a SAS programmer is asked to create pivot tables in EXCEL 2007 using the data from SAS. In this paper, the step-by-step coding process will show you how SAS eliminates the manual process of creating pivot tables in EXCEL 2007. Using the EXCEL pivot table macro, PROC EXPORT and SAS Direct Data Exchange (DDE), SAS will link and communicate with EXCEL 2007 to automatically create the pivot tables without touching the mouse. You will be amazed, especially for routine weekly or monthly reports, how useful this process is for business reports that requires being in the management's preferred pivot table style in EXCEL 2007. Let SAS do the work of generating the EXCEL 2007 pivot tables for you! |
excel, data step, sample, proc export, proc step | source | 8 |
| 83 | SAS Enterprise Guide 4.3: Finally a Programmer's Tool | Marje Fecht, Rupinder Dhillon |
Have you been programming in SAS for a while and just aren't sure how Enterprise Guide can help you? It isn't just a pretty face! This presentation demonstrates how SAS programmers can use SAS Enterprise Guide 4.3 as their primary interface to SAS while maintaining the flexibility of writing their own customized code. We explore: -navigating the views and menus -using Enterprise Guide to access your existing programs and enhance processing -utilizing Code Analyzer, Report Builder, and Document Builder -exploiting the enhanced development environment including syntax completion and built-in function help -adding Project Parameters and dynamic parameters to generalize the usability of programs and processes -leveraging built-in capabilities available in SAS Enterprise Guide to further enhance the information you deliver. Audience: SAS users who understand the basics of SAS programming and want to learn how to use Enterprise Guide. It is also appropriate for users of earlier versions of Enterprise Guide who would like to try out the enhanced features available in Enterprise Guide 4.3. | sas enterprise guide, sas programmer, bar chart, excel, proc step, dataset, sas log, macro variable, work library, temporary dataset | source | 23 |
| 84 | SAS Formats: Effective and Efficient | Harry Droogendyk | SAS formats, whether they be the vanilla variety supplied with the SAS system, or fancy ones you create yourself, will increase your coding and program efficiency. (In)Formats can be used effectively for data conversion, data presentation and data summarization, resulting in efficient, data-driven code that's less work to maintain. Creation and use of user-defined formats, including picture formats, are included in this paper | user-defined format, proc print, date variable, sysdate9, data step, dataset, proc step, format statement, input statement, proc format, put statement, e., numeric variable, excel, proc sql | source | 16 |
| 85 | SAS Macro Dynamics - From Simple Basics to Powerful Invocations | Richard Andrews | The SAS Macro Facility offers a mechanism for expanding and customizing the functionality of the SAS System. It allows for the abbreviation of a large amount of program code conveniently and makes textual substitutions easy. The facility contains a programming language that will enable the execution of small sections of a program or entire steps conditionally. This paper assumes a basic knowledge of the DATA STEP and the use of programming logic and will provide simple to dynamics views of the powerful capabilities of SAS macros. |
macro variable, macro definition, proc sql, call symput, macro call, macro loop, proc step, macro facility, where statement, %if-%then-%else, macro put | source | 6 |
| 86 | SAS Programming Guidelines | Lois Levin | This paper presents a set of programming guidelines and conventions that can be considered in developing code to ensure that it is clear, efficient, transferable and maintainable. These are not hard and fast rules but they are generally accepted good programming practices. These techniques can be used in all types of SAS programs, on all platforms, by beginners and experts alike | macro variable, proc step, error message, keyword parameter, macro parameter, %macro parameters, dataset, autocall macro, macro definition, symbol table, stored macro, if-then-else, options statement, comment | source | 18 |
| 87 | SAS Programming Tips and Techniques | Kirk Paul Lafler | The base-SAS System offers users with a comprehensive DATA STEP programming language, an assortment of powerful PROCs, a macro language that extends the capabilities of the SAS System, and user-friendly interfaces including SAS Display Manager and Enterprise Guide. This presentation explores a collection of proven tips and techniques related to effectively using the SAS System and its many features. Attendees will examine keyboard shortcuts to aid in improved productivity; the use of subroutines and copy libraries to standardize and manage code inventories; data summarization techniques; the application of simple reusable coding techniques using the macro language; troubleshooting and code debugging techniques; along with other topics. |
proc univariate, proc step, options statement, proc sql, dataset, macro facility, macro variable, macro parameter, %macro parameters, sas log, dictionary tables, ods pdf, ods rtf, sas output, if-then-else, ods html, macro definition | source | 15 |
| 88 | Scatter Plots Using PROC SGPLOT for that Thursday Presentation | Scatter Plots, Sharon Matsumoto Hirabayashi |
It always starts with "I have a simple request." This time, it was a request for a scatter plot of two variables by a third variable in a listing. The PROC PLOT was nice, but, could we overlay the plots instead of having a separate plot for each by-group? Could we label the points in the plot with the by-group values? Could we group the points using the categories of another variable, using different symbols and colors to distinguish the groups? Could we add a 45- degree reference line? Could we do this for twelve other plots, maintaining the same legend across all thirteen plots? And, since the presentation is on Thursday, can we have the plots ready by Tuesday? Egads. Thank goodness for SAS online documentation and that our company had migrated to SAS 9.2! This paper details how SAS ODS Graphics, PROC SGPLOT, and the %MODSTYLE macro were used to quickly and painlessly generate not just nice graphics, but really nice graphics for that Thursday presentation. |
proc step, proc sgplot, scatter plot, class variable, output delivery system | source | 15 |
| 89 | Scatterplots: Basics, Enhancements, Problems, and Solutions | Peter L. Flom | The scatterplot is a basic tool for presenting information on two continuous variables. While the basic plot is good in many situations, enhancements can increase its utility. And there are some problems that arise in certain situations as well (e.g. overplotting). | box plot, proc reg | source | 12 |
| 90 | Show Me The Folder | Brandon Barrett, Human Genome |
Within Base SAS , there are a lot of tools and readily accessible information that can assist programmers i n creating flexible and robust programs. In many industries, SAS programmers work on similar tasks across multiple studies or projects. The less changes SAS programs require from one study to the next, the more efficiently programmers can get their work done. Also, the less input a program needs, the less sources of human error there are to be introduced. This paper shows how to convert multiple MS EXCEL spreadsheets into SAS datasets without specifying the folder location or a single file name. We des cribe the SAS code needed for this task, and show how a user can move the program to a different directory location and convert a different set of files to SAS datasets without making any changes to the code |
dataset, proc step, call execute, macro variable, proc import | source | 3 |
| 91 | Smoothing Scaled Score Distributions from a Standardized Test using PROC GENMOD | Jonathan Steinberg, Tim Moses |
The estimation of a scale score distribution for an educational assessment is usually done with respect to a sample of the complete testing population. The scale score range is typically broad enough to allow for a normal distribution of scores to occur within the testing population. However, the frequency distribution of scores obtained from the sample can often appear skewed and can exhibit large sampling fluctuations, particularly if the sample is not completely representative of the entire population. This can have significant implications if test-takers' scores are reported along with the corresponding percentile ranks. A potential solution to this issue is to employ loglinear smoothing of the observed frequency counts. Through this process, important statistical features of the underlying observed data (e.g. mean, variance, and skewness), known as moments, can be preserved using only a small number of parameters while ensuring that the resulting frequency distribution and percentile ranks are smooth and free of sampling fluctuations (Moses & von Davier, 2004). SAS can employ loglinear smoothing using PROC GENMOD where the observed frequency is a function of the score, its square, and its cube. This paper will demonstrate how PROC GENMOD can be used in an applied educational setting to smooth the univariate observed frequency distributions of the three distinct sub-scales for a test within different sub-groups. These transformations allow for the reporting of the resulting percentile ranks in a reliable and meaningful way for the groups of interest. This paper is intended for those with a good working knowledge of loglinear smoothing models and a moderate level of SAS programming experience. |
proc freq, proc genmod, proc step, sample, frequency analysis, by group processing, sample size, proc gplot | source | 7 |
| 92 | Tailoring Logistic Regression Model Analyses with the ODDSRATIO Statement in PROC LOGISTIC | Taylor Lewis | Binary logistic regression is typically preferred when modeling a dichotomous outcome variable. Interpretation can be tricky, however, since parameter estimates of the model are given in terms of log-odds. Exponentiating the log-odds returns an odds ratio, which is somewhat easier to handle. By default, PROC LOGISTIC will output a series of odds ratios for all categorical predictor variables not involved in any interactions. The new ODDSRATIO statement offers the flexibility to tailor odds ratios per the analyst's desired comparisons, even when interactions are specified. In addition to discussing odds ratios for categorical variables, this paper illustrates how the UNITS statement can facilitate customized odds ratios for continuous explanatory variables. |
odds ratio, logistic distribution, proc logistic, logistic regression, proc step, confidence interval, regression analysis, likelihood function, interval variable, maximum likelihood estimation, nominal variable, binary variable, response variable, proc reg, interaction effect, predictor variable | source | 8 |
| 93 | The Last Line | Brandon Barrett, Human Genome |
Summary tables and listings form an integral part of a clinical study report. These reports are created using raw/analysis datasets. An essential practice in the Life Sciences industry is to create/re-create analysis datasets and reports in a sequential order at every extraction of raw data. This rule ensures data consistency. Although, almost all organizations have various checks to safeguard this policy, a simple solution is to reserve the last line (footnote10) of each report to list input datasets and corresponding date-time stamps, along with date-time of report creation. Having this footnote on the report increases the chances of an inconsistency being detected, not only by the programming team but by every other team that is involved in writing and reviewing the clinical study report. It also provides a trail to reviewers in case they are interested in examining the input datasets. The purpose of this paper is to present a technique that will automatically produce the last line of the report with data dependency and the date-time stamps. Additionally, it will list the report name and the program that created the report. | macro variable, in=, macro call, adam dataset, macro definition | source | 5 |
| 94 | The Little Engine That Could: Using LIBNAME Engine Options to Enhance Data Transfers Between SAS and Microsoft Excel Files | William E. Benjamin Jr. | Many people are not aware that the SAS Access for PC Files product will allow SAS Programmers to access an EXCEL spreadsheet in much the same way as any other SAS file. There are of course some restrictions, but there are also a lot of options that help remove some of the bumps in the road. The LIBNAME statement allows the user to define an EXCEL file in SAS terms and gives the programmer access to LIBNAME and data set options to control how the EXCEL file is defined, accessed, and yes even how the data will be formatted. This paper will describe some of those options |
excel, variable, libname statement, sas library, proc sql, proc step, dataset, character variable, libname engine, numeric variable, sysdate9, sas programmer, missing value | source | 10 |
| 95 | The SAS Magical Dictionary Tour | Linda Libeg | There are many instances when a large number of variables in a SAS dataset need to be renamed, ordered, dropped, or just identified. If variable names are not assigned in chronological or positional order, the task of programming these names into your code can be laborious. A simple PROC SQL statement can be used to access the read-only SAS data dictionary tables and save you programming steps. This paper presents numerous ways you can modify a PROC SQL statement that reads the SAS data dictionary tables and produce macro output to be use in later programming steps. So, "Roll-up" to the SAS magical dictionary tour and learn how to extract various characteristics from your SAS dataset. |
proc sql, proc step, macro variable, dictionary tables, dataset, create table, proc freq, character variable, macro definition | source | 12 |
| 96 | Three Easy Ways around Nonexistent or Empty Datasets | Spencer Childress, Brandon L. Welch |
Nothing derails a program quite like a nonexistent dataset. Statistical programmers often merge summary statistics with p-values, but if the data aren't present, the p-value and its dataset won't generate. We present three simple methods in a macro that check the existence of a dataset and return an observation count. The first method combines SAS File I/O code with data from the SASHELP library. The second needs only SAS File I/O code. The third also makes use of SAS File I/O code with PROC SQL. If the existence-check returns false or the observation count returns 0, then the macro creates a dummy dataset with one observation, ready to merge. Regardless of the method, any programmer can tackle those nonexistent datasets. The techniques we present offer a good overview of basic DATA STEP programming and macro processing appropriate for all levels of SAS capability. While this article targets a clinical computing audience, the techniques apply to a broad range of computing scenarios |
data step, macro function, proc sql, macro variable | source | 3 |
| 97 | Time Series Analysis: Separating Overlapping Events | M. Scott Elliott | Analysts working with time series data often need to apply different events to their time series. An example of this problem is in dealing with global demand data, non-related holidays and events need to be separated, especially those that overlap. SAS Forecast Server and the SAS High Performance Forecasting (HPF) language use 'dummy variables' to identify holiday events using one HPFEvents file for a project. A simple solution is to sort the data BY origin country and then use the same BY statement in the PROC TIMESERIES, but what if there are numerous locations per country? This paper describes one solution being implemented at FedEx that uses a macro to generate the HPFEvents file that will be used by the SAS HPF program, handling each country separately. This method can also be used for local holidays and weather events that do not affect the entire time series. |
time series analysis, proc step, time series data, macro variable, binary variable, sample | source | 10 |
| 98 | Tips for Merging SAS/GRAPH Output into Microsoft PowerPoint | Ferrell Drewry | SAS/GRAPH software can be used to quickly produce hundreds of graphs in a variety of display and print formats, but SAS/GRAPH output is not easily integrated into Microsoft PowerPoint presentations. If only a few SAS/GRAPH slides are needed, the manual cut-and-paste method might be sufficient. If several hundred slides are needed, then a more efficient method is needed for inserting the SAS/GRAPH output into PowerPoint. This paper describes a process to merge SAS/GRAPH output into PowerPoint slides in a manner similar to the mail-merge process in Microsoft Word. The techniques presented were used to insert several hundred SAS/GRAPH displays into PowerPoint as backup slides for an FDA advisory committee meeting. Using the advisory committee meeting scenario as a case study, this paper also provides tips for making SAS/GRAPH output blend with the other slides in the PowerPoint presentation and for ensuring high-quality results |
excel, proc step, sample, macro definition, macro loop, proc gplot, dataset, %if-%then-%else | source | 12 |
| 99 | Two Guys On Hash | Paul M. Dorfman | The SAS hash object is no longer new, yet its use is still not widespread. Where it is used, often the strengths and capabilities of the hash object are underutilized. In this workshop we will quickly step through some introductory steps to ensure everyone is 'on the same page'; however, it does assume workshop attendees have some knowledge of the hash object - if not from practical experience, at least from attendance at an introductory workshop. Once we lay some introductory groundwork we will work through some more interesting and challenging examples of the hash object in action. Take a deep breath (but don't inhale) as we start our journey into the world of hash. | hash table, dataset, hash iterator, sas programmer, proc sql, sample, group by, sysrc, variable, proc step, memory usage, data merging, proc means | source | 34 |
| 100 | Use Your Cores! An Introduction to Multi-core Processing with SAS | Erik H. Dilts | Computing power has changed direction over the past few years. In the past, chip manufacturers designed faster and faster processors, but they reached the theoretical limit of that method. This is how the multiple-core processors in today's computers came to be. A multi-core processor is essentially the same as having multiple processors, the difference being they all reside on one chip. SAS 9 can take advantage of these multiple cores in several different ways. This paper will explain how to use multi-core processing to your speed up your programs. In addition it will demonstrate the pros and cons of the various techniques available under Windows, and when to use them. | data step, macro variable | source | 2 |
| 101 | Using Dictionary Tables to Profile SAS Datasets | Phillip Julian | Data profiling is an essential task for data management, data warehousing, and exploring SAS datasets. TDWI (http://tdwi.org) extends the usual definition of data profiling to include data exploration. This paper presents two SAS programs, Data_Explorer and Data_Profiler, that implement the TDWI definition. These SAS programs are low-cost, free solutions for data exploration and data profiling. Data_Explorer searchs for all SAS datasets, and gathers essential dataset and file attributes into a single report. Data_Profiler summarizes the values of any SAS dataset in a generic manner, which eliminates the need for custom SQL queries and custome programs to summarize what a dataset contains. These programs have been used in banking and state government. They should also be useful in the pharmaceutical industry for validating SAS datasets and managing data repositories | dataset, data profiling, proc sql, proc step, macro variable | source | 5 |
| 102 | Using PROC GPLOT and PROC REG Together to Make One Great Graph | William 'Gui' Zupko II | Time series regression is a helpful statistical tool to show relationships between two variables over a period of time. However, many users can find the barrage of numbers at best unhelpful, and at worst, undecipherable. Using the shipments and inventories' historical data from the US Census Bureau's office of Manufacturer's Shipments, Inventories, and Orders (M3), we can create a graphical representation of two time series with PROC GPLOT and map out reported and expected results. By combining this output with results from PROC REG, we are able to highlight problem areas that may need a second look. The resulting graph shows which dates have abnormal relationships between our two variables and presents the data in an easy to use format which even users unfamiliar to SAS can interpret. This graph is ideal for analysts finding problematic areas such as outliers and trend-breakers or for managers to quickly discern complications and the affect they have on overall results. |
proc step, proc reg, proc gplot, macro variable, outlier, regression analysis | source | 14 |
| 103 | Using Recursion for More Convenient Macros | Nathaniel Derby | There are times when a macro needs to alternatively be applied to either one value or a list of values. In this case, adding a recursive definition to a macro can make it easily accommodate both situations. This can be particularly useful for testing and investigative purposes, as explained in this paper. KEYWORDS: SAS, macro, code, recursion. This paper is an excerpt from Derby (2010), which may be updated and can be downloaded for more information | macro definition, proc sql, macro variable, %if-%then-%else | source | 5 |
| 104 | Using SAS GTL to Visualize Your Data when there is Too Much of it to Visualize | Perry Watts, >>>> |
In many of the SAS Institute publications about the new ODS statistical graphics, there is an introductory statement that defines an "effective" graph as one that reveals "patterns, differences and uncertainty that are not readily apparent in tabular output" (Kuhfeld, 2010; Rodriguez, 2008; Rodriguez and Cartier, 2009). Good graphs are also said to "provoke questions that stimulate deeper investigation, and ... add visual clarity and rich content to reports and presentations." Developing a good graph becomes a challenge, however, when input data map to crowded displays with overlapping points or lines. Such is the case with the Framingham Heart Study of 5209 subjects captured in the sashelp.heart data set and a series of 100 cumulative booking curves for the airline industry. In addition, interleaving time series plots can be difficult to interpret, and patterns can be missed when lattice plot panels are charted out-of-order. In the paper, transparency, layering, data point rounding, median calculation, and color coding are among the techniques that are evaluated for their effectiveness to add visual clarity to graphics output. The following Graph Template Language (GTL) statements are referenced in the paper: ENTRY, HISTOGRAM, SCATTERPLOT, LINEPARM, REFERENCELINE, BANDPLOT, and SERIESPLOT plus layouts OVERLAY, DATAPANEL, LATTICE, and GRIDDED. GTL is chosen over SG PROCEDURES because of its greater graphics capability. |
scatter plot, proc step, histogram, series plot, time series analysis, proc template, proc freq, contour plot, order by, missing value, graph template language, proc sgpanel, proc means, nominal variable, cumulative frequency, line chart, numeric variable | source | 22 |
| 105 | Using SAS GTL to Visualize Your Data when there is Too Much of it to Visualize | Perry Watts, >>>> |
In many of the SAS Institute publications about the new ODS statistical graphics, there is an introductory statement that defines an "effective" graph as one that reveals "patterns, differences and uncertainty that are not readily apparent in tabular output" (Kuhfeld, 2010; Rodriguez, 2008; Rodriguez and Cartier, 2009). Good graphs are also said to "provoke questions that stimulate deeper investigation, and ... add visual clarity and rich content to reports and presentations." Developing a good graph becomes a challenge, however, when input data map to crowded displays with overlapping points or lines. Such is the case with the Framingham Heart Study of 5209 subjects captured in the sashelp.heart data set and a series of 100 cumulative booking curves for the airline industry. In addition, interleaving time series plots can be difficult to interpret, and patterns can be missed when lattice plot panels are charted out-of-order. In the paper, transparency, layering, data point rounding, median calculation, and color coding are among the techniques that are evaluated for their effectiveness to add visual clarity to graphics output. The following Graph Template Language (GTL) statements are referenced in the paper: ENTRY, HISTOGRAM, SCATTERPLOT, LINEPARM, REFERENCELINE, BANDPLOT, and SERIESPLOT plus layouts OVERLAY, DATAPANEL, LATTICE, and GRIDDED. GTL is chosen over SG PROCEDURES because of its greater graphics capability. |
scatter plot, proc step, histogram, series plot, time series analysis, proc template, proc freq, contour plot, order by, missing value, graph template language, proc sgpanel, proc means, nominal variable, cumulative frequency, line chart, numeric variable | source | 22 |
| 106 | Using SAS to Create Custom Healthcare Graphics | Barbara B. Okerson | SAS graphics products can be used to create and deliver high-impact visuals, both as presentation-ready graphics and as data exploration displays. Using these graphics, users can explore, examine, and present data in an understandable manner while distributing their findings in a variety of formats to decision makers who can gain a quick, visual understanding of critical issues. Although SAS provides many ready-to-use graphics and graphic formats through SAS/GRAPH software and Output Delivery System (ODS) graphics, sometimes other graphics displays are needed. SAS provides the tools to create almost any desired graphic. This paper shows how SAS can be used to create graphics that are not directly available. Examples are from the healthcare industry. Results included in this paper were created with SAS 9.1.3 or SAS 9.2 on a Windows XP platform, using Base SAS, SAS/STAT software, and SAS/GRAPH. SAS 9.1 or later is required for ODS graphics extensions |
waterfall chart, bubble plot, proc sgplot, proc step, proc gplot | source | 11 |
| 107 | Using SAS to Ease the Proofing of Messy Text | Nat H. Wooding Jr. | The SAS Global Users Group has had a recent initiative to scan and OCR the older paper proceedings from the SAS User's Group International (SUGI) conference (SAS.One to SUGI 21) and make these available in machine readable form on sasCommunity.org. These are now available for SAS Users. Part of this project involved digitizing the attendance lists for use for future planning and analysis for the SAS Global Forum. The proofing of these lists proved to be a challenge due to misinterpretations in the optical character recognition process. The misinterpretations were due both to very minor printing variations in the text as well as the difficulty that the OCR software had in recognizing seeming clearly printed text. As an example, lower case ells were often rendered as upper case "I"s so that the name Bill was seen as BiII or Bi II. Methods used in recognizing misspellings included viewing the text with MicroSoft Word so that the spell check would flag problems and also SAS routines were written that pointed out some generic types of errors such as misspelled state names. This paper will provide a overview of the entire process and specifically detail the SAS routines which were used to get the data ready for analysis. | proc step, dataset, txt, if-then-else | source | 8 |
| 108 | Using SAS to Examine Aging Expectation (ERA-38) for Older Adults | Abbas S. Tavakoli, Julie Freelove-Charton |
Background: Our population is getting older every day. The numbers of older adults (aged 65 years or older) will increase to 72 million by 2030 [CDC &MCF 2007]. Participation in healthy aging behaviors, such as physical activity and a healthful diet, is one of the few known ways to prevent the onset of chronic disease and stem the rising costs of health care. Objectives: To test a multidimensional aging-expectation scale for older adults. Method: This exploratory correlation study used a cross-sectional survey design. Participants were 459 older adults (65 or older) from the Greater Columbia metropolitan area of South Carolina. The 38-item Expectations Regarding Aging (ERA-38) survey was used to measure aging-expectations (Sarkisian, Hays, & Mangione, 2002). Instrument testing consisted of a series of factor analysis procedures including maximum likelihood, using squared multiple correlation and Promax rotation. Reliability was assessed using coefficient alpha estimates. Multiple imputations (MI) were used to replace the missing data for item. Results: The missing data for the 38 items ranges from 1-30. MI method used to replace the missing value for each item. Thirty-eight items loaded on three factors of ageing expectation. The weighted variance explained by each factor was: 1) aging process (35%), 2) being isolated (33%), and 3) physical function (31%), for a total of 99% explained variance for all three factors. Factor loadings ranged from 0.32 to 0.75. Coefficient alpha estimates were 0.87 - 0.92 across the three subscales and 0.95 for the total scale. Examination of Pearson's correlation indicated each subscale was positively correlated with every other subscale and the total scale. The range of the Pearson's correlation coefficients were from 0.60 to 0.89. Conclusion: Factor analysis showed three factor for aging- expectation (ERA-38) and excellent reliability for total scales and subscales. | correlation, imputation, factor analysis, multiple imputation, factor loading, missing value, maximum likelihood estimation, promax rotation, r-squared, likelihood function | source | 8 |
| 109 | Using SAS to Report Data in XML Format | Qin Wang | XML (Extensible Markup Language) has become increasingly important as a required format for data reporting because of its textual nature and Unicode support. However, converting data into XML format is quite challenging for many data analysts. We are familiar with data in rectangular row and column format created via programs such as EXCEL, SQL, or SAS. Converting a big sum of data from the row and column structure to a hierarchical or tree structure which XML accepts can be difficult conceptually and technologically to us. In addition, XML reporting often comes with very strict format requirements for data elements. This paper introduces methods to use SAS software (SAS8.2 or SAS 9.1 on Windows@ platform) to perform the following tasks. 1. Use put command to write an output data file in XML format; 2. Use WHERE statement and VERIFY, SUBSTR, RXPARSE, RXCHANGE functions to scan data elements and make necessary corrections |
excel, verify | source | 7 |
| 110 | Using SAS to Streamline Periodic Reporting of Summary Statistics: Proc Format, Proc Freq, Proc Means,and Output Delivery System | Berwyn Gonzalvo | With the need to analyze and report survey results periodically, SAS can be used to streamline and record the steps, from formatting to performing statistics to producing report-ready summary statistics of survey data. This paper shows how to extract and format raw survey data from EXCEL, produce the means for each of the participating organizations, and report using the Output Delivery System. By saving the steps and procedures used in producing the summary statistics report, not only is the process streamlined in each iteration but the statistics are also produced in a consistent manner allowing for reliable comparability in the trend analyses of the sequence of data points |
proc step, output delivery system, proc format, raw data, proc means, missing value, excel | source | 2 |
| 111 | Using SAS Variable Lists Effectively | Howard L. Schreier | "SAS variable lists" are a SAS language feature which provides shortcuts for declaring and referencing variables. Instead of enumerating the variables, SAS variable lists allow the specification of rules to implicitly generate the needed variable names. The feature is useful, but there are nuances and non-intuitive aspects to be considered. This paper outlines the capabilities of SAS variable lists, then goes on to consider issues including timing (compilation vs. execution), differences between DATA STEP and PROC STEP usage, variable ordering, behavior of numeric suffixes, use of SAS variable lists in function calls, and contexts which do not support SAS variable lists. |
variable list, variable, put statement, numbered range list, name range list, proc step, pdv, proc print, array, character variable, input statement, numeric variable, proc contents, automatic variable, pointer control, select, proc sql, character functions | source | 20 |
| 112 | Wandering Cross-Reference Lines in PROC GPLOT | Sharon Avrunin-Becker, Marie Byrd Alexander |
PROC GPLOT is an interesting and somewhat mysterious SAS procedure. New users of PROC GPLOT often find the procedure useful in producing simple graphs, but find it intimidating when trying to enhance and guide the visual interpretation of the graph. One type of plot involves the use of vertical and/or horizontal reference lines to emphasize the plotted points on the graph. Usually, when the horizontal (HREF) and vertical (VREF) reference lines are defined in the PLOT statement, a specific number is referenced to create the lines (e.g. HREF=10). What do you do if you have a graph where you want to have horizontal, vertical, or both, reference lines placed dependant on the data itself? This paper will demonstrate how to turn your reference lines parameters into macro variables and how to call the same PROC GPLOT routine to create unique and individualized graphs for each subject. When we show you the results for 8 sample graphs, you will be able to see the reference lines actually "moving" based on the data. |
proc gplot, proc step, call symput, do loop, proc sort | source | 8 |
| 113 | Why the Bell Tolls 108 times? Stepping Through Time with SAS | Peter W. Eberhardt, Yunbo Sun |
For many SAS programmers, new or even advanced, the use of SAS date and DATETIME variables is often very confusing. This paper addresses the problems that the most of programmers have. It starts by looking at the basic underlying difference between the data representation and the visual representation of date, DATETIME and time variables. From there it discusses how to change data representations into visual representations through the use of SAS formats. Since date manipulation is core to many business process, paper also discusses date arithmetic first by demonstrating the use of simple arithmetic to increment dates; then by moving on to SAS functions which create, extract and manipulate SAS date and DATETIME variables. Finally, paper demonstrates the use of the %sysfunc macro function and the %LET statement to present date, DATETIME and time variables. This paper is introductory and focuses on new SAS programmers, however, some advanced topics also covered |
sysdate9, date variable, datetime variable, time variable, macro variable, datetime, sas programmer, sas function, time, proc sql, character variable, relational database, format statement, macro function | source | 15 |
| 114 | Windows PowerShell Commands and Scripts for SAS Programmers | Adeline J. Wilcox | With Windows PowerShell, power users can gain at least some of the productivity at the hands of UNIX/Linux/Mac OS X command-line programmers. While PowerShell is designed for system administrators, SAS programmers, particularly those with command line experience, can work more productively by learning even a few PowerShell commands. I will give examples of both commands and scripts. Among commands that can be quickly executed without reaching for the mouse, I will show how to move groups of similarly named files from one folder or server to another and use the select-string cmdlet, similar to the UNIX grep command, to find all SAS programs within a folder that contain a SAS data set name of interest. I will describe the PowerShell script I wrote to create a file containing names of all specifications documents stored within a directory tree. Another script will show how a SAS program may be executed iteratively by passing environment variable values assigned within the PowerShell script to the SAS program. Object-oriented, PowerShell is hard to learn. But if you learn even a couple of commands, you'll be a more powerful computer user. | macro variable, dataset | source | 4 |
This site serves as a convenient hosting location and does not work as a publisher. All copyrights belong to their respective owners.
The information on this site is provided for general reference purposes only. Whilst every effort is made to ensure that the site is up to date and accurate, no warrant, nor any responsibility or liability for, the accuracy or completeness of the content or for any loss which may arise from reliance on information contained in this site is provided. Links to other sites are provided for your convenience but no responsibility or liability for the content of those sites or of any external site which links to this site is accepted. References to any specific commercial product, process, service, or corporation are also for information only, and do not constitute endorsement, recommendation or favoring.
SAS is a registered trademark of SAS Institute Inc. SAS, Statistical Analysis System, and all other SAS Institute Inc. product or service names are registered trademarks or trademarks of SAS Institute Inc. in the USA and other countries. ® indicates USA registration.
HOME
QUICK SEARCH
AUTHORS
KEYWORDS
HELP
BUGS