SESUG 2009 Papers - Index
99 papers. Source: SESUG (SouthEast SAS Users Group) conference proceedings.
| # | Title× | Authors× | Abstract× | Keywords× | Extras | Pages |
|---|---|---|---|---|---|---|
| 1 | A Hands-on Tour Inside the World of PROC SQL | Kirk Paul Lafler | Structured Query Language (PROC SQL) is a database language found in the Base SAS software. It enable s access to data stored in SAS data sets or tables us ing a powerful assortment of statements, clauses, o ptions, functions, and other language features. This paper presents core concepts of this powerful language as well as its many applications and is intended for SAS users who desire an overview of the capabilities of this exciting procedure. Attendees will explore the construction of simple S QL queries, ordering and grouping data, the applica tion of case logic for data reclassification, the creation and use of views, and the construction of simple inner and outer joins |
proc sql, proc step, dictionary tables, where statement, select, inner join, macro variable, sas library, macro facility, view, sas log, create table, group by, macro call, order by, right join | source | 17 |
| 2 | A Little Stats Won't Hurt You | Nathaniel Derby | This paper gives an introduction to some basic but critically important concepts of statistics and data analysis for the SAS programmer who pulls or manipulates data, but who might not understand what goes into a proper data analysis. We first introduce some basic ideas of descriptive statistics for one-variable data, and then expand those ideas into many variables. We then introduce the idea of statistical significance, and then conclude with how all these ideas can be used to answer questions about the data. Examples and SAS code are provided. KEYWORDS: Descriptive statistics, Statistical significance, SAS. All SAS code used in this paper is downloadable fromhttp://nderby.org/docs/RUG09-IntroStats.sas | proc step, sample, histogram, proc univariate, outlier, box plot, bubble plot, data science, proc calis, proc freq | source | 18 |
| 3 | A Logistic Regression Model to Predict Freshmen Enrollments | Vijayalakshmi Sampath, Andrew Flagel |
Predictive modeling is the technique of using histo rical information on a certain attribute or event t o identify patterns which will assist in predicting a future value of the same with a certain probabilit y attached to it. Its application is invaluable in t he field of social sciences, particularly in an aca demic setting to study patterns in enrollment in higher e ducational institutions. This paper presents the st eps involved in developing a Logistic Regression model based on student test scores, performance at High Schools, and other demographics to predict whether or not a student will eventually enroll if admitted. It may be noted, however, that this model cannot be stand alone and only serves to compliment university administrators' decision making process to manage enrollments effectively. The power of SAS in analyzing data patterns and developing such models is also demonstrated where appropriate and relevant portions of SAS code are included where possible | logistic regression, logistic distribution, likelihood function, regression analysis, estimate, goodness of fit, roc curve, interaction effect, backward selection, maximum likelihood estimation, odds ratio, proc step, main effect | source | 12 |
| 4 | A Macro for Computing the Mantel-Fleisś Criterion | Brandon L. Welch, Jane Eslinger, Robert F. Woolson |
When using chi-square statistics to evaluate the relationship between two dichotomous variables, the test statistics approach the chi-square distribution as the sample size increases. In practice, the validity of the chi-square approximation depends on the expected cell counts exceeding five. For examining three-way tables using the Cochran-Mantel-Haenszel (CMH) statistic, the same rule does not apply. Mantel and Fleisś (1980) proposed an extension to the "minimum of five' rule for 2 x 2 x H tables. We propose a user-friendly macro to supplement an analysis that uses the CMH one-degree-of-freedom test. The macro outputs all calculated components of the criterion to a SAS data set and accompanying log | numeric functions, proc step, proc freq, chi-square distribution, sample | source | 9 |
| 5 | A Macro to Unravel Macros | Sarah Woodruff | Do you find it tedious to pinpoint problems in your macro code? Are you annoyed when the log points to the line number of the macro call rather than the code in the macro that generated the error? Would you like a little help? You want to produce macros that are utilitarian black boxes, but you need to understand what the code is actually doing as part of the development process, and that can be frustrating. This paper presents a simple wrapper macro that is used to enclose existing code, which can call any number of other macros. When you use this technique along with the mPrint and mFile options, the output file produced by mPrint/mFile contains a completely "de-macroed" version of the program. You can then examine this output as a working program, thus making it easier to both understand and edit. Keywords: macro, mPrint, mFile, debugging | macro variable, cpu time, where statement, options statement | source | 8 |
| 6 | A Modular Approach to Develop Complex Data Errors Checking Program in Clinical Trial Environment | Mirjana Stojanovic, Laura E. Archer |
This paper describes a modular approach to developing a complex data error checking program. A module is a collection of functions that perform re lated tasks. We use a series of SAS macros to develop each module. SAS macros are used intensively because they reduc e code volume and improve program reliability and readability. SAS programs generated from SAS macros are dynamic and flexible. In this way the application of the program is much more flexible than in the traditional design as one monolith program. Our program works for many studies with no intervention into program code. In implementation of these checks, we have developed and use a specification file in which the user indicates the modules, and specific errors within the modules, to be performed. Then, where necessary, the user will provi de addition information within the specification file regarding the tables and variables to be used in perfo rming the checks | macro definition, best response, data cleaning, master data management, adverse events, macro variable | source | 7 |
| 7 | A Monte Carlo Study to Evaluate the Robust Standard Error Feature in the PHREG procedure | Ji Li, Xu Zhang |
Cox proportional hazards model is the most commonly used regression model to analyze survival data. The regression parameters in a Cox model can be estimated by maximizing the partial likelihood (Cox 1972, 1975). When the association is presented in the data due to matching design, recurrent events or multiple types of failure, the marginal approach can be used to adjust for association. In this approach, a robust estimator of variance-covariance for the estimated regression parameters is developed. The robust estimator has been implemented as a new feature in the PHREG procedure in SAS version 9. In this study, we employ the new feature of the PHREG procedure to conduct a simulation study. The aim of the study is to investigate the performance of the robust estimator with various degrees of association |
confidence interval, proc phreg, robust estimator, regression analysis, frailty model, proc calis, hazard function, covariance, likelihood function | source | 7 |
| 8 | A New Effect Modification P Value Test Demonstrated | Manojkumar B Agravat | Effect modification P value is a method to determine if there is a condition called homogeneous odds ratio which if present, interaction is possible and must be analyzed. Currently the PROC FREQ CMH SAS command is used to test for whether the odds ratio is homogeneous for large sample sizes with fixed effects. One of the tests currently used is the Breslow -Day test in the PROC FREQ CMH test (SAS). If the P value < alpha, for the new Method, you reject the null and say the condition of homogeneous odds ratio is rejected, and that there is effect modification. The Breslow-Day test used is meant for large sample sizes, linear relationship, and fixed effects. The new Method can be used for large or small sample sizes, meant for random variables with a non- normal distribution, and includes a chi-square test of independence, as well as a test for large sampling approximation from P values of LRT, Score, and Wald tests, and the Durbin Watson statistic test for autocorrelation |
p-value, sample size, sample, proc calis, odds ratio, proc mixed, fixed effects, proc step, auc, normal distribution, proc freq, proc logistic, logistic distribution, predictor variable, roc curve, durbin-watson, null hypothesis, correlation, regression analysis, proc univariate | source | 14 |
| 9 | A Real Case Use of the Data Step Debugger | Diane Cunningham | If your code has syntax errors, SAS can be very useful in finding the problem. The SAS log produces many helpful notes to assist you. What if your code is technically sound, but is not producing the expected results? The DATA STEP Debugger is a nice interactive way to watch what's going on in the DATA STEP. This paper will describe how the DATA STEP Debugger helped to uncover the flaw in the program logic |
conditional do loop, sas log | source | 6 |
| 10 | A SAS Macro for Deming Regression | Allison M. Deal, Virginia W. Pate, Soumaya El Rouby |
In method-comparison studies, regression analysis is often used to estimate the systematic difference between measurements from two different methods1. Ordinary linear regression should only be used if the measurements from one of the methods are without random error, which rarely occurs. The Deming method of regression analysis, which accounts for measurement error in both methods, is often more appropriate, and is requested by the U.S. Food and Drug Administration (FDA) in medical device submissions. Though PROC NLP and CALIS in SAS can accommodate Deming regression models, these procedures are not widely used, and may not be easily understood by many applied statisticians. This paper will present a macro that uses multiple DATA steps and PROC MEANS statements to calculate the slope and intercept of the Deming regression line |
regression analysis, confidence interval, proc step, proc calis, proc means, in= | source | 7 |
| 11 | A SAS Macro to Automate the Process of Define.xml | Wenyu Hu, Liping Zhang |
When submitting CDISC SDTM formatted data to the FDA, the data definition file define.xml, which describes the structure and contents of the data, is a mandatory deliverable. This file is also called the electronic case report tabulation data definitions (eCRT DD) and consists of the following sections: Data Metadata, Variable Value Level Metadata and Controlled Terminology/Code Lists. Since much of the metadata required for define.xml are already inherent in the datasets themselves, it is desirable to automate the process of creating define.xml. This paper provides a SAS-based method to create Variable Value Level Metadata and Controlled Terminology/Code Lists with the help of in-house macros and SASHELP data dictionary views | controlled terminology, dictionary tables, excel, libname statement, macro definition, macro variable, cdisc | source | 5 |
| 12 | A Serious Look Macro Quoting | H. Ian Whitlock | You can make decisions macro with %IF and do looping with %DO-loops. But there are times when you don't understand why the beast does what it does. Now what? It is time to come to this presentation. It is time to take a serious look at macro quoting. I have often said that anyone who thinks macro quoting is simple, probably doesn't understand the problem; so I have been there. Now I want to explain how simple it is. Everything relevant to this paper is in BASE SAS. Although the examples have been executed on a PC under Windows, the examples are independent of any particular operating system with the exception of file definitions. You might think this paper is a compendium of all the macro quoting functions. It is not. It is more about the subject of macro quoting than about the macro quoting functions | macro facility, macro variable, macro quoting function, macro put, macro function, &variable, put statement, filename statement, macro definition, macro call, %if-%then-%else | source | 13 |
| 13 | A Simple SAS Utility to Dynamically Create Variable Names and Recode the Associated Values | Chuchun Chien, Wafa Handley, Barbara Felts, Yun Mai |
With the advent of Computer Assisted Interviewing (CAI) as a primary venue for survey data collection, most commercially available CAI software provides developers with utilities or Application Programming Interface (API) tools. Developers use these tools to produce a SAS data structure document which contains a list of SAS compliant variable names and data types for the collected data. In order to facilitate data analysis for some of the data items collected in a CAI survey, such as "Answer All That Apply" responses, and to store and therefore preserve the original data input during data collection, we have developed a simple but versatile utility. This utility uses the list of SAS variable names and their data types to dynamically create variable names that are analogous to the original list of variables | length statement, txt, macro variable | source | 6 |
| 14 | A System To Standardize Creating Files Using Visual Basic 6.0 and SAS Automation | Mila Chiflikyan, Nick Kinsey, Jean Richardson, Donna Medeiros |
txt, sas log, macro loop, %if-%then-%else, excel, proc step, macro definition | source | 11 | |
| 15 | A User-Friendly Macro for Last Observation Carried Forward | Tse-Hua J. Shih | When dealing with longitudinal data, biostatisticians frequently perform Last Observation Carried Forward (LOCF) before analyses. This paper provides a macro that instantly prepares LOCF for one or multiple variables. To use this macro, a user simply specifies number of visits and names of variables that needs LOCF. The current paper also provides alternative codes for different types of LOCF | macro definition, longitudinal data, last observation carried forward | source | 6 |
| 16 | Adapt to Change of Table Numbers in Deliverable with One Click | Tse-Hua J. Shih | In pharmaceutical industry, a Contract Research Organization (CRO) employs numerous programmers to work on individual tables that will eventually be concatenated into a master file of deliverable. In order to generate tables with table numbers in order, a Lead Programmer needs maintain a list of table numbers along with names of their source programs and thus specifies each SAS program name correctly in a batch run. Table numbers most likely do not match with names of their source programs, because people often name SAS programs after various modules or programmers' IDs. Therefore, manually preparing for the sequential order of program names to be run in a batch is time-consuming. Utilizing introduction comments at the beginning of each program, the current paper introduces a macro that adaptively runs a batch job with correct sequence of table numbers | artificial intelligence, batch job | source | 6 |
| 17 | Advanced PROC REPORT: Getting Your Tables Connected Using Links | Arthur L. Carpenter | Gone are the days of strictly paper reports. Increasingly we are being asked to render our tables and reports using a variety of electronic file types that can be browsed and read using our computers. Besides the cost savings associated with the purchase of paper, paperless reports also minimize the costs associated with the printing and distribution of the reports. Another, often overlooked and potentially more important, side benefit of the paperless report is the increased availability of linked graphs, reports and tables. Navigation of the paper report is dependent on the table of contents, a strong index, and visual aids such as captions and footnotes; however in paperless reports we can easily jump from one table to its supporting and dependent tables with the click of a mouse. Easily, that is, if we have created the necessary links | proc report, proc step, output delivery system, macro variable, macro loop, do loop, macro facility, footnote statement, ods pdf, macro definition, proc sql | source | 21 |
| 18 | Advanced Topics in ODS | Lauren E. Haworth | This presentation will be a whirlwind tour of some of the most useful advanced techniques in ODS. Topics covered include: Tip sheets on new features inline formatting, RTF features: enhanced page numbers, hyperlinks, text, tables of contents, and RTF control words PDF features: bookmarks, enhanc ed page numbers, hyperlinks, text |
proc step, ods pdf, ods rtf, footnote statement, options statement, title statement, proc format, proc print, sas base, ods html, anova, proc tabulate | source | 20 |
| 19 | An Approach to Creating Archives That Minimizes Storage Requirements | Ruben Chiflikyan | Many research studies use datasets that are available and processed on a regular basis such as daily, weekly, or monthly. They also require the capability to recreate analyses and reports based on datasets for a certain date or date range, thus requiring that all datasets be archived over time. Often the datasets are stored on labeled external media, and the data manually retrieved and loaded from these media when needed. When stored in this manner, these archives can grow to be hundreds of gigabytes. This approach is workable, but is subject to loss of data should the media be misplaced or deteriorates over time, and it takes time to locate, retrieve, and load the desired datasets. Some studies have data values that vary ver y little from dataset to dataset | macro variable, proc sql, proc step, sysdate9, cpu time | source | 9 |
| 20 | An Easy and Convenient Method for Constructing Contrasts | Robert Vogel | In many experiment design and observational study settings the researcher is not interested in the omnibus tests of hypotheses for "main effects" or "interaction effects." When confronted with this situation, SAS software provides an easy and convenient way to test the "testable" hypotheses of interest via the CONTRAST and ESTIMATE statements. This paper will demonstrate an easy way to construct interpretable and testable hypotheses | anova, interaction effect | source | 5 |
| 21 | Are Differences in Marital Status an Important Factor for KAP Related to HIV/AIDS in Saoner Rural Area? | Amit Kamdi, Vikram Shad, Jitesh K Kar, Kishorbhai J Gangani, Arun Humne |
proc freq, sample size | source | 1 | |
| 22 | Automating Distribution of Formatted Reports Using Base SAS | Tracy DeCanio, John Blackwell |
macro variable, macro definition | source | 5 | |
| 23 | Boot Camp for Programmers: Stuff You Need to Know That's Not in the Manual - Best Practices to Help Us Achieve Reproducibility | Elizabeth Axelrod | Imagine that you completed a research project a year ago, and now your clients are challenging the results. They doubt your numbers, and they want to know how you came to your conclusions. Could you retrace your steps and reproduce your results? Could you describe what you did and why you made those decisions along the way? Could you find the data or the programs that you wrote? With the passage of time, it becomes more and more difficult to recall or recover the process, data, or results of a project. As programmers, we're tempted to head straight for the keyboard, and start writing code. But first some basic training is in order. This paper is geared for programmers and programmer wannabes, focusing on specific guidelines, best practices, and techniques which can help us ensure the reproducibility or our results, and in doing so, improve the quality of our work | dataset, raw data | source | 7 |
| 24 | Building Effective Statistical Programming Teams for Clinical Trials | Dawn Edgerton | In resourcing a team of statistical programmers for a clinical trial, management must consider many aspects. The dimensions to be considered are experience with the client, knowledge of therapeutic area, complexity of study, scope of deliverables, timeline, programming skill set, and availability of each team member. These dimensions must be ranked and project risks must be identified. This paper explores resourcing considerations and well as methods of team communication to keep the project on target with meeting milestones | adam dataset, clinical programming, adverse events, data cleaning | source | 4 |
| 25 | Constructing Baseline of Customer's Hourly Electric Usage in SAS | Yuqing Xiao, Bob Bolen, Diane Cunningham, Jiaying Xu |
"PowerRewards" is a pilot program offered by theGeorgia Power Company in 2008 in an effort to reduce residential customer usages during summer peak hours. As load analysts, we were challenged to construct models for estimating baseline electric usages for a group of residential customers on a series of events defined by the Georgia Power company. This paper briefly describes the background of the program, process flow during the pilot, analytical method used, some SAS codein the final product and shadow models developed after the pilot | regression analysis, usage data, degrees of freedom, proc step, proc reg, scatter plot, outlier | source | 7 |
| 26 | Cool Maps with Custom Area | Devi Sekar | SAS/GRAPH software provides map coordinates for US state and c ounty boundaries and also for several other countries. What if I want to draw my own region boundaries on the US m ap other than the state or city boundaries that SAS/GRAPH provides ? To b e able to work with SAS/GRAPH, I needed my region boundary coordinates in SAS traditional map datasets. How to create these map coordinate datasets? This paper has the ans wers! This paper walks you through the entire process from ground up - starting with converting non readable SAS map coordinates to generating wonderful drill do wn maps. This paper assumes working knowledge of SAS/GRAPH and ODS |
sample, proc gmap | source | 12 |
| 27 | Cr8_In_List - Easy Table Driven Programming | Steve Sanders | We all use the "IN" logical operator in "IF" and "WHERE" conditions, but what a maintenance problem it can create when the lists of comparison values need to be changed within a library of SAS programs. What if you could get the benefit of a subquery within DATA STEP language? Cr8_In_List is a macro that allows you to do this by creating the "IN" operator's comparison list based on data in other SAS data sets and lookup tables |
lookup, macro variable, symbol table | source | 4 |
| 28 | Customer Retention Predictive Modeling in HealthCare Insurance Industry | Jin Su, Kimberly Cooper, Tina Robinson, Brad Jordan |
Current economic volatility has increased the need in industries with limited resources to identify new opportunities to retain its current customer base. Customer retention is one of the key factor s to sustain business growth. Developing retention models assist the company by identifying ke y drivers for increasing retention and focusing the communication to the "right" customers. This paper addresse d the difficulties facing the healthcare industry in constructing a time-series data mart and developed a retent ion predictive model that can derive retention scores for each customer. Top factors affecting retention were ident ified through the modeling pr ocess; and some of their applications were discussed in this paper | data mining, nominal variable, customer retention, data cleaning, response variable, regression analysis, logistic regression, data science, missing value, logistic distribution | source | 8 |
| 29 | DATA Step versus PROC SQL Programming Techniques | Kirk Paul Lafler | Are you considering whether to use a DATA STEP or P ROC SQL step in your next project? This presentatio n explores the similarities and differences between DATA STEP and PROC SQL programming techniques. Topics include IF- THEN-ELSE, SELECT-WHEN, and PROC SQL CASE expressio ns conditional logic concepts and constructs; and the techniques for constructing effective merges an d joins. Attendees explore examples that contrast D ATA step versus PROC SQL programming techniques to conduct c onditional logic scenarios, one-to-one match-merges and match-joins, and an assortment of inner and outer join programming constructs |
proc sql, if-then-else, proc step, inner join, character variable, missing value, create table, right join | source | 14 |
| 30 | Daunting Tasks Made Simple with Input Techniques and Macro Processing | Denise A. Kruse | Transferring SAS data sets from a PC to a UNIX server should not be a difficult task. However, preserving the PC directory path to create an identical path on the UNIX server adds an element of difficulty to the task. When faced with unknown quantities of directories and data sets, it is best to leave the work to SAS. The SAS tools which save the day in this scenario are the character pointer technique for parsing a file, in combination with, relative column pointer control and several SAS functions. Macro processing and do loops allow automation to create new UNIX directories | dataset, macro variable, &variable, sas function, variable, txt | source | 8 |
| 31 | Developing Business Failure Prediction Models Using SAS Software | Oki Kim | The credit crisis of 2008 has changed the climate i n the investment and finance industry. The importan ce of developing accurate business failure prediction mod els has become more evident now than at any other t ime in recent history. Using various statistical technique s, business failure prediction models attempt to es timate the bankruptcy probability of a firm using a set of cov ariates. One powerful method is survival analysis. This paper applies two survival analysis techniques in develop ing business failure prediction models using SAS s ystem's PROC LIFETEST and PROC PHREG. Results are presented using data from publicly traded firms covering the first five quarters of the current recession. Through the work presented in this paper, the reader will lear n how to estimate the survivor and hazard functions, to fit the Cox p roportional hazard model, and to draw meaningful st atistical inferences |
proc step, hazard ratio, likelihood function, proc phreg, hazard function, regression analysis, null hypothesis, backward selection, proportional hazards assumption, confidence interval, survival analysis, stepwise selection, logistic distribution, censoring, rank test, response variable, correlation, proc sql, logistic regression | source | 10 |
| 32 | Don't Be a SAS Dinosaur: Modernizing Programs with Base SAS 9.2 Enhancements | Warren Repole Jr. | New features of the SAS programming language often permit the replacement of complex algorithms and clunky workarounds with more elegant code. Some enhancements support the creation of more efficient solutions. Whether you are a SAS programmer with many years of experience or a novice user who is responsible for maintaining legacy programs, implementing updated approaches can allow you to streamline your SAS applications, expedite the development and debugging process, and minimize future maintenance of the code | options statement, proc step, proc print, sas log, set statement, sas base, findw, %if-%then-%else, if-then-else, macro facility, macro definition | source | 11 |
| 33 | Enrollment Simulation in Clinical Trials | Venita DePuy | Enrollment predictions for clinical trials are often as simple as estimating A subjects per site per month x B sites x C months = D target enrollment. This prediction does not model the uncertainty of the estimated enrollment duration. The commonly used method provides an exact number, but in reality, while we may average a certain number of subjects per month, we are likely to see some variability in enrollment. In addition, this method does not incorporate possible enrollment delays, such as delaying enrollment between each subject due to dose toxicity concerns. We propose a simulation method to allow for the creation of estimated enrollment durations with associated confidence intervals, while also allowing for optional delays in recruitment. This method simulates exponentially distributed times to subject enrollment. In addition, this approach also allows us to take into consideration variables such as start-up times or enrollment holds due to data monitoring committee meetings | confidence interval, clinical trial | source | 4 |
| 34 | Estimation of Coefficients of Individual Agreement (CIAs) for Quantitative and Binary Data using SAS and R | Yi Pan, Jingjing Gao, Michael Haber |
The coefficients of individual agreement (CIA's), which are based on the ratio of the intra- and inter-observer disagreement, provide a general approach for evaluating agreement between two fixed methods of measurements or human observers. In this paper, a macro is presented for computation of the CIA's between two observers with quantitative or binary measurements. The macro is available in both SAS and R. A detailed illustration of the computations, macro variable definition, input and output for the SAS and R programs are also included in the text. The macro provides estimation of CIA's, their standard errors as well as confidence intervals, for the cases with or without a reference method. Data from a carotid stenosis screening study is used as an example of continuous measurement. Data from a study involving the evaluation of mammograms by ten radiologists is used to illustrate a binary data example | confidence interval, proc calis, between-subject variability, correlation | source | 10 |
| 35 | Exchanging data between SAS and Microsoft Excel | Yuqing Xiao | Transferring data between SAS and Microsoft EXCEL has gained popularity over the years. Many methods were developed by different groups of people, from standard DATA STEP to most recent SAS ODS tagset. With many options available today, one may wonder 'Which would fit my situation the best?' This paper briefly discuses several options for importing and exporting data from/to Microsoft EXCEL using SAS and their pros and cons |
excel, proc step, data step, xls, dataset, proc import, libname statement, proc export, create table, proc sql | source | 8 |
| 36 | Exploring JMP 8 Integration with SAS 9.2: A Rich Set of Development Tools for the Analytic/Dynamic Report Application Developer Mike Vorburger, SAS Institute Inc | Mike Vorburger | Come see how JMP 8 offers a rich client environment to develop applications that exploit the dynamic graphical environment of JMP. The JMP Scripting Language (JSL) can be used to create user dialogs, submit SAS code, create native JMP reports from SAS output, surface ODS output, and integrate SAS output into native JMP output/reports |
sas output | source | 15 |
| 37 | Exploring SAS PROC CDISC Model=ODM and its Undocumented Parameters | Elena Valkanova | The CDISC Operational Data Model (ODM) is a well-es tablished data standard amongst other known CDISC standards used within the clinical research industr y. The format allows the exchange of electronic dat a from multiple sources, such as case report forms, electronic pati ent diaries, or administrative data. One use case t o bring data into a different system is the mapping of ODM structured data into SAS datasets. There are three major com ponents that are integrated in the CDISC ODM standard: a) s tudy metadata (i.e. CRF elements and database defin ition), b) snapshot data (i.e. clinical data), and c) transact ional data (i.e. audit trail information). The ODM data structure is based on an XML (eXtensible Markup Language) schema to ensure consistency in how the data is represent ed and validated by XML applications | dataset, proc step, sas log, variable, cdisc | source | 7 |
| 38 | Export Customized Graphs Directly into Microsoft Word Using Dynamic Data Exchange | Dennis J. Beal | Highly customized graphs can be created with SAS 9.1.3 and exported directly into Microsoft Word using dynamic data exchange (DDE) and SAS macros. SAS code is shown that produces side by side normal probability plots and box plots in both linear and log 10 scales for environmental data. The probability plots are cust omized using annotation to label potential outliers and create hollow symbols for censored results reported below the detection limit. A linear regression line is shown fitted to the environmental results on a log 10 scale. The box plots are also customized using annotation to show the mean, the 95% upper confidence limit on the mean, and special symbols for results outside the inner and outer fences of 1.5 and 3 times the interquartile range above the 75 th percentile. SAS code displays the distribution (normal, lognormal, or nonparametric) on the graphs and determines the optimal number of tick marks for the vertical axes | box plot, macro variable, interquartile range, outlier, macro definition, proc reg, proc means, proc greplay, regression analysis, sample, proc step | source | 11 |
| 39 | From Obscurity to Utility: ADDR, PEEK, POKE as DATA Step Programming Tools | Paul M. Dorfman | 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 |
numeric variable, character variable, sas programmer, temporary array, proc sql, length statement, data governance, variable list, dataset | source | 21 |
| 40 | Getting Correct Results from PROC REG | Nathaniel Derby | PROC REG, SAS's implementation of linear regression, is often used to fit a line without checking the underlying assumptions of the model or understanding the output. As a result, we can sometimes fit a line that is not appropriate for the data and get erroneous results. This paper gives a brief introduction to fitting a line withPROC REG, including assessing model assumptions and output to tell us if our results are valid. We then illustrate how one kind of data (time series data) can sometimes give us misleading results even when these model diagnostics appear to indicate that the results are correct. A simple method is proposed to avoid this. Examples and SAS code are provided. The SAS/GRAPH package is used in this paper but not required to use these methods, although SAS/STAT is required to usePROC REG. KEYWORDS: SAS,PROC REG, assumptions, residuals, time series. All data sets and SAS code used in this paper are downloadable fromhttp://nderby.org/docs/RUG09-PROCREG.zip |
proc step, anova, proc reg, estimate, predictor variable, response variable, normal distribution, regression analysis | source | 14 |
| 41 | Getting from SAS 9.1.3 to SAS 9.2: Migration Tools or Promotion Tools | Diane Hatcher, Sandy McNeill |
If you are running a metadata server in your SAS 9.1.3 environment, you must upgrade your metadata when you move to SAS 9.2. There are two possible approaches to take. The first approach is a migration, which will essentially copy your SAS 9.1.3 environment over to SAS 9.2 as part of your SAS 9.2 installation process. The second approach is to make a fresh start by installing SAS 9.2 first, then promoting specific content from SAS 9.1.3 afterwards. This paper will describe the tools, processes, and considerations for each approach. The goal is to help you make an educated assessment to determine which approach will work best for you | sas management console, sample, data cleaning, spk file | source | 12 |
| 42 | Graphing the Easy Way with SAS Enterprise Guide (or How to Look Good With Less Effort) | Stephanie R. Thompson | Have you ever wanted to make some fancy graphs but were intimidated by coding them from scratch? Let Enterprise Guide do the hard part for you. This hands-on workshop will provide a brief overview of Enterprise Guide then walk you through creating differ ent types of graphs. Bar charts, pie charts, scatter plots and more will be created. Once the graphs ar e done, we'll "borrow" the generated code, put it in another SAS program, make a few modifications, and then voila - fancy graphs from your program. We will use both the programming interface and En terprise Guide in this workshop | sas enterprise guide, line chart | source | 9 |
| 43 | Handling Dates in the Macro Facility | Toby Dunn | Ah, shimmering SAS date and time values. They brighten our code everywhere, from input, through processing, to output. For the most part these values pos e no ambiguity , they are simply formatted integers vividly manipulated with arithmetic, formats, and interval based functions. Alas, when we try to use date and time values in SAS Macro, things start looking dark. The clarity we know and love becomes murky and unclear. Should they be this dim and shadowy? I say no! With the light of knowledge and a few dazzling Macro functions this darkness can be illuminated like the shining sun rising after a moonless night. This paper's intended audience is beginner and intermediate SAS programmers | macro function, macro facility, sysdate9, macro variable, macro put | source | 4 |
| 44 | High Performance Analytics with In-Database Processing | High Performance | A new era of high performance analytics has emerged. In-database processing for deep analytics enables much faster turnaround for developing new analytic models and dramatically reduces the cost associated with data replication into "shadow" file systems. This talk examines these trends and quantifies the impacts. We also provide best practices for execution of a phased deployment strategy of these capabilities | in-database processing, data warehouse, proc sql, data governance, parallel processing, proc step, structured data, data mining, proc freq | source | 8 |
| 45 | How to Use ARRAYs and DO Loops: Do I DO OVER or Do I DO i? | Jennifer L. Waller | Just the mention of ARRAYs and DO loops is enough to make a new SAS programmer want to run away, cover their ears, and shut their eyes. However, if you have ever copied SAS code that performs the same operation to create multiple new variables, using ARRAYS and DO loops can make your job easier. ARRAYs and DO loops are powerful data manipulation tools that help ma ke code more efficient. In this workshop you will learn when ARRAYs and DO loops can and should be used, how to set up an ARRAY with and without specifying the number of array elements, and determine what type of DO loop is most appropriate to use within t he constraints of the task you want to perform. So open your eyes, take your hands away from your ears, stand up from cowering in the corner, and come to banish the fear of ARRAYs and DO loops | do loop, do over, end, array | source | 11 |
| 46 | Implementing User-Friendly Macro Systems | Edward Heaton, Sarah Woodruff |
autocall macro, macro catalog, stored macro, sas log, macro function, macro parameter, %macro parameters, macro loop, macro variable, txt, macro definition, options statement, %if-%then-%else | source | 20 | |
| 47 | Importing Complicated Excel Files into SAS Drug Development (SDD) | Heather L. Murphy, Gregory C. Steffens |
With the rise of new programming environments come new programming challenges. This paper illustrates a method to convert Microsoft EXCEL worksheets into SAS data sets, using code that runs in SDD (SAS Drug Development). SDD is a newer programming environment that provides control and compliance. SDD has been seen as an attractive application to pharmaceutical companies to perform programming tasks while tracking modifications and remaining compliant with both regulatory and company standards. The down side to this new environment is that converting data sets that reside in an EXCEL worksheet is no longer as easy as using PROC IMPORT. As most statisticians know, EXCEL data rarely comes in a pretty format that can easily be converted into other environments, i.e., SAS. This paper will describe methods to convert EXCEL worksheets into SAS data sets using code that executes in SDD. Most of the code will be applicable to both SDD and Unix SAS users since SDD executes code on a Unix server |
excel, dataset, libname statement, xls, clinical research, proc step | source | 11 |
| 48 | Imputation for Censored Observations in Survival Studies Allowing for a Positive Cure Rate | Alan B. Cantor | This paper presents a method of imputation for right censored survival data in which the possibility that an individual with a censored survival time is cured is explicitly accommodated. For each right censored observation, first cure or non-cure is imputed. For the non-cures a survival time is imputed. All imputations are based on a Gompertz model and are conditioned on the censored time in the original data. In a recent report1, Royston, Parmar, and Altman (RPA) suggest an approach to the visualization of survival data with right censoring as a complement to Kaplan-Meier plots. They suggest fitting a log-normal distribution to the data. Then a value can be imputed for a censored observation by generating a value for the random variable defined by this log-normal distribution conditioned on survival to the censored time. They then exhibit the enhanced data in the form of a dot plot | imputation, censoring, right censoring, survival function, likelihood function, maximum likelihood estimation, normal distribution, lognormal distribution | source | 6 |
| 49 | Industrial Strength Analytics: A Brief Overview of SAS/OR | Garland D. Maddox Jr. | SAS/OR has been a part of the SAS System since 1983. However, over the last several years, it has been transformed with the addition of a number of new features that include interactive model building, its own modeling language, and state-of-the-art optimization routines. This paper presents the basic categories of SAS/OR procedures and facilities with a closer look at the new SAS Simulation Studio and PROC OPTMODEL |
proc step, odds ratio, exponential distribution | source | 5 |
| 50 | Inline Formatting with ODS Markup | Eric A. Gebhart | Explore the power of inline formatting in ODS. And, learn about the super powers of inline formatting with ODS markup and ODS measured; see how easy it is to make your reports look better than ever before. With the new and improved syntax, ODS Inline formatting is better and more powerful than ever before. Learn how to use it and extend it to do even more than you dreamed possible. TWAS BRILLIG AND THE SLITHY TOVES, DID GYRE AND GIMBLE IN THE WABE Inline formatting has been around for a few years now, but as of 9.2 it has a new syntax and is more powerful than ever. However, it can look a bit daunting and much like the feelings you may have about Lewis Carol's Jabberwock and the Jub Jub bird and frumious Bandersnatch. You might be just as well off running off the other way. But inline formatting isn't nearly so bad as the Jabberwock, and the Jabberwock didn't fair so well anyway |
excel, data step | source | 13 |
| 51 | Integrating Geocode Data from the Google Map API and SAS/Graph | Shane Trahan, Mai Nguyen, Inga Allred, Preethi Jayaram |
The Google Map API gives developers mapping capabilities to integrate into their own applications. Researchers at RTI International have integrated the Google API into an easy to use library that can be used by SAS programmers as well as other developers. SAS programmers can take advantage of the Google API to perform a variety of Geographic Information Systems (GIS) calculations by using a set of easy to use function calls in the DATA STEP. All the complexities from the underlying technologies to access the online Google API's are encapsulated and hidden from the programmer. Together with SAS/GRAPH software, programmers can leverage the geocoding capability of the Google Map API to graphically represent data in many different ways. This paper will describe how SAS programmers can take advantage of geocode data obtained through the Google Map API to create custom SAS/GRAPH maps |
sas programmer, sample, proc gmap | source | 9 |
| 52 | Jittering: A SAS Macro to Shift Overlapping Plots | Nathaniel L Baker | In many clinical trials, interim and final analysis data presentations require complex plots to describe the data distributions by subgroups at several points within the study. Preparing graphics that are adequate for comparing the distributions of multiple groups at multiple time points can be very tedious and time consuming. With each new data run, additional subject information becomes available and the SAS code written to create the plot must be adjusted and reformatted to the new c onstraints. This paper presents a unique and easy to implement SAS macro designed to jitter bar charts, box and whisker plots, and longitudinal mean ± standard error plots (repeated measure plots) in order to pr esent to a general clinical audience with minimal SAS/GRAPH experience |
proc step, proc calis, proc gplot, data step | source | 8 |
| 53 | Labels, Labels, and More Labels | Stephanie R. Thompson | SAS datasets include labels as optional variable attri butes in the descriptor portion. Labels are not a nuisance but something that you can get a lot of use out of. Learn how to get the most out of them in your programs. Here a just a few of t he topics that will be covered: how l abels can make reports more readable, how to permanently or temporarily create or change labels, how to use them in procedures or not use them, and how to extract them in to a dataset or a macro va riable. Consider this paper a primer on the variable label | proc step, proc print, label statement, proc contents | source | 5 |
| 54 | List Processing Basics: Creating and Using Lists of Macro Variables | Arthur L. Carpenter | macro put, macro variable, proc sql, proc step, macro call, call execute, macro loop, macro definition, %if-%then-%else, output delivery system, do loop, proc report, dictionary tables, data step, create table, proc sort, macro function | source | 20 | |
| 55 | Looking Beneath the Surface of Sorting | Looking Beneath | Many things that appear to be simple turn out to be a mask for various complexities. For example, as we all learned early in school, a simple drop of pond water reveals a complete and complex ecosystem when viewed under a microscope. A single snowflake contains a delicate crystalline pattern. Similarly, the decision to use data in a sorted order can conceal an unexpectedly involved series of processing and decisions. This presentation will examine multiple facets of the process of sorting data, starting with the most basic use of PROC SORT and progressing into options that can be used to extend its flexibility. It will progress to look at some potential uses of sorted data, and contrast them with alternatives that do not require sorted data. For example, we will compare the use of the BY statement vs. the CLASS statement in certain PROCs, as well as investigate alternatives to the MERGE statement to combine multiple datasets together |
proc sort, proc step, missing value, by group processing | source | 10 |
| 56 | Macro Solution to Oracle Limitation | Diane Cunningham | Have you ever run SAS on a UNIX platform and needed pull several thousand accounts from Oracle databases using the SQL passthru facility. If you have tried to write these accounts into a macro variable, you probably received an error stating a 1,000 item limit. This paper presents a macro based solution to this Oracle limitation. TWO POSSIBLE SOLUTIONS One possible solution is to bring back all the data from the Oracle connection (filtered as much as possible) and merge with the list of accounts in another datastep. If the Oracle data is very large, this method could be very inefficient. The other solution, and the one described in this paper is to use a macro loop and only bring back data for the accounts of interest First determine how many accounts are required and set a loop counter | proc sql, proc step, macro variable | source | 2 |
| 57 | Macro to Retain Group Variable Names in PROC REPORT's ODS RTF Outputs | Ravi Naalla, Kimberly Lindfield |
PROC REPORT with the combination of ODS RTF is a powerful tool and widely used to produce tables and listings for clinical trial data in pharmaceutical industry. Limita tion of ODS RTF output is that the content of same group variables are not carried forward to following page for SAS Versions 8.2 and 9.1. In this paper, a simple macro based solution will be presented to help SAS users to overcome the limitation of ODS RTF |
proc report, proc step, class variable | source | 3 |
| 58 | Mapping Nested e-CRF Data into SDTM Domains | Venkata Sekhar Bhamidipati, Kristi L. Garner |
Mapping nested e-CRF data (e-CRF data points which trigger another set of data points to be collected) into SDTM domains is one of the most difficult and complex tasks in implementing the CDISC Study Data Tabulation Model (SDTM). This paper describes the complexities and considerations involved when mapping nested e-CRF data, as well as identifying three different approaches by which to map nested e-CRF data into SDTM domains. A comprehensive illustration of the advantages and disadvantages of each approach is presented. The intended audience of this paper is those people involved with SAS Programming, Data Management, and Statistics | sdtm domain, data governance, sample, cdisc | source | 5 |
| 59 | Matching SAS Data Sets with PROC SQL: If at First You Don't Succeed, Match, Match Again | Imelda C. Go | Two data sets are often matched by using the MERGE and BY statements in a DATA STEP. If records between the two data sets did not match successfully, there may be a need to contin ue matching the remaining records using a different set of BY variables. If the goal is to match as many records as possible between the two original data sets, then this process may have to be repeated several times using many sets of BY variables . This paper provides a PROC SQL solution to matching data using several sets of matching criteria. This is the PROC SQL version of a 2004 SouthEast SAS Users Group (SESUG) paper that exclusively used PROC SORT, the DA TA step, and the MERGE and BY statements to match data using several sets of criteria. Acknowledgments: I would like to thank Stephanie Thompson, Todd Weiss, and SAS Technical Support for helping me convert the 2004 SAS code. I am now a PROC SQL fan |
proc sql, proc step | source | 10 |
| 60 | Maximum SAS: Analyzing and Increasing Performance | Myron A. Chandler | Application performance is a topic that concerns every developer at one time or another as it is arguably the second most important measurement of any software system's success directly behind correctness. When attempting to improve the performance of an app lication, the first and often most difficult task is to identify t he elements that are most responsible for the delays in time. This paper profiles how a real-world, poorly perfo rming software testing system was analyzed using SAS and the performance gains that were achieved by rewriting data queries, by restructuring code blocks and removing unnecessary code, and by altering SAS configuration options | proc sql, filename statement | source | 7 |
| 61 | MIXED_DX: A SAS Macro for Two-Level Linear Model Diagnostics | Bethany A. Bell, Grant B. Morgan, Jason A. Schoeneberger, John M. Ferron, Jeffrey D. Kromrey |
Multilevel modeling has become a common analytic technique acro ss a variety of disciplines including medicine and the social and behavioral sciences. However, because many researchers who use multilevel modeling in their research do not report if the data were screened for potential violations of dist ributional assumptions and outliers, it is unclear if these diagnostic procedures are being conducted. Thus, in an effort to make the proce ss of checking the assumptions for two- level linear models easier for the applied researcher, this paper provides a SAS macro for conducting two-level linear model diagnostics, including examinations of residual normality, linearity, homogeneity of variance, and influential outliers. By utilizing data from PROC MIXED ODS tables, the macro produces box-and-whisker plots, summary tables of statistical output, histograms, and plots of residuals by predicted values. Macro outputs are produced for both level-1 and level-2 data |
proc mixed, proc step, box plot, mahalanobis distance, histogram, outlier, proc means, estimate, covariance, proc univariate, influential observation, homoscedasticity, proc glm, proc genmod, regression analysis, macro definition | source | 17 |
| 62 | More Tips and Tricks for Creating 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 the XML support in Base SAS 9 software to create multi-sheet Microsoft EXCEL workbooks (for EXCEL versions 2002 and later). You will learn step-by-step techniques for quickly and easily creating attractive multi-sheet EXCEL workbooks that contain your SAS output, and also tips and tricks for working with 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, date variable, sas output, proc template, sas base, sysdate9, output delivery system, title statement, by group processing, proc print, ods xml, format statement, proc step, sample | source | 20 |
| 63 | Multiple Imputation for Survey Data Analysis | Yeats Ye | Missing values in survey data may lead to bi ased parameter estimates that do not accurately represent the population. There are a variety of techniqu es to deal with survey missing data. For instance, weighting adjustments are used in some studies to compensate for biased estim ators produced by survey non-response (1). Some conventional imputatio n methods such as model-based imputation (mean, ratio and regression imputation) are sti ll used to replace missing values with acceptable values (2). However, adjusted weights need to be created for each variable with item non-response. This requires a great deal of time and effort (2). Conventional imputation methods focus on estimating mean parameter values and ignore the between -imputation component of variability. Such imputation methods result in smaller standard errors than if variability were taken into account, thus increasing the likelihood of st atistical significance | imputation, proc step, multiple imputation, estimate, logistic regression, missing value, proc mi, ods output, proc surveylogistic, response variable, output delivery system, sample | source | 7 |
| 64 | Navigating the SAS Business Intelligence Client Tools | Angela M. Hall | The SAS Business Intelligence Suite offers a huge set of client tools to access reports, create data, and manage interfaces. Which group of users should utilize which client tool? How do you choose which application to implement first for your end user community? When should a particular tool be used over another? Included within this paper is a framework for describing the SAS BI toolset to your business community | sas enterprise guide, business intelligence, sas management console, excel | source | 4 |
| 65 | No More Blue Screens - Running SAS on Windows Servers | Joanne Ellwood | Running SAS Foundation products on Windows Servers with many users can be very challenging. Users can experience slowdowns and suspended blue screens when trying to log onto the server. Runaway SAS sessions can consume large amounts of CPU while doing no real work. This presentation will show how SAS server administrators and users can manage these problems using standard Windows utilities, successfully avoiding the dreaded non- scheduled reboot of a SAS application server. Strategies discussed in the presentation may have application to other SAS installations such as BI Server | cpu time, dataset | source | 3 |
| 66 | No More Downloading - Using SAS/ODS to Create Graphs and HTML Documents for z/OS Systems - Updated for SAS v9.1 | Patricia Wingfield | With the advent of mainframe web server software, such as IBM's 'z/OS HTTP Server', and with the SAS ODS facility, it is possible to create HTML documents in z/OS data sets - pds/e, sequential or HFS. Graphs and web pages stored in these z/OS data sets can be viewed via a web browser. It is no longer necessary to download the documents to another type of platform for viewing on the internet or intranet. This paper covers SAS coding techniques that you should find helpful for developing HTML and SAS/GRAPH documents created, stored and displayed on z/OS systems using SAS. This is a major update to a paper previously presented at NESUG, dealing with changes pertinent to SAS V9 |
proc step, ods html, proc report, sample, flat file, proc gplot, proc template, proc tabulate | source | 10 |
| 67 | Notes from an Intersection: Google Earth @ SAS | Carol A. Martell | This paper examines the issues one encounters using SAS to create data-driven placemarks viewable in Google Earth. The introduction of bike lanes in certain areas of St. Petersburg, Florida, provides a scenario for comparing before-and-after traffic counts. The traffic count data, while providing an intersection label, does not provide latitude and longitude. Come along for a ride on the SAS train from proprietary traffic counts to Google Earth; there are sure to be many detours. Is it a rollercoaster or a kiddie ride? At the 2008 SAS Global Forum, two integrative techniques were unveiled. Kuiper and Vyverman showed us how to use SAS XML Mapper to read, and in SAS 9.2, write Google Earth XML (KML). Drukenbrod and Mintz showed us how to provide dynamic query access at placemarks using SAS/INTRNET Application Dispatcher and how to create county-area colored overlays for Google Earth. With these techniques in hand, we set out in search of some appropriate ways to display our data |
dataset, libname engine, sample, character variable, proc sql | source | 17 |
| 68 | ODS Packages: Putting Some Zip in Your ODS Output | Eric A. Gebhart | ODS packages and package templates add powerful new abilities to ODS. Automatically create zip files and SAS packages which contain all the output generated from your SAS program. ODS packages make it easy to e-mail your ODS output to others and can help keep your file system clear of file clutter. With integration technologies, ODS packages can also publish to WEBDAV, Email, Queues, and Subscriptions as well as Archives. ODS packages are also completely integrated with TAGSETS allowing for fully automatic generation of packages and the creation of some of the newer file formats like Open Document Format and Microsoft Office 2007. Learn how easy it is to use ODS packages and find out how they will impact the future of ODS |
output delivery system, ods html, proc step, ods packages | source | 10 |
| 69 | Pleasing the Client: Creating Custom Reports with SAS ODS Layout and Proc Report | Barbara B. Okerson | Through the Output Delivery System (ODS), SAS software provides a means for creating attractive, concise, and functional reports. Because ODS is an object-oriented (OO) technology, it provides the ability to move beyond template descriptions to creation of complete output layouts. PROC REPORT works with ODS to provide a completely customizable framework for presenting tabular data within the SAS system. The examples in this paper combine text, graphics, and tabular data to create health care management outcomes reports for the PDF destination. The examples in this paper were developed with version 9.1.3 of SAS executing on a Windows XP platform. The SAS features represented in this paper are not platform-specific and can be adapted by both beginning and advanced SAS users |
proc report, proc step, output delivery system, clinical endpoint | source | 9 |
| 70 | PROC MIXED: Macro to assess fixed and random effects for significance using the Likelihood Ratio test and the approximate Mixture Method | Barbara H. Bardenheier | A macro written for use with PROC MIXED to obtain the test statistic for the difference in deviances between two nested models along with the p-values for the Likelihood Ratio Test (LRT) and the approximate Mixture Method will be demonstrated. Some researchers believe these tests may have better statistical properties than the approximate Wald test1 which is given in the SAS output. Further, for random terms, SAS gives the two-tailed p-value of the Wald test; it must be halved to get the approximate p-value for a one-tailed test (the random term is squared and therefore can never be negative, hence it is one- sided). If users are not aware of this they may fail to reject the hypothesis of no association when they should (ie, there may be significant variation between groups but if the p-value of the random term is not halved there may be type II error). It is also possible to get a type I error using the Wald test |
fixed effects, likelihood function, degrees of freedom, proc step, proc mixed, chi-square distribution, ods output, maximum likelihood estimation, out=, output delivery system | source | 7 |
| 71 | Quartile Conundrum | Patricia Guldin, Liping Zhang |
Calculating quartiles is a common task that can be accomplished in multiple ways, but not all calculations return the same results for the same data. There are many definitions of a quartile as well as multiple descriptive terms (percentile, quartile). The challenge for a programmer is in determining which code to use. This paper will offer, to both new and seasoned programmers, the awareness that understanding what you are being asked to provide regarding quartiles is just as important as knowing how to provide it | proc step, proc univariate | source | 5 |
| 72 | Resetting Variables to Zero | Edward Heaton | SAS provides a nice way to set a collection of variables to missing, and that's very handy. However, we often want to reset accumulator variables to zero when we are doing By group processing. Traditionally, programmers code a Do loop to cycle through the variables that they want to reset -- assigning zero to each variable along the way. If we are processing hundreds of millions of records with millions of By groups, even resetting as few as five accumulator variables can be quite a load on our system. The author proposes a macro - %callZero()- that will reset all of the accumulator variables to zero in one operation without loop processing. Keywords: addr(), peekC(), poke(). The Problem Suppose we are performing By group processing to summarize data. This is a common task, many of do this sort of thing every day. We initialize an accumulator variable to zero at first.byVariable and then accumulate until last.byVariable, when we output | numeric variable, by group processing | source | 7 |
| 73 | Resolving Value Differences among Duplicates, A Rule-based Approach | David H. Abbott, L. Douglas Melton, Steven C. Grambow, George L. Jackson |
When cleaning data, analysts may encounter sets of observations with the same value of the intended primary key (e.g., Social Security Number). To proceed, the analyst must resolve these into a single observation. Total duplicates can simply be discarded, but when variable values differ within the duplicate observations, the task is more complex. Decisions have to be made about which values to keep and which to discard. Using Base SAS 9.1, we have created a macro, DiffResolve, to aid analysts in listing the value differences and writing and enacting rules to resolve the differences. This macro is valuable for smaller projects not wishing to invest in software products that support data cleaning in general, such as the SAS Data Quality Solution. The macro is suited for use by intermediate users of SAS. Advanced users may find the code of interest. For example, the rules used to resolve value differences are represented in a SAS dataset rather than in SAS code | key, binary variable, dataset, sas base, macro definition | source | 11 |
| 74 | SAS Add in to MS Office - A Tutorial | Angela M. Hall | Business folks use EXCEL and have no desire to learn SAS Enterprise Guide? MS PowerPoint presentations prevail in displaying charts and summarizing results? SAS Add in to MS Office is a perfect fit for these scenarios. Users have the ability to open huge datasets in MS EXCEL and run SAS analytics via a simple interface. From PowerPoint, users can create charts and quickly update them in future meetings with new data |
sample, excel, bar chart, sas enterprise guide | source | 24 |
| 75 | SAS and Clinical IVRS: Beyond Schedule Creation | Gayle Flynn | SAS is the preferred method for generating randomization and kit schedules used in clinical trials. The use of SAS should not stop with the creation of the schedules, however, because it offers a great toolset to manage the risk of any IVR implementation. This paper will identify the leading causes of errors in IVR systems and provide practical solutions to eliminating the risk related to IVRS in the following areas: 1. Schedule handling 2. User Acceptance Testing 3. Managing risks prior to production 4. Managing risks post production | randomization, create table | source | 10 |
| 76 | SAS Macro Autocall and %Include | Jie Huang | SAS provides several methods to invoke external SAS macros in a SAS program. There are two that are most often used, one is the autocall library, which enables users to invoke a macro that is not defined in the same SAS program, while the other is the %INCLUDE statement, which identifies an entire external file that the user wants to bring into the program and execute immediately. Each method has its' own advantages and disadvantages. It is important to understand how and where to use them properly and effectively. This paper will outline the differe nt features of each method so that users may choose the best approach for their application in the Microsoft Windows environment |
autocall macro, sas log, macro definition, macro call, options statement, sample | source | 7 |
| 77 | SAS Macro Design Issues | H. Ian Whitlock | Two questions motivated this paper. The first came more than twenty years ago at the end of my first programming course when the professor asked, "You now know how to write programs, but do you know when it is appropriate to write a program?" For SAS macro the question might be rephrased. What kind of SAS problem is appropriate to macro? Or when should the solution involve macro code? The second came from SAS-L in September 2001, "What sources discuss how to develop clear and good macro code?" There have been many Beginning Tutorials on macro, and many of the examples in them may illustrate some of the principles that these questions hint at, but I do not know of any source that concentrates on the principles | macro facility, macro variable | source | 12 |
| 78 | SCL Is Gone: How Do I Get Variables from My Users into SAS Enterprise Guide? | Patricia Hettinger | SCL (Screen Control Language) has been discontinued with SAS Enterprise Guide. The purpose of this paper is to acquaint users with its replacement, Parameters Manager. The paper also gives some tips for dealing with situations where it falls short, such as in masking database user IDs and passwords. Many screen shots are included as SAS Enterprise Guide is a visual interface | sas enterprise guide, character variable, connection string, macro variable | source | 12 |
| 79 | Short, Sweet and Simple ... how to do more with less in SAS | Brian Spruell | This paper will demonstrate a technique the author learned using %str and %scan which greatly reduces the amount of actual programming needed to perform a task in SAS. He will do this by presenting several examples from his work as a government contractor. This paper is intended for beginner/intermediate SAS programmers | macro function, macro quoting function, do loop, macro variable, odds ratio, character functions, logistic distribution, regression analysis | source | 6 |
| 80 | Source Code Documentation: When Comments Get in the Way | Susan Myers, Ruben Chiflikyan, Mila Chiflikyan |
As programmers learn to write code, it is stressed that a well written program has comments describing every step of the process. In a perfect world an inherited program should be easy for one to understand what is being done and why. Many times historical information is included when a legacy system is used from one year to the next. In general this practice is invaluable; however when the comments grow larger than the code itself it can hinder one's ability to follow the flow of code. When the source code has extensive commenting, both descriptive and commented out unused code, it results in a log that is difficult read. The effort to manually remove comments can be tedious and time consuming. It also introduces the possibility of additional errors that exacerbate the debugging process. We have developed a tool to automate the process of removing all comments from a SAS program. Our goal is to produce a log file that is uncluttered with comments | if-then-else, data step | source | 9 |
| 81 | Stop Light Reporting with PROC REPORT | Ron Richardson | Frequently in banking users want "red/yellow/green" colors in matrix reports to aid in illustrating to management the risks in certain decisions. Using PROC REPORT coupled with custom compute blocks and formats, SAS can deliver the presentation quality information normally associated with WISWIG spreadsheet output. The key is layering multiple SAS techniques to achieve the desire result |
proc report, proc step, user-defined format, output delivery system | source | 4 |
| 82 | Streamlining Data Analysis | Edzard van Santen | One of the software tools used by researchers in agronomy for statistical data analysis is SAS (SAS Institute, Cary, NC, USA). Even though new procedures offer superior results they may not be readily adopted if they are too cumbersome to use for the practicing researcher who is not a SAS professional. In agronomic research multiple response variables are often measured for a given experiment but newer analysis procedures available in SAS, such as PROC MIXED or PROC GLIMMIX, only allow the analysis of a single response variable at a time. In this paper I describe time saving measures that take some of the drudgery out of data analysis. The measures involve a judicious use of macro variables and a linearization of datasets with multiple response variables that, in SAS parlance, converts a dataset from a wide to a long data format |
response variable, data science, proc step, covariance structure, covariance, proc glimmix, proc mixed, by group processing | source | 4 |
| 83 | Supporting a SAS Server Architecture | Angela M. Hall | Your organization has purchased a SAS Solution, which could be for Business Intelligence, Warranty Analysis, Anti Money Laundering or any number of other offerings. Sitting in a server farm the hardware is maintained but you are given the responsibility of managing the SAS solution environment. How do you organize the administration work and keep yourself out of the support game? This paper will provide a framework for planning SAS server administration | sas management console, sas enterprise guide | source | 8 |
| 84 | Taking the PROC FREQ a Step Beyond | Priya Suresh, Elizabeth Heath |
Some surveys administer the same set of questions, at particular time intervals, in order to study changes over time. In longitudinal studies, the questions are administered to the same person, while in multiple-year cross-sectional studies, the questions are administered to different cohorts or different people within the same demographic group. Studies that we have supported have followed respondent's drug use, academic success, and social well-being, over time, and collected the same data year after year. Changes over time are identified as variable values that significantly differ by more than a specific percentage threshold. One way to identify these changes involves the use of the SAS frequency procedure PROC FREQ. We will review this simple but elegant approach to highlighting changes |
proc freq, proc step | source | 6 |
| 85 | The Effect of Missing Data on Repeated Measures Models | Maribeth H. Johnson | Researchers involved with longitudinal studies are faced with the problem of trying to get study subjects to return for every follow-up visit. There is always some amount of missing data when looking at these types of studies. The MIXED procedure of the SAS enables examination of correlational structures and variability changes between repeated measurements on experimental units across time. While PROC MIXED has the capacity to handle unbalanced data when the data are missing at random, a question arises as to when the degree of sparseness jeopardizes inference. Simulation is a tool that can be used to answer these types of questions. This paper shows the application of simulation to determine inference problems in a data set with a specific pattern of missing data. This technique is also applied to the topic of initial sample size determination |
sample, sample size, missing value, covariance, proc mixed, proc step, proc freq | source | 10 |
| 86 | The SAS Hash Object in Action | Paul M. Dorfman | In SAS Version 9.1, the hash table - the very first object introduced via the DATA STEP Component Interface in Version 9.0 - has finally become robust and syntactically stable. The philosophy and application style of the hash objects is quite different from any other structure ever used in the DATA STEP before. The most notable departure from the tradition is their run-time nature. Hash objects are instantiated, deleted, allocate memory, and get updated all at the run-time. Intuitively, it is clear that such traits should make for very inventive and flexible programming unseen in the DATA STEP of yore. Still better, Version 9.2 has added new methods, attributes, and parameters. This paper includes both hash propaedeutics and material intended for programmers already familiar with SAS hashigana at basic to very advanced levels |
hash table, hash iterator, dataset, composite key, sample, length statement, cpu time, group by, sas programmer, variable, proc sql, sas log, data step, memory usage, proc means, proc step | source | 30 |
| 87 | The Use of SAS in Meta-Analysis | Ryan C. Butterfield | We will illustrate the dichotomy between original data and published data in the context of usability for Meta-Analysis. We will show how to use SAS for these two cases and suggest possible solutions to overcoming the hindrances caused by the use of published data. Publication bias, Bayesian methods for Meta-Analysis, and other related topics will be discussed | sample, odds ratio, spaghetti plot, regression analysis, treatment effect | source | 13 |
| 88 | THINK Before You Type ... Best Practices Learned the Hard Way | Marje Fecht | We have all done it…. You leave a meeting with a new project on your plate - you sit down at your computer and start programming - a day later and lots of code on the screen, you try to remember the real purpose of your latest task. Or, worse, you finish your task only to find that it is not what was requested. Discipline and planning aren't always easy but they pay off in the long run! | data cleaning, proc step, macro facility | source | 8 |
| 89 | Tips and Tricks IV: More SAS/GRAPH Map Secrets | A. Darrell Massengill, Jeffrey C. Phillips |
"You can't do that with PROC GMAP!" We hear that all the time. Many users don't know the full range of capabilities of the SAS/GRAPH mapping procedures. This presentation will share the secrets to allow you to exploit the power of SAS/GRAPH maps. Get the maps you really want; you can do that with PROC GMAP! We will demonstrate this using both existing functionality and new SAS 9.2 functionality |
proc step, proc gmap, predictor variable | source | 15 |
| 90 | Tips for Moving to SAS Enterprise Guide on Unix | Patricia Hettinger | Many companies are moving to SAS Enterprise Guide , often with just a Unix server. A surprising number of SAS analysts are intimidated by this, even those who have used PC/SAS in the past. This paper gives some tips and tricks when moving your code into a SAS Enterprise Guide project, whether from PC/SAS or batch Unix. It covers the difference between outside and embedded code, transcoding differences between the Windows and Unix environments and common installation problems | dataset, sas enterprise guide, proc step | source | 18 |
| 91 | True or False: Evaluating Logical Expressions | Ronald J. Fehd | source | 2 | ||
| 92 | Use SAS to Check Misspelled Words in Excel Files | Tse-Hua J. Shih | In the pharmaceutical industry, data are sometimes documented in EXCEL files (e.g., define and mapping documents for 23 STDM domains, etc). To spot misspelled words in EXCEL files, a straightforward method is to copy-and-paste contents of EXCEL files onto word documents and do eye-ball checks pages after pages. It consumes lots of time and energy, which often results in human errors due to physical tiredness. This paper describes in details how SAS can check misspellings in EXCEL files and instantly documents misspelled words, rows of data that contain misspellings, and variable names that have misspellings in variable values. The current paper presents a novel method to check spellings in excels files, which exponentially enhances efficiency and precision of such QC works and a dependable corporate image when presenting qualitative data |
excel, dataset | source | 7 |
| 93 | Using Formats, MP Connect, and Other SAS Efficiency Techniques to save Time and Disk Space | John Charles Gober, Arumugam Sutha |
Working with historic household Census data can be quite challenging. Semi-annual data sets can exceed 50 gigabytes and when working with multi-year data it is often necessary to extract information from yearly clusters of data sets exceeding 300 gigabytes. These yearly clusters, until recently, have been processed sequencally, each independent process relying on the completion of the previous process before continuing. The sorting alone of some of these data sets can take over an hour of clock time. Processing six data set representing three years of data can take six hours. By using form at tables and eliminating sorts and merges, reducing repeated passes through the data, an d the use of MP connect for independent processes processing time and temporary storage can be reduced by over 50 percent. This paper will explore several techniques using format tables, combining data steps, and MP connect to achieve these results | cpu time, proc step, data step, proc format, proc sort, mp connect | source | 6 |
| 94 | Using ODS Select to Limit SAS Output | Matt Reich | The Output Delivery System (ODS) in SAS is a useful tool for producing various kinds of output files. Many times you are only interested in reporting certain portions of the output. This is especially useful when using procedures with multiple output tables like the LOGISTIC procedure or the UNIVARIATE procedure. The ODS SELECT statement allows you to specify which parts of the output you want to include in the output file. This paper will cover how to use ODS TRACE and ODS SELECT to determine the name of each output object and how to use those names to specify the objects to output. It will also discuss how to specify output for multiple procedures |
logistic distribution, select, sas log, sas output, proc freq, output delivery system, proc logistic, proc step | source | 4 |
| 95 | Using SAS to Explain Mediator and Moderator Effect for Social Support of Mothers of Mentally Ill Children | Abbas S. Tavakoli | predictor variable, response variable, regression analysis, interaction effect, repeated measures | source | 13 | |
| 96 | Using SAS to Explore the Impact of a Care Management Maternity Program | Barbara B. Okerson | Pregnancy and childbirth-related conditions make up almost 25 percent of hospitalizations in the United States. Mothers-to-be that are healthy and well-informed about their needs and the needs of their baby have healthier babies and lower costs. This paper uses SAS statistical procedures combined with ODS statistical graphics and SAS/GRAPH procedures to produce graphics that can be used to analyze the need for, and effectiveness of, a prenatal care-management program that is designed to reduce cost while reducing incidence of preterm and low birth weight babies, especially for high-risk pregnancies. In addition to a broad range of statistical procedures, SAS/STAT provides customizable statistical graphics that display automatically when ODS graphics are invoked; these are especially effective for graphically displaying the effects and safety of treatments in a mode that is often more easily understood and remembered than tabular forms |
box plot, waterfall chart, proc step, bar chart, proc sgplot, histogram, survival analysis, data visualization, time variable | source | 9 |
| 97 | Using the Excel XP tagset and DDE to create At-A-Glance Summary Spreadsheets-Compiled, Written, and Formatted with one SAS click! | Christine R. Kraft | Using the EXCEL XP tagset is a quick and clean method for creating EXCEL spreadsheets with multiple tabs, various numbers of tables per tab, and formatti ng specific to individual sheets or cells. When an At-A-Glance summary page is needed in addition to these detailed views, it would be convenient to be able to simply copy and format some of the tables from various tabs into an appropriately-sized summary page. When a task such as this is repeated on a frequent basis and the created s heet has a relatively-fixed format, it make s sense to include this summary sheet creation into the SAS program. In this paper, we will show how to make use of the EX CELXP tagset and its many options to create formatted tables in EXCEL. We will then show how to use Dynamic Data Exchange (DDE) to assemble a summary sheet for an At-A-Glance look at the detailed tables |
excel, proc step, proc print, proc report, proc tabulate, by group processing, proc template | source | 16 |
| 98 | Utilizing the SAS Macro Facility to Interface with PROC COMPARE | Robert Adams | SAS is used in a variety of ways in pharmaceutical drug development, including to validate the data sets from which tables, figures, and listings are derived. The SAS procedure PROC COMPARE is useful when validating data sets since it can compare the contents of two data sets, selected variables in different data sets, or variables within the same data set. In addition, the procedure uses an automatic macro variable to store a return code that provides information about the result of the comparison. This paper will show how to use the value of the macro variable populated by PROC COMPARE to conditionally execute parts of a SAS program based on the result of the comparison |
proc compare, sysrc, proc step, macro variable, automatic macro variable, macro flow control | source | 4 |
| 99 | Your Friend - Custom Formats | Ron Richardson | The SAS programmer's life is a challenging one. Having the right tools to deal with these challenges is often just a matter of knowing what's available. Of the many tools SAS offers, the "custom format" is both powerful and flexible. This paper will demonstrate some custom format basics and illustrate some interesting ways to use them to tackle your programming challenges | user-defined format, permanent library | source | 3 |
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