SESUG 2006 Papers - Index
115 papers. Source: SESUG (SouthEast SAS Users Group) conference proceedings.
| # | Title× | Authors× | Abstract× | Keywords× | Extras | Pages |
|---|---|---|---|---|---|---|
| 1 | %IFN - A Macro Function | H. Ian Whitlock | We implement SAS Release 9 DATA STEP IFN() function as a DATA STEP function-style macro, %IFN(), so that both the release 8 and 9 users can obtain the benefit of utilizing succinct conditional expressions in their code. In doing so, we present a general technique of using PUT() and INPUT() functions in order to detect and properly handle missing values in the input expression without generating unwanted messages in log |
missing value, macro function, proc sql | source | 6 |
| 2 | %STPBEGIN: How EG Almost Removed the L-word from My Relationship With SAS | Rupinder Dhillon | Somewhere in the Enterprise Guide documentation we read how easy it was to create a SAS stored process - write and test your code, add a simple %stpbegin and %stpend and let EG take care of the rest. Presto, a new stored process ready to conquer the enterprise. Although that might work in the Hello World example, our first stored process project proved that applying the same guidelines to a more complex SAS program was much more challenging. In reality, creating stored processes is more involved than adding the basic syntax, input parameters and macro variables. You must also be aware of the differences that exist between EG and PC SAS sessions, the importance of efficient coding, and the distinctions between the Workspace and Stored Process servers. This paper will step through some "gotcha's" that may stump you when converting existing code or creating new stored processes from scratch | sas enterprise guide, macro variable, excel, error message, proc step | source | 9 |
| 3 | %WINDOW: Get the Parameters the User Wants and You Need | Michael A. Mace | %WINDOW provides an elegant means to gather user criteria for customized or ad hoc reports. Some of the benefits are: only Base SAS is needed (no SAS/AF ), there is only one program to write and maintain, and the end -user, mainframe or PC, never has to edit any code. So if you have written the killer application, but need some input from the user to make it run, just open the %WINDOW |
macro variable, macro facility, %if-%then-%else, macro definition | source | 7 |
| 4 | A Practical Approach to the Stored Compiled Macro Facility in a Clinical Trial Environment | Mirjana Stojanovic, Dorothy Watson, Donna Hollis |
This paper will demonstrate the stored compiled macro fa cility in the multi-user clinical data management environment of Cancer and Leukemia Group B (CALGB). CA LGB is a large cancer res earch cooperative group. Clinical data is gathered from hundreds of in stitutions and sent to the CALGB statis tical center, where it is stored in a single database and processed by dozens of statistici ans, programmers and data mana gers. At any given time CALGB coordinates more than 80 actively accruing clinical trials. This setting necessitates the need for streamlining data cleaning, data queries, and reports. The compiled stored macro facility permits all production leve l macros to be stored in one common location. In the multi-user setting it is crucial that al l changes to the stored compiled macros in the macro catalog are authorized | stored macro, macro facility, options statement, macro catalog, macro variable, macro definition, proc step, libname statement | source | 8 |
| 5 | A Relational Understanding of SDTM Tables | John R. Gerlach | The Study Data Tabulation Model (SDTM) is fast becoming the industry standard for processing data in clinical trials. Although the CDISC standard is well defined, with obvious benefits to those who manage and analyze the data, it is not easy to implement. For example, the design of a Case Report Form (CRF) or how the data are presented in reports affords little help to mapping raw data to SDTM variables and their appropriate domains. Indeed, the data pertaining to one SDTM domain may originate from several pages in a CRF; conversely, the data found on one page of a CRF might map to several SDTM domains, such as demography (DM) and inclusion/exclusion criteria (IE). Thus, the process of creating valid SDTM domain data sets requires a thorough understanding of SDTM domains. In order to become more learned about SDTM domains, it is important to develop a relational understanding of SDTM variables across domains, that is, the variables without their domain prefix (e.g., SEQ, not AESEQ) | medical history, sdtm domain, study day, adverse events, clinical trial, verbatim term, macro variable, proc sql, disposition table, proc step, missing value, cdisc | source | 10 |
| 6 | A Simulation Study of Sequential Testing Approaches in Genetics | Andres Azuero, David T. Redden |
A common issue in case-control genetic association studies is that a large number of markers may be te sted in the same case-control group, increasing the False Disco very Rate (FDR) due to multiple comparisons. Sobell (1993) proposed a three-staged sequential testing procedur e where a large number of markers are screened by t esting consecutively on three independent case-control sub groups. Sham (1994) argued that the use of independ ent subgroups at each stage, instead of accumulating da ta, decreases power. Thus, a sequential scheme was suggested, where at each stage the subsamples of pr evious stages are combined in order to maintain pow er. It was also suggested that sequential procedures based on Wald (1945) be applied to the problem. This study u ses SAS to carry out the sequential procedures proposed by Sob ell, Sham, and Wald's Sequential Probability Ratio Test (SPRT), and compares their properties in regards to power, percentage of genotyping, and FDR | significance level, sample, likelihood function, proc step, proc ttest, sample size, multiplicity, false discovery rate, null hypothesis, probability distribution | source | 8 |
| 7 | An Animated Guide: The Data Step Debugger | Russell M. Lavery | Use of the DATA STEP Debugger (DSD) simplifies debugging code and, while the DATA STEP debugger (DSD) was introduced in SAS version 6.11, it is not widely known. It is a powerful tool for finding logical errors in the DATA STEP. It gives you control over execution of "DATA STEP" code and allows you to watch your program execute- line by line. The DSD allows you to watch if - else statements execute to check if the code is correct while the code is running, rather than checking for correctness by writing PROC PRINT statements after the DATA STEP has finished. The DSD allows you to not only watch code execute, but will allow you to MANUALLY CHANGE the values in the program data vector as your job is running. The DSD does not issue any error messages as you use it. The programmer mentally compares what s/he sees, in the Program Data Vector (PDV), with what s/he expected to see. Critical to use of the DSD is an understanding of the PDV and the DSD is an excellent way to learn the PDV |
data step, do loop, if-then-else, sas log | source | 24 |
| 8 | An Annotated Guide: Using Proc Tabulate And Proc Summary to Validate SAS Code | Russell M. Lavery | This paper discusses how PROC TABULATE and PROC SUMMARY can be used to help a programmer avoid errors. This paper might be especially useful for new programmers. At every step of a program, a programmer should know were "every observation goes" and PROC TABULATE can be used to keep track of observations, not just for creating reports. Additionally, Good Programming Practice requires that a programmer "exercise" (check in some way) every combination of the clauses in every IF statement to see how observations are classified by the IF. PROC TABULATE is an excellent, fast and simple tool for doing that checking. Importantly, PROC TABULATE produces a pattern in its output that makes checking fast. In most cases, the logic need only be closely examined where the pattern in the output changes. Additionally, using PROC TABULATE allows the programmer to account for every observation in the data set, a very "comforting" fact |
proc step, proc tabulate, proc means, if-then-else, missing value, proc freq, excel | source | 13 |
| 9 | An Easy, Concise Way to Summarize Multiple PROC COMPAREs Using the SYSINFO Macro Variable | Lex Fennell | Every time the COMPARE procedure is executed in the SAS System, the procedure assigns a code to the SYSINFO automatic macro variable. This code represents the result of the PROC COMPARE (ie, whether there were no unequal values, differing attributes, etc.). With the one-time construction of a SAS macro, the SYSINFO codes from multiple compares can be captured and placed in a common data set. This data set, which can contain information such as the TIMESTAMP of execution, compare identifier, and SYSINFO code, can be placed in a common location for all compare results. Finally, another SAS program can be created that will use this data set as input, interpret the SYSINFO codes, and output a summary report that is concise and easy to interpret. This report can be kept as a paper-saving alternative for audit documentation |
proc compare, proc step, macro variable, automatic macro variable, macro definition | source | 2 |
| 10 | Analyzing Large Social Networks with MP Connect, SAS/IntrNet, and %DS2CONST | Shane L. Hornibrook | There are few analyses that rival the requirements of an interactive, web-delivered Social Network Ana lysis (also known as Link Analysis). Essentially the question p osed to the data is "Who is connected to whom and h ow strongly are they connected?" Linking disparate multi-millio n-row databases and interactively reporting interes ting links is a task that was, until recently, daunting. Historical ly, analysts have lacked the computational resource s and analytical methods necessary to concisely report on the linkag es between "key players" in networks of interest, p reventing whole-network approaches. SAS/INTRNET reports inte grating the Constellation Applet and utilizing the parallel- processing capabilities of MP Connect provide an id eal method for returning relevant, timely Social Ne twork Analyses from massive databases. Investigators can subsequently select "interesting" network component s and individuals for further visualization and investiga tion |
social network analysis, mp connect, proc sql, macro variable, nominal variable, relational database, proc step | source | 7 |
| 11 | Answering the Right Question with the Right PROC | Carrie Mariner | When your boss comes to you and says "I need this report by tomorrow!" do you know what SAS PROC to choose? Starting with the most basic reports (FREQ and MEANS), and working up to more complex topics (REPORT), this paper will help you choose your PROC based on understanding the real question and how to answer it. The basics of reporting syntax will be covered for each PROC |
proc step, proc report, proc freq, proc tabulate, proc means | source | 5 |
| 12 | AP16 DIFFTREE: A Macro to Compare Corresponding Files under Two | Directory Trees | DIFFTREE is a macro that compares two directory trees with each other to ensure they each contain the same files, and that the files have the same data. The procedure works on both OpenVMS and Windows 2000. The program is particularly helpful when making CDs or DVDs to verify that the CDs/DVDs match the original files on a hard drive or other location. DIFFTREE reports whether or not each file from a corresponding pair is (1) the same as its correspondent in the other subdirectory, (2) different, or (3) non-existent. It uses SAS functions like FILENAME, DOPEN, FOPEN, FREAD, FGET, FRLEN, FCLOSE, DCLOSE, etc. to check both trees using two main DATA steps, reading the files in binary mode up to 32,767 bytes at a time |
create table, union all, proc sql, macro definition, proc step, macro loop, %if-%then-%else | source | 25 |
| 13 | Be Your Own Task Master - Adding Custom Tasks to EG | Peter W. Eberhardt | In Enterprise Guide, SAS provides a ton of tasks to tickle travels into the world of data exploration and presentation. However, there are times when our fancy is not tickled just as it should. This paper will show you how to create custom EG tasks using C#.NET so you can have the interface your application deserves. This paper assumes you may have little knowledge about EG, but you should have at least a rudimentary knowledge of object oriented languages, preferably Microsoft's C# | sas enterprise guide, sample | source | 9 |
| 14 | CC06 A Better Means - The ODS Data Trap | Myra A. Oltsik, White Plains |
When we check the statistics of the numeric variables in a dataset, we want to keep those results in another dataset that we can reference over the course of a project. But this is not easily accomplished. Submit the following SAS1 statement - PROC MEANS data=sashelp.class; var Age Height Weight; run; - and the list output shows you six columns of information for the three variable rows. If you were to use ODS to create a dataset of this output by adding the following statement before it - ODS output summary=means_summary; - you might expect to get a dataset with six variables and three rows of data. You don't. Instead, as of SAS v9.1.3, you get a dataset with just one record and 18 variables, i.e., one variable for each combination of input variable and column. Instead of waiting for SAS to fix this ODS problem, we created a macro to produce the results we needed. Along the way, by adding some optional parameters, we think we've built a better "data trap" |
proc step, proc means, macro loop | source | 10 |
| 15 | ColdFusion and SAS: No Pain Meds Required | Carol A. Martell | This paper describes a method of integrating dynamic SAS output into a Macromedia ColdFusion application. The SAS/INTRNET Application Dispatcher responds to a request from the ColdFusion server, and the results are displayed in a ColdFusion page having the .cfm extension. The advantages to using this approach include isolating the SAS programmer from the design aspects of Web development. The technique requires that SAS/INTRNET Application Dispatcher be available with the accompanying SAS/INTRNET Application Server, and that the user have access to a ColdFusion Server. The paper does not address setting up or configuring either Application Dispatcher or ColdFusion Server. The intended audience is Web application developers with experience using Application Dispatcher and with the desire to stop using PUT statements for enhancing Web design |
sas output, proc print, put statement, ods html, proc step, sas programmer | source | 11 |
| 16 | Collect, Clean, Conquer - A Field Guide to Surviving Master Data Clean-up | Jessica Baldwin-Finke | While it may feel like you've moved a mountain, garnering management support and funding for a customer data clean up project is about 1% of the effort that really goes into a through and accurate review of master information. This paper will discuss Aspect Software's efforts at cleansing it's customer data and share the many lessons we learned during the process | master data management, data cleaning | source | 4 |
| 17 | Combining PROC GENMOD Models with Multinomial Outcomes Using PROC MIANALYZE | Marie Gantz | Using SAS to analyze multiply imputed data involves analyzing each imputation separately and then combining those results using the MIANALYZE procedure. Individual imputations may be analyzed using a variety of SAS procedures, including PROC GENMOD. Resulting parameter estimates and associated covariance matrices are output to SAS datasets using ODS. The ODS tables are then input into PROC MIANALYZE to obtain results that apply to the multiply imputed data as a whole . When the dependent variable is binomial, the ODS tables output by PROC GENMOD are in a format recognized by PROC MIANALYZE. When the outcome is multinomial, however, modification of the ODS tables is necessary before PROC MIANALYZE will accept them as input |
imputation, proc step, proc mianalyze, proc genmod, response variable, predictor variable, macro variable, degrees of freedom, covariance, binomial distribution, estimate, dataset, odds ratio, call symput, macro definition | source | 7 |
| 18 | Comparing Time series, Generalized Linear Models and Artificial Neural Network Models for Transactional Data Analysis | Joseph Twagilimana | The aim of this paper is to compare the AUTOREG Procedure for fitting Time Series Models, the GLIMMIX procedure for fitting Generalized Linear Models and the Artificial Neural Network for the analysis of medical data. This comparison will be illustrated by the Analysis of Length Of Stay (LOS) at a Hospital Emergency Department (ED). Almost all medical records contain a date and a time stamp to record events. Unfortunately the arrival of patient at a Hospital Emergency Department doesn't happen at regular interval of time which makes the variable Length of Stay (LOS) transactional than a Time Series. Using the SAS HPF procedure, transactional data can be transformed into Times series. For further LOS analysis, Time Series Models, or Generalized Linear Models or Data Mining techniques such as Artificial Neural Network can be applied. What these techniques have in common is that they can handle autocorrelated variables |
time series analysis, neural network, proc glimmix, proc step, proc autoreg, irregular component, data mining, proc mixed | source | 9 |
| 19 | Controlling Macro Output or, "What Happens in the Macro, Stays in the Macro" | Frank C. DiIorio | One of the hallmarks of a well-designed macro is that it creates only those artifacts that it was supposed to. That is, once it terminates, the only changes to the SAS environment are the macro variables, data sets, files, et al. that were identified in the macro's documentation. Macros that create unwanted data sets, reset system options, assign or deallocate librarires and the like are annoying at least and even worse, potentially harmful to the calling environment. This paper describes some tools and programming techniques that can be easily adopted to prevent unwanted changes and in turn lead to better, more reliable macro design | macro variable, proc step, proc format, macro call, options statement, macro put, macro definition | source | 8 |
| 20 | Creating AND Importing Multi-Sheet Excel Workbooks the Easy Way with SAS | Vincent DelGobbo | Transferring data and analytical results between SAS and Microsoft EXCEL can be difficult, especially when SAS is not installed on a Windows platform. This paper discusses using new XML support in Base SAS 9.1 software to move data between SAS and Microsoft EXCEL (versions 2002 and later). You will learn step-by-step techniques to quickly and easily create multi-sheet EXCEL workbooks containing your SAS output. You'll also learn about converting your own multi-sheet EXCEL workbooks to SAS tables. The techniques described here can be used regardless of the platform on which SAS software is installed, including a mainframe! The use of SAS server technology is also discussed |
excel, xls, dataset, proc print, proc tabulate, sas output, macro definition, sample, adverse events, sas base, by group processing, libname engine, proc step, work library, ods xml, proc template | source | 20 |
| 21 | Creating RTF Tables with Univariate Analyses of Multiply Imputed Data | Marie Gantz | Simple univariate analyses acquire an additional level of complexity when multiply imputed data are invo lved. Directly applied, chi-square and Student's t-tests do not account for between- and within-imputation variance. Instead, appropriate tests must be performed for each imputation separately and the individual estimates combined into one overall result. The macros described in this paper automate the process of performing univariate tests for differences between the two levels of a binary variable in a multiple imputation setting. The GLM procedure is used to test for differences with respect to a continuous variable, and the GENMOD procedure is used to test for differences with respect to a binomial or ordinal multinomial variable. In either case, the MIANALYZE procedure is then used to combine the parameter and covariance estimates from the individual im putations into one overall result. An additional macro outputs the combined results into an attractive RTF table |
imputation, response variable, predictor variable, proc step, proc mianalyze, dataset, proc calis, binary variable, degrees of freedom, univariate analysis, multiple imputation, macro variable, proc genmod, interval variable, proc glm, binomial distribution, proc report, macro definition, covariance, proc transpose, proc freq | source | 14 |
| 22 | Creating Unique Digital Signatures using CRC32 Standard | John Fulda | CRC32 is a standard algorithm used by commonly available software to produce an eight-character, hexadecimal number using all the bytes in a target file. This number, a "digital signature", changes when any byte in the target file changes. The digital signature does not change when the file name or creation date changes. Using this SAS program to calculate the CRC32 signature for all files in a folder enables the user to determine that the target file is identical in content to the original source file. Any file, regardless of file type, can be validated that no changes have taken place. This program is the core for a system that manages file integrity | macro variable, pharmaceutical industry | source | 9 |
| 23 | Dare to COMPARE - Three Methods of Preparing Your Data to Compare Values | David Maddox | In the course of performing basic data analyses, SAS programmers often find it necessary to calculate differences between numeric variables that exist in different data sets. There are various methods in SAS of preparing your data to facilitate comparisons of numeric values. This paper briefly explores three methods of processing, including data set concatenation, match-merging, and the often overlooked, but powerful, PROC COMPARE |
proc step, proc compare, proc sql | source | 6 |
| 24 | Data Mining of Dental Information | Christiana Petrou | The purpose of this study is to examine standards of care in the Dental School of the University of Louisville. The issue of compliance on behalf of the patients is the central theme in this project. We will examine the relationship of visit intervals, treatment needs, and patient compliance. We will test hypotheses such as whether treatments vary by clinic group, or by entry point. We will examine the relationship of visit intervals, treatment needs and patient compliance. We will test hypotheses such as whether treatment schedules exist in the clinical database that will optimize patient compliance, and whether the compliance level varies by clinic group or by entry point. Another aim is to examine the relationship of patient demographics, including socio-economic status to compare to the level of compliance and to test the hypothesis that patients living in lower socio- economic neighborhoods will have a lower rate of compliance | histogram, clinical database | source | 7 |
| 25 | Data Step Interfaces with the Macro Facility | Toby Dunn | Traditionally when one thinks of how a Macro works within a program, the process is considered to be hierarchical in nature, i.e. the Macro compiles and executes before the DATA STEP compiles and executes. Primarily, this thought concept poses no problems, but it does however, hamper the ability to use DATA STEP variables with macros or even load DATA STEP values into a macro variable. Lucky for us SAS has a whole suite of functions that allows the DATA STEP to interact with the Macro facility at DATA STEP execution. This paper will explore cover the uses and possible problems when using the following DATA STEP interfaces: Call Execute, Resolve, Call Symdel, Symexist, SymgetN, SymGlobl, Symlocal, Call Symput, Call SymputN, and Call SymputX. The intended audience is intermediate to advanced SAS programmers |
macro variable, call symput, macro facility, symbol table, call execute, character variable, call symputx, global symbol table, proc step, local symbol table, cpu time, macro call, put statement, title statement, macro definition, data step, missing value, proc print, run, macro quoting function, proc sql, character functions | source | 17 |
| 26 | Data Warehouse Implementation: Where We Are 1 Year Later | Evangeline Collado | There is a continuing demand across the higher education sector for increased extraction and analysis of university data to facilitate strategic decision-making and management of university programs and activities. This paper builds on last year's presentation and describes how data validation of imported warehouse data was completed, the conversion of existing SAS reporting applications to utilize warehouse data, and how additional SAS applications such as SAS Enterprise Guide, Information Map Studio, and Web Report Studio have been integrated to provide the university user community access to strategic performance measurement, evaluation, forecasting and decision- making | sas enterprise guide, data warehouse, data cleaning | source | 8 |
| 27 | Demystifying the SAS Excel Libname Engine - A Practical Guide | Paul A. Choate, Carol A. Martell |
This paper is a "how-to" guide exploring the SAS v9 EXCEL LIBNAME engine. It focuses on the application of the EXCEL engine including an introduction and some suggestions on its use. The practical advantages and shortcomings of the engine are discussed. Readers will learn how to use the LIBNAME statement to populate and update pivot tables and charts as well as other pre-formatted workbook objects. Essential topics in EXCEL, such as named ranges are also covered. Techniques in using SAS for renaming, copying, and moving EXCEL workbooks, worksheets, and ranges will also be mentioned. SAS v9.13 and EXCEL 2002 and above are used. SAS/ACCESS software for PC files is required to use the EXCEL LIBNAME engine |
excel, name range list, libname engine | source | 8 |
| 28 | Demystifying the SAS Macro Facility - by Example | Harry Droogendyk | The SAS macro facility enables you to apply a wealth of useful, uncomplicated, real-world solutions to enhance your coding pleasure, reduce coding effort, and minimize error. As your business applications inevitably become more complex, the SAS macro facility is indispensable to: reduce code repetition increase control over program execution minimize manual intervention create modular code. Unfortunately, the SAS macro facility is often perceived as confusing, difficult to use, and only really comprehensible by a few long-time macro masochists. This presentation removes the mystery of macros and provides coding tips, macro solutions, and methodologies you can take away and implement immediately | macro variable, macro definition, macro facility, macro put, proc sql, macro loop, date variable, symbol table, proc step, if-then-else, keyword parameter, %macro parameters, macro trigger, do loop, put statement, macro parameter, &variable, character functions, in=, macro function, macro call, sas 9, %if-%then-%else | source | 14 |
| 29 | Designing an Application with Business Intelligence | Brian Deitch | Business intelligence (BI) broadly refers to Inform ation Technology (IT) that is tailored to help staff make better business decisions. At the Federal Deposit Insura nce Corporation (FDIC), SAS/AF and Base SAS Release 8.2 are combined in a single application to allow user s to query and report information that would other wise require considerable IT skills to produce. This paper will illustrate how the application integrates these products to provide staff with BI capabilities |
proc sql, where statement, macro variable, order by, out=, business intelligence, create table, macro call, macro definition, temporary dataset | source | 19 |
| 30 | Designing Information-Service Products: A Hierarchical Bayesian Approach | Nan-Ting Chou | Most methods used to analyze choice-based conjoint data combine data for all participants. One of the weaknesses in analyzing data this way is that it could obscure important individual aspects of the data. Hierarchical Bayes Estimation is one analysis of estimating individual part-worths (how each individual values various attributes of a product). This method can reasonably estimate individual part-worths even with relatively limited information from each respondent. This paper introduces the Hierarchical Bayes Estimation, codes this algorithm in SAS IML, and conducts a choice-based conjoint analysis. Using a proprietary data from a marketing survey, we find customers value various attributes of an "information service" product differently. The results of the analysis help the firm design optimal packaging and pricing strategies |
sample, logistic regression, posterior probability, covariance, estimate | source | 9 |
| 31 | Detection and Quantification of Asymmetric Peaks | Carry W. Croghan, Ronald W. Williams |
One of the goals of a recent U.S. Environmental Protection Agency air pollution study was to relate the participants' activities to their exposures to particulate matter (PM) during their routine activities. PM concentration data were collected continuously with a real-time monitor, downloaded daily in CSV format and concatenated using AWK. Human activity diary information was collected via pen and paper and recovered using scannable decoding software (TeleForm). All data were converted into SAS. The asymmetric response peaks of the particulate matter concentrations made systematic detection and analysis of the area under their respective curves problematic. To overcome this problem, a program was written to locate each peak and generate an integrated value for its response area. Data were smoothed using a running average, inflection points were identified relative to the start and stoppage of each peak, and a moving baseline calculated |
auc, lag function, binary variable, moving average, sample | source | 13 |
| 32 | DP06 SAS Graph: Introduction to the World of Boxplots | Brian Spruell | Boxplots provide a graphical representation of a data's distribution. Every elementary statistical course includes an introduction to the construction and use of boxplots. Although boxplots prove to be quite useful they tend to be somewhat tedious to create. Thankfully, SAS graph comes equipped with the ability to generate boxplots. This paper will serve as an introduction to SAS graph boxplots. It will show several techniques the author has learned to manipulate SAS into generating a boxplot to conform to user specifications. Some topics covered in this paper include displaying several boxplots on one graph, median connectors, and horizontal boxplots. The paper will also demonstrate modifying a boxplot with annotate | box plot, proc gplot | source | 18 |
| 33 | Dup, Dedup, DUPOUT - New in PROC SORT | Heidi Markovitz | This paper presents the new DUPOUT option of PROC SORT and discusses the art of identifying and removing duplicates from data. It also discusses related SORT options and alternate methods of de-duping |
proc sort, proc step, proc sql, proc print, proc freq | source | 5 |
| 34 | Effect Modification Investigation Using SAS - A Model Building Exercise | Vanessa Bundy, Paule Barbeau, Maribeth H. Johnson |
The positive association of adiposity with insulin and negative association with adiponectin have been documented along with evidence that adiponectin and insulin are inversely associated. The purpose of this study was to determine the influence of adiponectin on insulin and its potential to modify the relationship between insulin and percent body fat (%BF) in 441 black and white 14-19 y olds. An exercise in model building will be presented showing the progression from a model of the insulin and %BF relationship to the addition of the modification variable of adiponectin. Statistical graphics will be used to help understand t he nature of the relationships am ong the variables. Results show a significant %BF*adiponectin interaction such that the positive relationship between %BF and insulin was attenuated in those with higher %BF and higher adiponectin. These findings sugges t that higher adiponectin levels may be protective to individuals with high %BF by increasing glucose tolerance | proc step, response variable, correlation, proc glm, proc univariate, sample, interval variable, predictor variable, proc sgplot, proc genmod, regression analysis | source | 10 |
| 35 | Effective Forecast Visualization With SAS/GRAPH | Effective Forecast Visualization | A statistical forecast is useless without sharp, attractive and informative graphics to present it. It is really much easier to produce such graphs in SAS than by exporting the data to EXCEL and using EXCEL charts. This case study demonstrates this simplicity using a few macros that make it possible to generate production quality forecast, confidence interval and other forecast-specific visualizations for appropriate SAS procedures. Methods for dealing with odd date intervals, such as five-day weeks, and usefully displaying difficult DATETIME axis values are explored. The annotate facility is used to help with displaying model and additional date information. A method for displaying confidence intervals as regions is shown as well as a way to produce separate regions for different types of data. Use of SYMBOL, AXIS and LEGEND statements is discussed along with details for using fonts, colors and lines to make the graphics look magazine worthy |
time series analysis, confidence interval, proc step, proc gplot, macro variable | source | 12 |
| 36 | ET06 DATALINES, Sequential Files, CSV, HTML and More - Using INFILE and INPUT Statements to Introduce External Data into the SAS System | Andrew T. Kuligowski | The SAS System has numerous capabilities to store, analyze, report, and present data. However, those features are useless unless that data is stored in, or can be accessed by, the SAS System. This presentation is designed to review the INFILE and IN PUT statements. It has been set up as a series of examples, each building on the other, rather than a me re recitation of the options as documented in the manual. These examples will include various data sour ces, including DATALINES, sequential files, CSV files, and HTML files. GETTING STARTED - BASIC INFILE / INPUT with DATALINES In order to bring data from an extern al source into your SAS session, the user must provide the answers to a couple of simple questions: Where is the data, and what does it look like? The INFILE statement will define the data source and provide a few tidbits of information regarding its form, while the INPUT statement will define the format of the data to be processed |
input statement, infile statement, excel, pointer control, proc print, proc step, filename statement, length statement, list input, variable, character variable, missing value, proc format, run, out= | source | 18 |
| 37 | Exploring DICTIONARY Tables and SASHELP Views | Kirk Paul Lafler | SAS users can quickly and conveniently obtain useful information about their SAS session with a number of read - only SAS data views called DICTIONARY tables or SASHELP views. At any time during a SAS session , information about currently defined system options, libnames, table names, column names and attributes, formats, indexes, and more can be accessed and captured . This paper explores the purpose of DICTIONARY tables and views, how they are accessed, and what information is available to SAS users. Attendees will learn how these important tables and views can be accessed and applied using real-world scenarios | dictionary tables, proc sql, proc step, sas library, options statement, select | source | 6 |
| 38 | Exploring SAS Generation Data Sets | Kirk Paul Lafler | Users have at their disposal a unique and powerful feature for retaining his torical copies of SAS data sets . Th is collection of copied generation data sets, representing versions of the same data set consists of a root member name and a unique version number , is aptly referred to as a generation group. This p resentation explores the power associated with generation dat a sets by showing users their purpose, how they are created and maintained, the approach used for accessing a specific version of a generation group , as well as other usefu l techniques. Simple coding examples will be illustrated to reinforce concept and application. Page 4 Copyright 2004-2005 by Software Intelligence Corporation Page 5 Copyright 2004-2005 by Software Intelligence Corporation | proc step, proc print | source | 10 |
| 39 | FORMAT FESTIVAL - An Introduction to SAS FORMATS and INFORMATS | David Maddox | FORMATS provide an instruction or template that SAS uses to output data values. They can be used to control the written appearance , or, in some cases, to group data values for analysis. INFORMATS, conversely, provide an instruction or template for reading data values. Both constructs add some powerful capabilities to the software, and these capabilities are available to novice and advanced SAS programmers alike. This workshop will focus on: - The various types of FORMATS and INFORMATS - Uses of FORMATS and INFORMATS - Creating your own FORMATS and INFORMATS In addition, we will look at some 'not so obvious' uses that are sure to make life easier in certain cases. We'll also take a look at Version 9 enhancements. This workshop is primarily for those just beginning to use SAS, but intermediate programmers may find it useful as well | proc step, proc format, sysdate9, attrib statement, input statement, put statement, date variable, macro function | source | 7 |
| 40 | Gene Expression Profiling of DNA Microarray Data using Association rule and Structural Equation Modeling | Mussie A. Tesfamicael | The purpose of this study is to use structural equation modeling and association rules to extract meaningful information from bioinformatics data for the purpose of constructing gene networks. Structural equation modeling is widely used in the social sciences to model cause and effect relationships, while association rules are used widely in the area of retail marketing to find items that are related. Both of these methods can be applied to analyze microarray expression data as well. Structural equation modeling in SAS/STAT, or SEM (PROC CALIS), explains a cause and effect relationship between variables, in this case genes. Association Rules in Enterprise Miner are useful to determine an important set of rules for a dataset with high values of support and confidence. Association rules will determine the direction of the association between gene markers, so that differentially expressed genes can be analyzed using SEM |
association rules, proc calis, correlation, chi-square test, goodness of fit, covariance, sample, data mining, residual, predictor variable, sample size, market basket analysis, proc step | source | 7 |
| 41 | Generating Fantastic Graphs the Quick and Easy Way with Enterprise Guide | Ben Cochran | When Enterprise Guide (EG) first came out, someone described it as SAS/ASSIST on steroids. While there is so much you can do with the point and click, drag and drop interface of EG, this paper focuses only on creating graphical output. A step by step approach is taken to create, then greatly modify and enhance the appearance of these graphs. This paper shows the user that it is very easy to harness the strength of EG to create superior results. Was EG ever on steroids? Let the user decide |
box plot, bar chart | source | 5 |
| 42 | Generating Multivariate Normal Data by Using PROC IML | Lingling Han | Methods of generating multivariate normal data are discussed, statistical and graphic methods are used to check the generated data sets. Codes of both non-macro version and macro version are provided, some SAS "tricks" are provided as well | covariance, proc iml, proc step, normal distribution, standard deviation, correlation | source | 6 |
| 43 | Generating Participant Specific Figures Using SAS Graphic Procedures | Carry W. Croghan, Marsha Morgan |
An important part of our research at the U.S. Environmental Protection Agency (EPA) is to effectively communicate the results from observational studies to the study participants. This can be particularly challenging where participants are from different socio-economic backgrounds. For our present study, we developed a short, descriptive report that was easy to understand by over 250 participants from low-, middle-, and high-income backgrounds. In each report, we present the chemical concentrations that were found at the participant's home compared to all homes in the study. The most effective way we found was to present the participant's study results using colorized figures. We will discuss the complex process that involved using SAS procedures gmap and greplay, and macro coding, to develop the figures for the reports | proc step, proc gmap, sample, proc greplay, proc sql, macro loop, proc means, proc sgplot, proc rank | source | 17 |
| 44 | Graphics for Statistical Concepts and Data Display | David A. Dickey | GRAPHICS CAN SERVE TO PRESENT RESULTS TO CLIENTS, TO EXPLAIN STATISTICAL PRINCIPLES, AND CAN ALSO REVEAL FEATURES IN A DATA SET THAT MAY NOT BE EVIDENT IN ROUTINE STATISTICAL ANALYSIS. THIS PAPER CONSISTS OF EXAMPLES IN WHICH I HAVE FOUND GRAPHICS TO BE HELPFUL. SOME OF THE PROGRAMS THAT CREATE THE GRAPHS ARE LONG SO RATHER THAN INCLUDING THEM, I PRESENT THE MOTIVATING SETTINGS, ANY PARTICULARALY RELEVANT CODE FEATURES, AND MOST IMPORTANTLY THE RESUTLING GRAPHS. THE INTENT IS MORE TO MOTIVATE USING SAS/GRAPH |
proc step, normal distribution, interquartile range, box plot, regression analysis, histogram, proc mixed, sample, compound symmetry, proc greplay, covariance, outlier | source | 19 |
| 45 | 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 pose 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 papers intended audience is beginner and intermediate SAS programmers | macro function, macro facility, sysdate9, macro variable, macro put, data step | source | 5 |
| 46 | Hexadecimals in SAS: Have You Been Hexed? | Imelda C. Go | For one reason or another, nonalphabetic characters, such as a t ab, may unexpectedly appear in a raw data file where only alphabetic characters are expected. This paper discusse s how to determine which nonalphabetic characters have contaminated the data file and how to eliminate them during data processing. The numbers we use for daily life are in the decimal system wi th a base 10. Numbers in the decimal system are sums of powers of 10. For example, 821 = 8(102) + 2(101) + 1(100) = 800 + 20 + 1. There are 10 numerals used in the decimal system: 0 through 9. Binary numbers play a major role in the digital age becaus e they can be easily represented electrically through charges (pulses of high and low voltage). This is much simpler than r epresenting ten numerals as those used in the decimal system. Consequently, the design of computer circui try and digital data transmission are simpler. There are 2 symbols used in the binary system: 0 and 1 | proc freq, compress function | source | 4 |
| 47 | How Do I Look it Up If I Cannot Spell It: An Introduction to SAS Dictionary Tables | Peter W. Eberhardt | SAS maintains a wealth of information about the active SAS session, including information on libraries, tables, files and system options; this information is contained in the Dictionary Tables. Understanding and using these tables will help you build interactive and dynamic applications. Unfortunately, Dictionary Tables are often considered an 'Advanced' topic to SAS programmers. This paper will help novice and intermediate SAS programmers get started with their mastery of the Dictionary tables. Ever needed a list of the tables (datasets) in a library? How about the columns (variables) in a table? Need to make sure you reset any titles after you run a report? Got some pesky warning messages in your SAS log you would like to clean up? Sure, you can look them up in the table and column properties in the explorer window. Or you can run a PROC CONTENTS and check the listing. And of course you can ignore the warnings and errors in the SAS log since they 'almost always appear' |
dictionary tables, proc sql, proc step, sas log, sas programmer | source | 11 |
| 48 | How to Implement the One-Time Methodology | Mark Tabladillo | This paper demonstrates how to implement the One-Time Methodology, a way for application developers to manage, validate, and process data with a SAS/AF application. This methodology allows developers to plan an application's data sources based on two factors - whether the user will modify the data, and whether there is a "large" amount of data to store. This paper describes an example of how to plan the data sources, and guidelines on how to integrate the resulting distinct categories (enumerated constants, frame variables, standardized and customized SAS datasets) in a SAS/AF application. The principles apply to all SAS applications development (including SAS Macro). Extensive SAS/AF development experience is not required, though it will help to have had exposure to the basics of SAS/AF and SCL |
dataset, excel, character variable, macro variable | source | 8 |
| 49 | How to Implement the SAS Data Step Hash Object | Bill Parman | In SAS Version 9.1, the DATA STEP hash object became available. It is safe to say that one of its most valuable features is that of efficient searching of memory-resident data. Because a complete examination of the SAS DATA STEP hash object far exceeds the 20-minute time frame allowed for this presentation, this paper will focus primarily on the syntax required to declare and search a SAS DATA STEP hash table. Two examples are provided. The first example illustrates the implementation of the DATA STEP hash object with a simple key and single return value. The second example illustrates the implementation of the DATA STEP hash object with a composite key and multiple return values. The objective of this paper is to provide the reader with sufficient information, so that he/she can return to their workstation and implement the SAS DATA STEP hash object within the context of table searching |
hash table, sysrc, numeric variable, length statement, composite key, transaction data, proc format | source | 7 |
| 50 | How to Think Through the SAS DATA Step | H. Ian Whitlock | You are relatively new to SAS and interested in writing SAS code. You have probably written DATA STEP code; some works, some doesn't, sometimes you know why, and sometimes you don't. If this describes you, then this talk is for you. You are a programmer, new to SAS. The DATA STEP language looks similar to PL1 and has some characteristics that look like languages you are familiar with. However, after learning the syntax your code feels awkward and you feel like you are fighting the system. The DATA STEP has been very well designed, but it is different, and it is worth learning how it works, if you want elegant code, this talk is for you. Even people who have been SAS programmers who have been working with SAS for years should find, an "Ah ha, so that's why", in this talk. SAS is Step Oriented Before looking at the DATA STEP in detail, it would be good to take an overall look at SAS. SAS is a step oriented language rather than a routine oriented language |
set statement, dataset, infile statement, input statement, sas programmer, character variable, filename statement, length statement, merge statement, _eof_, decimal, libname statement, missing value, by group processing, if-then-else, sas output, trailing @, put statement, array, formatted input, retain, proc step | source | 20 |
| 51 | Individual Growth Analysis Using PROC MIXED | Individual Growth | Individual growth models are designed for exploring longitudinal data on individuals over time. PROC MIXED allows the growth parameters for each individual to be examined as random effects in the model. Individual-level covariates can be entered into the model as fixed effects to determine their impact on the dependent variable alone and in interaction with the growth parameters. The structure of the variance-covariance matrix of the repeated measurements can also be examined and entered into the model. A model building exercise will be demonstrated using up to eight systolic blood pressure measurements of youths aged 7-22 |
proc mixed, correlation, covariance, fixed effects, group by, covariance structure, estimate, longitudinal data, proc step, likelihood function, proc freq | source | 10 |
| 52 | Journeymen's Tools: Data Review Macro FreqAll: Using Proc SQL List Processing with Dictionary.Columns to Eliminate Macro Do Loops | Ronald J. Fehd | The SAS R⃝ macro language is simple, yet powerful. List Processing with PROC SQL is also simple, yet powerful. This paper provides a data review macro FreqAll which illustrates using PROC SQL reading Dictionary .Columns to replace macro %do loops. Expected audience is advanced users, and macro programmers. Keywords: data review, dynamic programming, list processing, do loop, macro, SQL |
proc step, proc sql, macro variable, macro loop, do loop, proc freq, proc append, select, proc print, macro call, macro definition, macro put, %if-%then-%else | source | 9 |
| 53 | Many to One Using a SAS DATA Step and PROC MEANS | Jennifer L. Waller | Medical claims data from Medicaid, Medicare, or private insurance companies contain information regarding medical procedures, diagnoses, prescriptions, and more. When using these data, often a single individual will have multiple claims within a given time period of data extraction. To add to this complexity, each claim can have up to 7 diagnosis fields and 3 procedure fields. Obtaining a single observation regarding whether an individual had a diagnosis or a procedure requires examining many variables within a single claim observation and then examining the many claims that pertain to the individual. One might think that determining an individual's diagnoses and procedures a daunting task. However, there is an easy solution. Using ARRAY's and DO loops in the DATA STEP and then PROC MEANS, data across many variables and many observations for each individual can be combined into a single observation to determine diagnosis and comorbidity status |
do loop, insurance claims, proc step, do over, array | source | 9 |
| 54 | Master Data Management: What It Is and Why You Should Care | John E. Bentley | By early 2006, Master Data Management (MDM) emerged as one of the next big things in enterprise information integration and early-adopter organizations had already successfully implemented it. Companies who like 'proven technology' are not moving as fast but by mid-2006 MDM had certainly moved into the IT mainstream. The concept of system of record has been around for years in the data warehousing field, and data cleaning is an integral part of extract- transform-load processing. So how is MDM different? Is it really something new or is it an old concept marketed in a new package? This paper will explain what MDM is, suggest some approaches and challenges to implementing it, and suggest how SAS can help make it happen | data validation rules, data profiling, data governance, data warehouse, master data management | source | 5 |
| 55 | MLM_SIM: A SAS Macro for the Statistical Investigation of Mixed Models | Jeffrey D. Kromrey | Multilevel modeling is becoming an increas ingly popular statistical method. Its popularity is largely due to the model's ability to accommodate hierarchical or nested data, overcoming some of the limitations of the more traditional models. However, a variety of statistical ques tions about the behavior of multilevel m odels (e.g., power and sample size, the impact of measurement error, and the effect of multicollinearity) re main unanswered. Programming was created to address these issues through simulation. This paper presents a SAS simulation program that creates samples of multilevel data and allows specification of sample size, number of regresso rs, reliability of regressors, and correlation between regressors. The program cons tructs multilevel models using simu lated data as input s, and outputs the parameter estimates and probabilities obt ained from PROC MIXED. The result ing parameter estimates are then evaluated for accuracy |
sample, proc mixed, correlation, proc step, confidence interval, estimate, sample size, fixed effects, sas output, power analysis, monte carlo, macro definition | source | 15 |
| 56 | Modifying The LogParse PassInfo Macro to Provide a Link between Product Usage in Rtrace Log and Time Used in Job Log | Ronald J. Fehd | This paper examines the issues of building a SAS usage database by modifying macros used to read the job and rtrace logs to provide a common key in each log for joining the job times with the products used. Expected audience is advanced users, macro programmers, site and server administrators. Readers are expected to be familiar with issues of configuration and running programs as a batch process. Keywords: altlog log logparse passinfo rtrace rtraceloc . Contents Database Theory 2 The LogParse Suite 2 The Rtrace Suite 2 Accuracy of DATETIME 3 Modifying SASv?.cfg 4 Modifying Autoexec.sas 5 Modifying PassInfo 5 Modifying LogParse 6 Modifying RTRACERD 7 A Demonstration Suite 7 Merging Time and Product Usage 10 |
proc step, macro put, proc print, proc sql, macro variable, cpu time, proc options, %if-%then-%else | source | 11 |
| 57 | My ODS - Real-World Uses of Modifying Table Templates | Steve James | Up until SAS Version 8, you pretty much had to take procedure output the way the SAS System gave it to you. If you wanted it to look different you had to take the extra steps of storing the output somewhere and then modifying it to suit your needs. And you had to do this in every program that used the procedure. Using ODS you now can have modified procedure output without the extra steps. This is done by modifying the table template associated with the procedure. You modify the table template once and the output is the way you define it every time you use it. This paper demonstrates three examples of changing procedure output. It shows how to make PROC FREQ display frequency counts with commas for frequencies over 1,000 as well as a percentage sign for the percentages. The paper will also show two ways to consolidate PROC CONTENTS output |
proc step, proc contents, proc freq, macro variable, dataset, proc template, sas base, output delivery system | source | 15 |
| 58 | Now - That's Your Style!!!!! | Chevell T. Parker | This paper discusses how to use styles to enhance output or to overcome problems that are frequently encountered using the Output Delivery System (ODS). Solutions to these problems involve methods that use styles and TAGSETS in the TEMPLATE procedure, cascading style sheets (CSS), scripting, the Extensible Stylesheet Language (XSL), and more. Other topics that are addressed include handling page breaks in HTML; preventing truncated printed HTML output; adding headers, footers, page margins, and repeating headers; printing in landscape with the ODS HTML destination; and fine-tuning your printed HTML |
output delivery system, proc template, proc step, excel | source | 24 |
| 59 | ODS: Odious or Not | Janet E. Stuelpner | For years you have been producing a listing for output from your procedures and it has been just what management wanted and needed. However, now, they want the output in a form at that they can share with others. We all know that t he ordinary listing can be quite limiting. So, now we have the ability with the Output Delivery System (ODS) to make our output fancier and more user-friendly. But how do we do it? What do we need to know about ODS in order to produce output that our managers will read. This presentation will give you the basics of ODS. It w ill take you from the simple commands to the changes that are needed to produce different types of output and output files |
output delivery system, proc freq | source | 8 |
| 60 | One Method for Improving Quality of Data in Longitudinal Study | Milorad Stojanovic, Ruth Heuer |
Data quality is of utmost importance in ev ery project. The quality of identification variables (key variables) is especially important in longitudinal studies in order to match individuals correctly across years which, in turn, allows for analysis over time. In improving quality of data, all av ailable cost effective sources were used: data from previous years, financial aid data, collections of last and first names. Cleaning process used seve ral stages to improve cases with no SSN and imprecise last name, first name, and date of birth. Macro code was developed for repetitive tasks during matching process | data cleaning, missing value | source | 6 |
| 61 | Oracle's RANK() Smells Good Using RANK() in Pass-through Queries | Richard A. DeVenezia | PROC SQL in SAS software is a powerful tool. For many years SAS users have enjoyed an automatic self join that occurs when an groupwise aggregate function is used in a select clause. In plainer terms, you can group by one set of variables and select rows from the group using a different set of variables. The ORACLE function RANK() (PARTION BY ... ORDER BY ...) operates in a similar way. You can use this function in your pass-through queries to speed up processing and simplify the codebase that has to be maintained. A four way join will be shown demonstrating the utility of RANK(). Tables Each table has a primary key named "ID", and may have columns named "{Table}_ID" that are foreign keyed to table {Table}. For example column B_ID would be foreign keyed to column ID of table B. The four tables are as follows: Table A Table A maintains a list of unique names and their corresponding ids |
proc sql, proc step | source | 5 |
| 62 | PC Tips for Mainframers | Claudine Lougee | Do you ever need to access, change, view or edit data on the mainframe? Do you not like the mainframe or like logging onto the OS/390 environment for fear of getting "lost"? There are ways to help you avoid writing JCL code or submitting a job that will sit in queue waiting for CPU time. Even if you are an expert mainframe user, there are tips and tricks in the PC environment that will make your life easier | autocall macro, proc step | source | 3 |
| 63 | Perl Regular Expressions in SAS | Kevin McGowan | Many programmers use regular expressions to make their programs more efficient, especially when the program is used to process large amounts of text format data. One popular type of regular expressions are Perl regular expressions. Starting with version 8 of SAS, the power of Perl regular expressions is now available to SAS programmers. This paper provides a short introduction to Perl regular expressions in SAS. This paper assumes the reader already has a basic knowledge of SAS DATA STEP programming and some knowledge about how to create regular expressions |
sas programmer, data step, data cleaning | source | 7 |
| 64 | PO04 PUB_BIAS: A SAS Macro for Detecting | Publication Bias, Gianna Rendina-Gobioff, Jeffrey D. Kromrey |
Publication bias is one threat to va lidity that researchers conducting meta -analysis studies confront. Although statistical methods for detecting publicat ion bias have surfaced in the literature (e.g., Begg Rank Correlation, Egger Regression, Funnel Plot Regression, and Trim & Fill), many researchers rely on visual inspection of funnel plots. This program was created to provide meta-anal ysts with the ability to implement st atistical methods to detect publication bias. Statistical information from the co rpus of studies (i.e., effect sizes and sa mple sizes) is input in this SAS macro and analyzed for potential publication bias using the above menti oned statistical methods. In addition to the p-value associated with each detection method the program output provi des the estimated mean effect size and random effects variance component | effect size, sample size, sample, regression analysis, spearman correlation, correlation, treatment effect, proc calis, forest plot, confidence interval, proc mixed, weighted least squares, dataset | source | 17 |
| 65 | PO12 A Case Study in Deploying SAS Programs on Unix Using Windows | Samuel T. Croker | This case study explores using existing SAS programs, an x-windows telnet client and a Microsoft Access based interface to deploy complex applications requiring user interaction when AF, Intrnet or FSP are not available. In this case the x-windows-telnet client is used programmatically to build a bridge between a Microsoft Access front-end and the SAS-DB2 server. The data is stored in DB2 and returned to the user via linked Access tables. Since no data is stored in Access, the front end is small in size and can be deployed over a network easily. Topics covered are building the Windows to Unix bridge, dealing with security issues, retaining users' logs and output, building the user interface and providing SAS interactivity using the WINDOW and %WINDOW commands | proc step, macro definition | source | 4 |
| 66 | Potential Duplicate HIV/AIDS Patient Names Across States. A CDC Puzzle | Potential Duplicate | New HIV/AIDS patients "declare" their status when they test positive. One patient may do so at different institutions within one state or across states. The Center for Disease Control (CDC) centralizes new HIV/AIDS patient lists and ultimately creates a single list for the entire country. It is seemingly easy to remove duplicates using the SORT procedure with the NODUPKEY option or the SOUNDS LIKE operator of the SQL procedure when joining two tables. There are three problems, however: errors in name spelling are frequent; there are 1,225 ways of selecting 2 states out of 50; a pair-wise approach would not remove duplicates within each list. It makes sense to concatenate all new patient lists into a single file and then attempt to uncover duplicates. This paper № PO18 suggests a simple top-down duplicate name identification process from a single list using mainly lookup arrays and the DATA STEP. It also introduces the reader to effective process automation |
sample, proc sort, automatic variable, macro definition, proc sql, macro facility | source | 10 |
| 67 | Predictive Modeling to Analyze Hospital Charges Versus Reimbursements | Chakib Battioui | The purpose of this study is to examine the use of statistical and data mining tools to investigate the funding mechanism for healthcare providers. The specific objective is to examine the relationship between the total charges billed by a hospital compared to the payments received for patient care. Currently, hospitals receive a negotiated payment for a particular diagnosis. The payment is based upon an average cost with local conditions taken into consideration. However, some patients who are severely ill will cost considerably more than average. The question becomes whether hospitals can afford to care for such patients, or whether they are forced to cost-shift to stay in business. Simulations about the total charges from different distributions were examined to investigate the payment structure. Predictive modeling was used to examine the different distributions of the total charges compared to reimbursements | proc hpsplit, proc mixed, %if-%then-%else, data mining, normal distribution, proc glm, proc genmod, proc glimmix, response variable | source | 12 |
| 68 | 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 |
| 69 | PROC SQL for DATA Step Die-Hards | Christianna S. Williams | PROC SQL can be rather intimidating for those who have learned SAS data management techniques exclusively using the DATA STEP. However, when it comes to data manipulation, SAS often provides more than one method to achieve the same result, and SQL provides another valuable tool to have in one's repertoire. Further, Structured Query Language is implemented in many widely used relational database systems with which SAS may interface, so it is a worthwhile skill to have from that perspective as well. This tutorial will present a series of increasingly complex examples. In each case I will demonstrate the DATA STEP method with which users are probably already familiar, followed by SQL code that will accomplish the same data manipulation |
proc sql, proc step, create table, group by, order by, inner join, where statement, filtering, subsetting if, by group processing, data governance, proc means, outlier | source | 17 |
| 70 | PROC SQL, to collapse many-to-one relationship | Tadesse Haileyesus | Many researchers, especially those working with complex data sets are often challenged with collapsing and aggregating their data. The most frequent question is how to collapse or combine multiple relationships to get aggregates at a respondent level. In this paper, Structured Query Language (SQL) procedure will be utilized to communicate with a database and collapse many to one relationship. SQL is a powerful tool that talks to a relational database management system. Although SQL syntax is relatively simple and compact it is a powerful procedure for creating, combining and managing data. The SQL procedure collapses observations in an order defined by the user, keeps a record of all collapsed information, and retains the original and the aggregated record values. This paper will describe real-world applications as well as tips and techniques on effective uses so that others can adapt and put them into practice. KEYWORDS: collapse, combine, aggregate, SQL |
proc sql, proc step | source | 4 |
| 71 | Putting SAS Dataset Variable Names into a Macro Variable | Stephanie R. Thompson | Have you ever wanted to use the variable names from a SAS dataset in a macro variable? Maybe you need all or just some of the variable names to be useable in keep statements, select statements, or some other parts of your program. There are several ways to obtain a listing of the variable names in a SAS dataset and three options will be compared and contrasted: DICTIONARY tables, SASHELP.VCOLUMS, and PROC CONTENTS. Some people prefer to use DICTIONARY tables rather than process the dataset headers through PROC CONTENTS. However, use of the DICTIONARY tables or the related SASHELP.VCOLUMN view gives rise to problems of case sensitivity and variable specification that can be easily handled by using PROC CONTENTS to process the header information. When using PROC CONTENTS to output variable names in a dataset, we need to take care that we are not affecting other processes. This paper will look at methods to assure that this doesn't happen |
proc step, proc contents, macro variable, dictionary tables, proc sql, dataset, macro put, select, keep statement | source | 4 |
| 72 | Release 2.1 of SAS Add-In for Microsoft Office - Bringing Microsoft PowerPoint into the Mix | Jennifer Bradshaw Clegg | Release 2.1 of SAS Add-In for Microsoft Office builds on t he functionality introduced in release 1.3 of SAS Add-In for Microsoft Office. With release 2.1, Microsoft PowerPoint users can access the power of SAS and create presentations with refreshable SAS content. SAS data acce ss support in Microsoft EXCEL is greatly expanded in release 2.1; users can open SAS data sources of any size, eit her directly into worksheets or into Microsoft EXCEL PivotTables, and users can easily create a SAS data set from Microsoft EXCEL data. For reporting, release 2.1 facilitates formatting SAS reports using the Microsoft Office application, and intermixing SAS content with other content in Microsoft EXCEL |
excel, dataset, sas enterprise guide, xls, sas programming, proc sql | source | 20 |
| 73 | Return of the Codes: SAS', Windows', and Your's | Mark Tabladillo | Robust applications participate in the give-and-take discussion between commands and return codes. This presentation encourages applications developers to implement comprehensive return code processing. Three distinct categories are considered in this presentation. First, we consider return codes from SAS. Second, we consider return codes from Windows (as an example of operating system return codes). Third, we discuss development principles for writing your own return messages. The examples draw from SAS/AF, but the three return code categories and authoring principles affect all SAS applications development (including robust SAS Macro development) |
sysrc, put statement | source | 10 |
| 74 | SAS Abbreviations Are Your Friends; Use a Template Method to Code! | Elizabeth Ceranowski | Often, coders find themselves using the same procedures or sequence of procedures over and over again. It would be very useful to create a "shell" of a procedure or program that can be used to cut down on repetitive typing. (For example, to submit the generic code "PROC PRINT;run;"). This quick demonstration will show how to create/edit/use SAS Abbreviations to quickly interject code into the Enhanced Editor window in SAS for Windows |
proc step, proc report, tranwrd function | source | 6 |
| 75 | SAS Enterprise Guide for SAS Programmers March, 2006 | Stephen McDaniel | sas enterprise guide, sas base | source | 9 | |
| 76 | SAS MACROS: Tips, Techniques, and Examples | Andrew M. Traldi | Most SAS users are aware that SAS has a macro facility but might be unsure of how they can use it or are fearful that macros are too difficult. Although macros can be complex, they can be very helpful in writing general-purpose SAS programs; in some instances, they are absolutely critical to an application | macro variable, macro put, macro call, call symput, keyword parameter, %macro parameters, macro facility, macro definition, macro loop, macro parameter, proc step, sas base, %if-%then-%else, call symputx, if-then-else, proc sql | source | 21 |
| 77 | SAS Match Merges: The Driving Force behind a Web-Based Data Coding System | Barbara Felts, Wafa Handley, Chuchun Chien, Inga Allred |
Surveys often use open-ended questions to collect information that are not specifically covered in the questionnaire. These responses need to be numerically coded for analysis. The potential exists for a high volume of responses that will require coding. Consequently, there was a need to develop a system that would automatically utilize responses that had been previously processed in order to reduce the coder burden. We have developed a system to standardize the coding of the data online. This system relies on SAS Match Merges and Macros to build and use data dictionaries. It also allows for multiple analysts to code or review data throughout the collection period, thereby reducing the turnaround time. This paper will outline the major processes involved in this system including v8.2 SAS Macros, SAS Match Merge and SAS/ACCESS to ODBC drivers to store the data in SQL tables which are accessed by the Web-Based Data Coding System |
txt, proc sql, macro variable, dataset, data dictionary, proc step | source | 9 |
| 78 | SAS Programs for Extracting Data from LexisNexis Documents | Robert S. Matthews | Text files often contain data for multiple variables that are distinguished from one another by consistently used text strings that label and organize the data. Devising a programmatic solution for extracting these data from text files can require a significant time investment that may only be justified when the number of files is quite large. The approach we used to extract address information from over 100,000 text files may serve as an instructive and time-saving example for SAS users who desire a similar solution that ensures faster throughput and greater reliability than manual data extraction. To develop residential histories for subjects in a retrospective follow-up study of cancer incidence, we sought address information for each subject from the LexisNexis National Group Files database. We downloaded the search results from the LexisNexis website as Rich Text Format (RTF) files | dataset, txt | source | 10 |
| 79 | SAS Programs to Select Controls for Matched Case-Control Studies | Robert S. Matthews, Ilene K. Brill |
For epidemiologic matched case-control study desi gns, SAS programs were developed to match cases (persons with disease/event of in terest) to controls (comparison group of persons without disease/event of interest). Matched case-control studies contro l for confounding by introducing stratification in the design phase of a study. Cases are individually matched to a set of controls (1:n ratio); n can vary from 1 to the desired number of controls for each case. Numbers of matched controls may vary dependent on the available controls possessing matching criteria. Selection of matched controls requires cases and controls to have similar values for important conf ounding variables defined as the matching criteria. Types of matching variables included within thes e programs are gender, race, year of birth/age at outcome. The programs illustrate nested matched case -control study design where cases and controls are chosen from larger retrospec tive cohort study populations | follow-up period, in=, macro variable | source | 9 |
| 80 | SAS to Publishable Excel... Seamlessly - Using ODS, XML, and Other Tricks | Harry Droogendyk, Marje Fecht |
Do you have legacy "listing" reports that you want to publish easily in EXCEL? Do you currently output to EXCEL but dislike having to massage the output to get things just right? This hands-on workshop will introduce you to XML, and show you how to leverage the strengths of ODS to generate custom-formatted output in EXCEL. Topics include: · creating EXCEL files using DATA _NULL_ · using SAS's ODS ExcelXP TAGSETS to easily customize EXCEL document properties · using SAS to create CSV and XML data to feed EXCEL pivot tables This workshop will prepare you to use ODS for creating EXCEL reports that are ready to publish with minimal (or no) post-processing |
excel, ods excel, sas 9, by group processing | source | 21 |
| 81 | SC06 Sleepless in Wherever - Resolving Issues in Scheduled Jobs | Faron Kincheloe | Even with the capability of Windows scheduler or other utilities to schedule your SAS jobs to run automatically, life is not always a dream. Dataset names and variables that must be changed periodically along with perpetually growing log files can keep you awake at night. This paper discusses techniques to solve these problems using macro variables and various date formats. It will also discuss a method for time-stamping data when you have non- standard time periods. Perhaps you've lain awake at night worrying about whether your jobs completed successfully or maybe you worry about the effects of leaving your computer on all the time. This paper will describe a relatively simple way to send an e-mail message when a job fails and will show you how to automatically shut off your computer when your jobs finish running | macro variable, proc printto, macro function, proc step | source | 7 |
| 82 | See What You Are Missing: Finding Missing Data Records | Kim Truett | In relational databases, a common question asked of the database manager is "Are all records present in the database"? Ensuring that no database contains extra records and that each database contains the expected records can be a very time-consuming process. However, this verification step is critical, since missing data will be detected during any subsequent usage of the data. To facilitate this type of review, this paper presents a generic macro which uses a graphical representation of the data records present in the relational database. The macro produces one "grid per timepoint" indicating the presence or absence of records within every dataset. If at least one record is present, then the grid shows the actual number of records. Visual review of this grid allows for instant identification of extra and missing data | macro variable, relational database | source | 8 |
| 83 | Segmentation of Data Prior to Modeling | Gregg Weldon | In the early years of statistical modeling, a "one model fits all" for clients was commonplace. Thanks to increasing efficiencies in data storage and greater computing power, it is now economically feasible to build, code, and manage multiple models for a single client. This allows for a much greater level of accuracy in prediction and portfolio management. The question becomes how many models are optimal, and which models will give a client the best business results. This paper reviews a SAS program designed for detailed segmentation analysis. The results are easily transferred into a final report for review with the client | dpd60, insurance risk score, cluster analysis, days past due, past due | source | 7 |
| 84 | Selecting Variable Names into a Macro Variable Facilitates Data Analysis | Fenggang Peng | The PROC SQL select into is a powerful SAS tool. It can be used to generate one or more macro variables. The macro variable can include either all the values in a variable, all the variables in a dataset, or all the dataset names in a data library. The values in the macro variable can then be retrieved using %scan function, and referenced in title, footnote, DATA STEP, and procedure for data manipulation and data analysis. This paper will illustrate this technique by analyzing the real world data. Keywords: INTO clause, macro, SQL, and %scan function |
macro variable, proc step, proc sql, dictionary tables, character functions, select, proc freq, macro function | source | 4 |
| 85 | Service-Oriented Architectures - Going from Buzz to Business | Daniel Jahn | The big promise of Service-Oriented Architectures is their ability to solve business integration issues. This promise is based on applications coded to a common set of standards . Any application that can communicate with the standard can participate in the architecture. This paper examines how SAS applications can call and be called through Web Service standards including XML, SOAP, WSDL , WS-Security, and HTTP. Demonstrations include exposing a SAS program (Stored Process) in a Web Service | web service, sas enterprise guide | source | 9 |
| 86 | Six Cool Things You Can Do In Display Manager | Jenine Milum | Many people use Display Manager but don't realize how much work it can actually do for you. Display Manager can help you research data issues, write code for you, transform data to and from SAS, and even some things you probably shouldn't use. Learn a few tips to make your Display Manager experience more productive | proc step, dataset | source | 6 |
| 87 | Solving Jumble Puzzles Dictionaries, Hashes and Permutations | Richard A. DeVenezia | Many systems pass through a guilt point in the arc of their use. This point is reached when a vastly capable and highly tuned system is focused on a trivial or personal matter. You have definitely reached this point if the phrase "world's most expensive calculator" is bandied about in conversation. What should be said when a system that is the culmination of thousands of man years of development and testing is used to solve a morning puzzle? I'm not here to make that judgement -- instead I'll be solving the Jumble, a popular newspaper word puzzle. Along the way, you will see some fancy DATA Stepping, hash objects and permutation functions. The Puzzle JUMBLE, "THAT SCRAMBLED WORD GAME" by Henri Arnold and Mike Argirion is over 40 years old and appears in thousands of newspapers each day. Four scrambled words are presented to the reader. The circled letters of the unscrambled words form a scramble of the answer to a situation shown in a cartoon panel | hash table, dataset | source | 13 |
| 88 | Sorting ODS HTML Tables by Column Headers Using Javascript | Column Headers | ODS output can be used together with javascript to generate HTML tables that sort themselves on the client s ide when the user clicks on a column header. Sorttable.js is an already existing javascript that allows HTML tables to have sortable columns (http://www.kryogenix.org/code/browser/sorttable/). You need to do three things to adapt this javascript to SAS ODS output: (1) Create an ODS HTML table by PROC REPORT or PROC PRINT with a simple title and column names defined using the LABEL statement. (2) Use a DATA statement to incorporate into the ODS output HTML code that defines the class and creates a unique ID. (3) Store sorttable.js in the same folder as the ODS HTML table |
proc step, proc report, ods html, proc print, sample, output delivery system | source | 8 |
| 89 | ST09 Application of the Generalized Linear Model to the Prediction of Lung Cancer Survival | Andrew Karem | The study of cancer prognosis in patients is a crucial elem ent of the medical research field. The focus of this report is one such study: the first documented lung cancer trial in history. The data involved in this study were generated in a two-year period by the US Veterans Administration with the hopes of revealing patterns among patient survival statistics. The specific goal of this project was to determi ne whether survival could be adequately predicted based on other patient characteristics. In order to solve th is predictive task, the general and generalized linear models of regression were applied to the data. Potential effects were added and removed from models to enhance performance; following estimation of the optimal m odels, comparisons were made between the general and generalized approach with respect to the accuracy in prediction. A number of conclusions may be drawn from this study | proc glm, poisson distribution, proc genmod, interval variable, sample, regression analysis, normal distribution, data science, correlation, time series analysis | source | 18 |
| 90 | Stars and Models: How to Build and Maintain Star Schemas Using SAS Data Integration Server in SAS9 | Nancy A. Rausch | Star schemas are used in data warehouses as the primary storage mechanism for dimensional data that is to be queried efficiently. Star schemas are the final result of the extract, transform, and load (ETL) processes that are used in building the data warehouse. Efficiently building the star schema is important, especially as the data volumes that are required to be stored in the data warehouse increase. This paper describes how to use the SAS Data Integration Server, which is the follow-on, next generation product to the SAS ETL Server, to efficiently build and maintain star schema data structures. A number of techniques in the SAS Data Integration Server are explained. In addition, considerations for advanced data management and performance-based optimizations are discussed | dimension table, fact table, star schema, proc sql, scd type 2, data standard, surrogate key, txt, hash table, raw data, where statement, data merging, slowly changing dimension, proc step, data cleaning, cpu time, foreign key, key, lookup, parallel processing, unique key, natural key, composite key, dataset | source | 24 |
| 91 | Sudoku Puzzles - Using a Cube to Solve the Square | John R. Gerlach | A Sudoku puzzle consists of a 9x9 matrix into which several numbers, ranging from 1 to 9, have been placed leaving the majority of cells blank. The object of the puzzle is to complete the square such that each row, each column, and each 3x3 sub-matrix uses each digit only once. Simple rules to follow, indeed; yet, Sudoku poses a challenge that requires lots of patience and perseverance, and no math skills. This paper explains a SAS solution for solving Sudoku puzzles by using an abstract data structure, the cube, positioned behind the square | missing value, macro variable | source | 10 |
| 92 | SYMPLIFY Your Data Set Transposition with SYMPUT and Make It Data-Driven Too! | Christianna S. Williams | I frequently need to convert a SAS data set with multiple observations per subject into one with a single observation per subject with multiple variables to hold information that had been stored as single variables - in other words "de- normalize" the data. This is often the case with longitudinal data, where information is collected on individuals re- peatedly over time. To successfully complete this transposition, one needs to know how many records there are for each subject in the input data to determine how many variables are needed in the output data. This can be compli- cated when there are variable numbers of records among subjects and/or this number of records can change over time. Basically, to prevent loss of information in the transposed file, one needs to know the maximum number of ob- servations that any one subject has in the input data set | proc transpose, longitudinal data | source | 5 |
| 93 | Taking the Proc Summary a Step Beyond | Priya Suresh | PROC SUMMARY can be used to display cross-tabs of multiple variables to quickly identify unique patterns in the data. The summary output shows the unique pattern of input variables and the resultant value of the derived variable in an easily verifiable format. If the same code is applied to data over multiple time periods, the same patterns are repeated again and again. The next step beyond PROC SUMMARY is to use exact pattern matching technique to weed out the verified patterns from prior time periods and display only the new patterns that occur in the data. This presentation describes the application of this technique and explains how SAS is used to provide an elegant solution |
proc step, proc means, proc export, proc import, dataset, input statement, proc print | source | 7 |
| 94 | The "Ins" and "Outs" of SAS Data Integration Studio | Christopher R. Olinger | The SAS Version 9 suite of tools provides many new resources for managing and manipulating data. SAS Data Integration Studio (DI Studio) is one of the many new SAS Version 9 applications in the Data Transformation and ETL space. DI Studio is a new breed of SAS tool that lets the user visually define executable processes, which up until now had to be created and deployed using traditional SAS programming and operating system techniques. This tutorial explores the different aspects (both good and bad) of the ETL tool using a simple case study, and is intended for beginner to intermediate SAS programmers | sas data integration studio, raw data, dataset, fact table, sas programmer, libname statement | source | 17 |
| 95 | The Absolute Nitty-griddy of ODS Layout: Part I | Annette I. Ladan | Evolving since early 2000, eHARS is a browser-based application designed to collect, store, and retrieve information on adult/adolescent and pediatric HIV/AIDS cases. eHARS promises to have great impact on HIV/AIDS surveillance, and will alleviate many repetitious and redundant tasks. Clearly, a vital aspect of the eHARS system is its reporting capabilities. The current DOS-based HIV/AIDS Reporting System known as HARS provides the capacity for printing replicas of the hardcopy case report forms, but it is a bit crude and does not have the quality of the original paper case report forms. Nonetheless, health departments will still rely on a familiar way to view the data captured in eHARS. Both the adult/adolescent and pediatric HIV/AIDS case report forms have evolved over time and have undergone numerous formatting changes. These changes are not easily implemented and have not been reflected in the HARS version | crf, data step, proc sql | source | 9 |
| 96 | The BEST. Message in the SASLOG | Andrew T. Kuligowski | Your SAS routine has completed. It is apparently a succ ess - no bad return codes, no ERROR or WARNING messages in the SASLOG, and a nice thic k report filled with what appear to be valid results. Then, you notice something at the end of the SASLOG that warns you that, somewhere in your output, one or more numbers are NOT being printed with the formats you requested. NOTE: At least one W.D format was too small for the number to be printed. The decimal may be shifted by the "BEST" format. This presentation will review an ad hoc routine that can be used to quickly identify numbers that are too large for your selected format -more quickly and effectively than attempting to eyeball a massive report! |
index, data cleaning, e., put statement | source | 4 |
| 97 | The Design and Use of Metadata: Part Fine Art, Part Black Art | Frank C. DiIorio, Jeffrey M. Abolafia |
macro variable, excel, proc step, dictionary tables, sas log, attrib statement, quality control, macro definition, proc sql, dataset, libname statement, options statement | source | 20 | |
| 98 | The How and Why of SAS Macro Language | Carrie Mariner | When starting in SAS Macro Language, it's easy to feel overwhelmed. Understanding what happens behind the scenes makes it easier to code and debug your macro programs. This paper covers the basics of SAS Language processing, SAS Macro Language processing, and how the two differ | macro facility, macro variable, data step, macro trigger, macro definition, symbol table, macro call, dataset | source | 4 |
| 99 | The Pegboard Game: A Recursive SAS Macro Solution | Houliang Li | Rick Langston of SAS Institute Inc. provided an iterative SAS program to solve the famous Pegboard game during SUGI 30. Since this game is generally considered a recursion problem, a recursive solution is in order. This presentation describes recursion and the depth-first search algorithm, and how they are used to find all possible solutions to the Pegboard game regardless of the starting position. The highly sophisticated yet succinct macro program clearly demonstrates the elegance, utility, and power of recursion, which is fully backed by the SAS Macro Language | macro call, macro variable, macro definition, macro facility, %if-%then-%else, macro loop, do loop | source | 12 |
| 100 | The TEMPLATE Procedure Styles: Evolution and Revolution | Kevin D. Smith | In SAS 9.2, PROC TEMPLATE styles will have more features and enhancements added than in any other version of SAS, including simplifying inheritance and making style overrides more intuitive. Many of these enhancements deal with the usability problem that has given PROC TEMPLATE styles their poor reputation. In addition to the evolutionary enhancements, an entirely new species of ODS styles is being introduced: Cascading Style Sheets (CSS). Styles that are written using the World Wide Web Consortium's (W3C) CSS specification are now valid ODS styles that enable you to create and edit your ODS styles using the SAS Enterprise Guide style editor or third-party CSS editors |
proc template, proc step, sas enterprise guide, ods html | source | 9 |
| 101 | They Asked for a Segmentation Scheme, Not Clusters | Jeff Zeanah, R. Gary Huff |
A common business request is to develop a segmentation scheme to assist in understanding customers and thus approach the market. The qualitative analyst generally converts these requests to some form of clustering using available data, because this is what the analyst knows how to do. The restrictions of clustering approaches may lead to solutions having little to do with the actual business request leading to frustration for all parties. Using Genetic Algorithm approaches in PROC GA in SAS/OR (experimental in 9.1.3, with expected release in 9.2) the analyst may optimize a segmentation scheme on any need that can be quantified. This presentation presents a simple application to introduce the concepts of Genetic Algorithm s and initial approaches to accomplish an implementation in PROC GA |
proc step, proc fastclus | source | 10 |
| 102 | Tired of Typing? Got a layout definition with no column headers? Have WE got a fix for YOU! | Michele Laughlin, Thom Clay, Jamila Ervin |
In SAS processing, programmers need a way to transform raw data into a SAS dataset. This is generally achieved via PROC IMPORT or by an input DATA STEP. However, when column headings are missing from the input file, the former is not a good option and the latter requires redundant coding for the various pieces of a DATA STEP |
dataset, excel | source | 6 |
| 103 | Top-Down Programming with SAS Macros | Edward Heaton | Structured, top-down program ming techniques are not intuitivel y obvious in the SAS language, but we can use m acros to approximate a top-down structure. This can lead to program s that are m ore versatile, m ore robust, and generally easier to develop. In this paper, we will review a SAS macro that reads elements from a difficult-to-read ASCII text file. Along the way, we will look at the program structure and review the engineering d ecisions that allow us to develop the code in an organized an d robust manner. This paper demonstrates methods for macro testing and debugging, as well as various features of the SAS Macro Facility | dataset, macro call, missing value, macro definition, txt, proc step | source | 18 |
| 104 | Transferring vs. Transporting Between SAS Operating Environments | Mimi Lou | Prior to SAS version 8, permanent SAS data sets cannot be moved "directly" form one platform to another even though SAS supports various operating systems such as Windows, UNIX/Linux, Macintosh and Mainframe. SAS has multiple ways of moving SAS data sets between SAS operating environments: the cross-environment data access (CEDA) facility, the XPORT transport engine with COPY procedure, the CPORT and CIMPORT procedures, and SAS/CONNECT software. The purpose of this paper is to briefly outline the pros and cons of moving a SAS file, mainly with the CEDA and with the XPORT engine in BASE SAS |
dataset, sas log, proc copy, proc step | source | 5 |
| 105 | Using a Control Dataset to Manage Production Compiled Macro Library | Curtis E. Reid | By default, SAS compiles and stores all macros into the WORK library. This creates an overhead when a programmer executes a SAS program. By compiling and saving these macros into a permanent library, the SAS program can save compilation time. The drawback is that many macros often need to be updated and recompiled as specifications or requirements change. Additionally, many organizations now require that their programs have version control or software configuration management process in place. Thus updating a macro(s) in a SAS program becomes a non-trivial, time-consuming task. The use of a make-compile-control-dataset removes the need to manually compile all macros by reading in the make-compile-control-dataset, obtaining correct macro(s) to compile, and storing into the library. The value added from using this programming tool is that it facilitates maintenance and reduces business risks | stored macro, macro definition, macro loop, macro variable, %if-%then-%else, error message, macro flow control | source | 10 |
| 106 | Using Advanced Features of DDE to Customize Formatted Tables in Excel | Dennis J. Beal, Oak Ridge |
Dynamic data exchange (DDE) is a powerful tool w ithin SAS that users can send dat a stored in SAS data sets directly into formatted Micros oft EXCEL tables. T his process reduces human error and saves time since the user no longer needs to format the table manually . This paper presents advanced featur es of customized formatting w ithin EXCEL using SAS code and macros. T hese advanced features include intermingling mathematical sy mbols w ith standard text font w ithin the same cell; bold, superscript, underline or italicize s pecific characters w ithin individual cells; load both numeric and character dat a into the same EXCEL column; loadi ng data from different variables for specific rows within the body of the table; presenting numerical data in multiple formats within the same EXCEL column; and freezing the column header rows. The intended audience is advanced SAS users w ho want complete control of their formatted tables without using the Output Delivery System |
excel, macro variable, data step, dataset, proc freq, e., missing value, sample, macro definition | source | 16 |
| 107 | Using Contour Plots to Promote EHR Use in Physician Offices | Barbara B. Okerson | The role of a quality improvement organization (QIO) is to assist healthcare providers in making successful and meaningful changes in the way care is delivered and in improving outcomes of that care. While traditional activities in this role addressed specific clinical indicators, the QIO role has evolved to include the promotion of Health Information Technology (HIT) and the use of Electronic Health Records (EHR), especially in the physician office setting. Contour plots provide a two-dimensional display of three-dimensional data. Traditional uses of contour plots include display of elevation, concentration, velocity, non-linear regression displays, and time histories of data in both geographic and non-geographic applications. While SAS provides the ability to create contour plots with SAS/GRAPH and SAS/IML, the new ODS graphics applications add value to this ability by adding this feature to the Kernel Density Estimation (KDE) procedure |
contour plot, data visualization, proc step | source | 6 |
| 108 | Using Proc Pmenu to Develop a User Friendly Utility Rate Design System | Bill Bland | GoodCents contracted with Mississippi Power to develop the Rate Manager System, a user friendly application designed for non- SAS users that allow the user to design Utility Rates and to do a myriad of bill comparisons with other Utility rates. The software has a number of menu-driven tasks as well as 12 graphics applications to allow visual comparisons of Rates. The system was developed primarily using PROC PMENU but also uses SAS Graph, FSVIEW, PROC SURVEYSELECT as well as extensive use of compiled macros to compute customer bills for a variety of Utility rate types from simple to complex. The software was presented at the Southeastern Electric Exchange's Rate section in 2005 and won first place. We will present the software from a users design perspective and from a coders perspective and share some of the code out of the approximately 100,000 lines of code and over 200 SAS programs which are linked together to form the Rate Manager System |
proc step, macro variable | source | 20 |
| 109 | Using SAS Enterprise Miner to Examine General Education Issues | Patricia B. Cerrito | General education courses are required to give students a broad background in a variety of disciplines. However, outside of freshmen English and possibly history, many different courses are available to satisfy these requirements. It is rare to examine how students navigate through all of the available course offerings to complete general education. All student enrollment from 2000-2004 was made available for data mining along with student demographics, including ACT scores. With 22,000 students enrolled in any given semester averaging 15 credit hours, the database is extensive. Sequential market basket analysis was used to examine pathways taken by students through general education, and to determine which pathways are more successful compared to others. SAS Text Miner is also used to investigate general education pathways. Enterprise Miner is combined with SAS/STAT to drill down into the data. Results show that course choice does impact student success |
market basket analysis, link analysis, data mining, proc step, likelihood function, proc sql | source | 12 |
| 110 | Using SAS ODS to Extract and Merge Statistics from Multiple SAS Procedures into a Single Summary Report, a Detailed Methodology | Stuart D. Long | SAS procedures often provide more statistical output than is needed for a given analysis. When an analysis involves iterative processing on numerous groups of variables using multiple procedures, the number of output pages to be reviewed may be quite massive. By using SAS ODS output datasets, one can extract only the desired statistics from a procedure. The ODS output datasets from numerous procedures can be merged together and used by the programmer to generate concise reports summarizing the results from the different SAS procedures.. This presentation provides a detailed blueprint for 1) generating ODS output datasets from multiple procedures, 2) retaining specific statistics in these datasets, and 3) merging them together to produce one summary dataset. This is an advanced tutorial intended for SAS programmers knowledgeable with BASE/SAS and the SAS Macro facility |
proc step, proc logistic, predictor variable, logistic distribution, proc freq, response variable, out=, proc print, logistic regression, proc means, macro variable, interval variable, macro definition, regression analysis, adam dataset, macro facility, output, sas log, proc append, dataset, nominal variable, file statement, %if-%then-%else, macro flow control, confidence interval, sas output, macro call | source | 21 |
| 111 | WATER USAGE DISTRIBUTION AND ITS RELATION WITH INCOME USING SAS AND ARCGIS | Fariba Nowrouzi Kashan | This project aims to visualize different levels of water usage in both residential and commercial areas in different tract divisions of Jefferson County, Kentucky. Also, GIS maps are used to find the relationship between water usage and different socioeconomic areas. Finally, the numeric relationships between water usage, total population, and total income are examined. The databases are from the Louisville Water Company and the Kentucky Data Center. The water usage database contained 1,486,085 clients for 2004, and the census tract information is for the year 2000. SAS and ArcGIS software were used to randomize the database, change the data formats, geocode data, and visualize the relationship between water usage and census tract areas. GIS maps show that the northeast and east end areas of Jefferson County have the highest residential water usage, and have a higher range of income compared to other areas | standard deviation, scatter plot, correlation | source | 10 |
| 112 | What's really in your data? A quick and easy utility to analyze any SAS dataset | Michele Laughlin, Thom Clay, Jamila Ervin |
Many companies produce Quality Assurance reports daily in order to provide the highest quality of service and keep information up to date. The reports may consist of general demographic information, statistical data, cost analysis, date validation, etc. In order to produce all of these reports, programmers may generate code to create each of these analyses. The effort in creating separate utilities can be time consuming, expensive and an inefficient use of company resources. When Catalyst Technologies' management realized the number of hours expanded on creating code for these Quality Assurance reports, they came up with an answer. This paper discusses that solution, an easy to use utility that combines a variety of data to create numerous reports usable by programmers and non-programmers alike | proc freq, proc step, sample, frequency analysis, proc univariate | source | 9 |
| 113 | When PROC SQL Is Overwhelmed How to Use the SyncJoin Algorithm to Match Millions of Records Fast | Houliang Li | To join two huge data sets containing millions of observations each, either in SAS software or an RDBMS product such as Oracle, we usually rely on the built-in query optimizations provided by the SAS SQL procedure or the RDBMS product. In most cases, the built-in optimizations successfully avoid a full Cartesian product join of the tables and accomplish the query efficiently. However, there are multiple conditions where the built-in optimizations become powerless. A cross-table between condition is one of them. This presentation describes the Synchronized Join algorithm, or SyncJoin, which uses the SAS DATA STEP to implement a join equivalent to the SQL statement containing a cross-table between condition. The SyncJoin algorithm not only finishes the query in a tiny fraction of the time required by both PROC SQL and Oracle, but also consumes a minimal amount of system resources |
proc sql, proc step, cpu time, cross join, conditional do loop, sorted data, where statement, correlation, if-then-else, ansi sql, sas log | source | 16 |
| 114 | While You Were Sleeping - Scheduling SAS Jobs to Run Automatically | Faron Kincheloe | If you are tired of running the same jobs over and over again, this paper is for you. The Windows operating system is often viewed as strictly interactive in that a job is expected to run immediately when it is submitted. However, there are several options for scheduling SAS jobs to run at a later time and on a repetitive basis. This paper will discuss how to use these options and how they have changed with recent versions of Windows. Scheduling issues related to Data Warehouse Administrator will also be discussed. The primary focus of the discussion will be its interaction with the Windows operating system. By using one of the scheduling options discussed, you will no longer have to remember to submit a job at the proper time or get up in the middle of the night to start your jobs. Let Windows take care of all that for you, while you are sleeping | job scheduling, sas output | source | 6 |
| 115 | Why Write a Macro? Then Again, Why Not? | John W. Davison Jr. | One of the most useful SAS tools for designing and programming applications is the SAS macro language. It can be used in the full range of coding situations, from a shorthand form of an expression in a single SAS statement to a container for an entire application executed by a single macro invocation. With this much power it is easy on the one hand for one to become wary and on the other hand to use it in all situations. This paper offers no hard and fast rules for macros but suggests some considerations and guidelines used by the author in deciding whether and how to write a macro or use another facility of the SAS language to create an effective application structure | macro variable, macro facility, macro definition, sysdate9, macro function, &variable, %if-%then-%else, proc step, sas enterprise guide, date variable, macro loop, proc sql | source | 6 |
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