SESUG 2004 Papers - Index
101 papers. Source: SESUG (SouthEast SAS Users Group) conference proceedings.
| # | Title× | Authors× | Abstract× | Keywords× | Extras | Pages |
|---|---|---|---|---|---|---|
| 1 | "Methods for Minimizing Errors in Address Data" | Milorad Stojanovic | We live in an imperfect world and we work with imperfect data. Data often contain small and large errors. This is especially true when collecting data from mail surveys that are sometimes filled out in a hurried or careless manner. Correc t address data is critical to achieving high mail survey response rates. This paper presents method s to improve the quality of the street address data obtained from mail surveys and other instrume nts that collect address data. Improvements are made in the quality of the information ty pically stored as ADDR1 and ADDR2 by using: standardization techniques, correction methods, and business rules. SAS/BASE and SAS/MACRO are used to implement the ideas presented in this paper |
character functions, data validation rules | source | 6 |
| 2 | %ARRAY: Construction and Usage of Arrays of Macro Variables | Ronald J. Fehd | The SAS | macro variable, macro facility, array, proc step, data step, macro loop | source | 7 |
| 3 | %symbols(number=3,colors=magenta blue red); " % ' % | James E. Blum | source | 5 | ||
| 4 | %WINDOW: SAS' Diamond In the Rough | Alan R. Mann | The purpose of this presentation is to show the effectiveness of %WINDOW as an interactive testing interface, and how it has similarities to static web pages with interactive links that are used to pass parameters from the page to the analytic software. The limitations and best applications of %WINDOW are discussed in brief, in order to stimulate discussion in the remainder of the session. Basics of %WINDOW in SAS Macro Language; Applications of the interface; Limitations, such as linkage with compiled macro code as the only way to use % WINDOW; Uses as a laboratory interface; Uses as a testing interface for future web-enabled applications; Comparison with a simple web page; Getting Started: Basics of %WINDOW in SAS Macro Language SAS Macros have a structured procedural model that requires any passed parameters to be locally or globally identified and dynamically introduced to the session | macro definition, macro variable | source | 6 |
| 5 | (In)Formats (In)Decently Exposed | Harry Droogendyk | If you've pulled data into SAS or pushed it out the other end you have used SAS informats and formats, really. Didn't hurt a bit did it? There's nothing to be afraid of, formats are really quite helpful little beasts. If you've been intimidated or confused by SAS formats, come along for a revealing ride as the shadowy side of data formatting is decently exposed. Learn how many data conversion and presentation issues are easily handled, whether the data be dates, times, numbers or strings. Don't avert your eyes, discover the power, efficiency and freedom of SAS formats, you'll never be the same | data step, proc print, date variable, put statement, sysdate9, char., format statement, e., input statement | source | 12 |
| 6 | 1 Matching SAS Data Sets: If at First You Don't Succeed, Match, Match Again | Imelda C. Go | Two data sets are often matched by using the MERGE and BY statements in a DATA STEP. If not all records between the two data s ets are matched s uccessfully, th ere may be a need to co ntinue matching thos e recor ds that did not m atch usin g a different set of BY variables. If the goal is to match as many records as possible between the two original data sets, then this process may have to be repeated several times using many sets of BY variables. This paper goes over cautions regarding the matching process described and discusses using macros for more manageable SAS code. Although SAS programmers in the education field are accustomed to producing student longitudinal data involving test scores for vari ous evaluation a nd accountability p urposes, Presi dent Ge orge Bush's No Ch ild Left Be hind (NCLB) le gislation has raised the premium for longitudinal data |
by group processing, stage 2, if-then-else, longitudinal data, raw data, stage 1, data cleaning | source | 10 |
| 7 | 8 Characteristics of a Successful Data Warehouse | Marty Brown | Most organizations are well aware that a solid data warehouse serves as the foundation from which to build meaningful business and analytical intelligence. Unfortunately the gulf that exists between being aware of the need and a ctually building a da ta warehouse seems too large to cross. Instead of building a da ta warehouse, many organizations build their analytical solutions from spreadsheets and query tools. There is a better way. This paper servers as a roadmap from which to bridge the gap between concept and reality. Included are brief discussions in the following areas: The executive sponsor The project team The business The data model The metadata Extract, transform, and load (ETL)Q Marketing and change management The users Once complete, the data warehouse allows organizations to unleash the power of their data in the form of analytical intelligence. It is at this point that they can begin to achieve a true competitive advantage | data warehouse, data cleaning | source | 5 |
| 8 | A Different Approach to Learning SAS Software | Mirjana Stojanovic | This paper will focus on learning SAS software on the Internet. Reviewing a number of Web sites, we will point out advantages and disadvantages of Internet-based learning. Web sites offer education in SAS/BASE, SAS/STAT, SAS/GRAPH, SAS/MACRO and more. Selected sites are designed to simplify the process of learning SAS softw are. Many content devel opers improve their sites content from year to year. Some now use gr aphical, animated (Power Point) presentations or more sophisticated techniques, such as movies. Detailed explanation and examination of selected site s will give us a better understanding of the current online environment for learning SAS software. This presentation will explore some choices to enhance effective online learning |
source | 11 | |
| 9 | A Gentle Introduction to SAS/GRAPH Software | Ben Cochran | The power and flexibility of SAS/GRAPH so ftware enables the user to produce high quality graphs, charts, and maps . With all this strength and flexibility, the new user is sometimes overwhelmed and discouraged from using these powerful tools. However, learning how to use the tools of SAS/GRAPH can be a pleasant experience. This paper introduces several ways to generate graphical representations of your data. Starting with the importance of understanding their data, users are lead in a step by step process that ends with the generation of high quality plots and graphs. Let us begin. Step 1: Understanding Your Data. Is some data more appropriate for generating graphical reports than other data? What data is most appropriate for plots and graphs? The first data set to be examined is the SASUSER.RETAIL table. A quick look at the first ten rows reveals only 2 columns or variables: SALES, and DATE. The SALES variable has a descriptive label associated with it. Both variables are numeric |
proc gchart, proc step, bar chart, proc gplot | source | 10 |
| 10 | A Hiker's Guide to Web Development | Steve James | Building web applications using SAS/INTRNET Application Dispatcher is a lot like hiking. At first, it is hard. You struggle getting used to your equipment and the new terrain. Then it gets easy as you settle into a pace you like and get into a rhythm. Then it gets hard again as you tire and have to make that final push towards the finish. However, once you get there you can sit back, relax and enjoy having completed the task. If all that is true, then how should you do it? What can you expect along the way? What kind of equipment do you need and whom should you take with you? This paper is a trail guide for developing web applications with Application Dispatcher and describes the process, pitfalls and practical issues that you can expect to encounter. Specific topics that are covered include system analysis and design, learning Application Dispatcher, coding issues, usability, security, and final deployment |
data cleaning, data validation rules, proc step, dataset, excel | source | 10 |
| 11 | A Quick and Dirty Query System using HTML, Proc SQL, and SAS IntrNet | Kevin McGowan | Every SAS programmer needs ad hoc queries to help with debugging or to give results to others. Usually programmers will either write a new program or take an existing program and modify it to generate the report or data they need. This is time consuming and can lead to errors. The system described in this paper allows any user to query a database or SAS dataset without writing a SAS program. The system uses basic HTML, PROC SQL, SAS Macros, and SAS IntrNet to provide programmers and end users with an interactive web page that allows them to enter various parameters to query a database or dataset. The output format can be raw data, data listings (by using PROC PRINT) or frequency counts (by using PROC FREQ.) |
macro variable, proc step, proc sql, proc freq, proc print | source | 7 |
| 12 | A Roadmap to SAS Documentation | Pat Moell | Having trouble finding information on how to use SAS software? Here's a roadmap. Whether it's SAS release documentation, Books by Users books, or SAS Certification, the Publications Division provides essential information to all users of SAS software documentation in the format of your choice. Learn how to easily find the location of the documentation, the kinds of documentation available for each release, what's free for each release, and what's new. Learn about what's available on the Web and where it's located. Find out about exciting new topics and directions for the Books by Users program. This fast-paced and informative session will benefit both new and experienced SAS users | output delivery system, sas management console, sas base, sample | source | 12 |
| 13 | A Second Look at SAS Macro Design Issues | H. Ian Whitlock | At SUGI 27 the author presented a paper "SAS Macro Design Issues" as a Beginning Tutorial. The use of names and parameters were emphasized because it was presented as a Beginning Tutorial. This tutorial assumes that you have written some macros, made macro decisions with %IF and done looping with %DO statements, but you are still teachable, i.e. bad habits are not so deeply ingrained that there is nothing more you can learn about macro. Two questions motivated this paper. The first came more than twenty years ago at the end of my first programming course when the professor asked, "You now know how to write programs, but do you know when it is appropriate to write a program?" For SAS macro the question might be rephrased | macro variable, macro definition, dataset, macro put, macro loop, where statement, proc step, output, %if-%then-%else, proc sql, macro quoting function, numeric variable, macro function | source | 19 |
| 14 | A Simulation Study to Evaluate ANOVA and GEE for Comparing Correlated Proportions with Missing Values | Mark S. Litaker | The performance of an analysis of variance (ANOVA) model was compared with that of a generalized estimating equations (GEE) model for comparison of correlated proportions using simulated data. The analyses were implemented using SAS PROC GLM and PROC GENMOD. Simulations were based on a clinical study of three diagnostic techniques, validated with biopsy. Study subjects received two independent evaluations using each of the three methods. Observations represent agreement or disagreement with biopsy results. Correlated observations were generated using observed subject means and hypothesized treatment effects. Simulations included the null and two alternative scenarios, each with complete data and with 5% and 10% missing data. The binomial distribution and logit link function were used in the GEE analysis. Least-squares means and 95% confidence intervals (CI) were calculated for group means using each of the analysis models. Alpha, power and CI coverage probabilities were calculated |
confidence interval, anova, proc step, missing value, treatment effect, proc genmod, proc glm, confidence level, proc means, txt, correlation, binomial distribution, repeated measures | source | 6 |
| 15 | A System to Calculate Market Value-at-Risk using SAS/IML and Oracle | George Rezek | SAS/IML is used with Base SAS and Oracle to produce a system to calculate value at risk with the flexibility to reflect changes in the database in the calculation and reporting. Value at risk is calculated using Monte Carlo simulation. The overall process is covered and aspects of the calculation are highlighted. Finally, the impact of the results on the Enterprise are outlined |
interest rate, confidence interval, standard deviation, covariance, interest rate risk, correlation, proc transpose, proc step | source | 12 |
| 16 | A Text Miner Analysis to Compare Internet and Medline Information about Allergy Medications | Chakib Battioui | Recently, the internet has become the primary resource for consumers seeking medical information. Pharmaceutical companies are marketing directly to consumers. An important concern for many physicians is the quality of health information online. The purpose of this paper is to examine the issue of internet marketing using SAS text mining software. The specific objective is to examine information about allergy medications from Medline and from the internet. The search term "Allergy Medications" was used in Medline through the Ovid search engine. A total of 115 papers were returned. A similar search was performed using the search engine Google. A total of 100 sites were selected. The two data sets were combined and analyzed using SAS Text Miner 9.1. The analysis clearly shows a difference between the information contained on the internet compared to that contained in medical journals | clinical trial, excel | source | 6 |
| 17 | An Introduction to Macros | Deb Cassidy | A search in the proceedings for SUGI 24-28 for the word "macro" had over 1,000 hits. Why are macros so popular? A quick glance through the papers showed many were titled in the form "A Macro to ... ". These macros were developed to write complex code once and then use it over and over again with different datasets. Macros are also useful for writing code conditionally. For example, if your data meets Condition X, then run Part A of the program. Otherwise, run Part B of the program. Without macros, you'll need to submit a program, manually check the results and then submit the correct second program. However, macro code often looks like hieroglyphics to many people. Others have trouble understanding the difference between macro code and other SAS code. This hands-on workshop is intended to give you the basics of macros so you can figure out what &&&i&j really does and why %IF and IF are not the same. Why Use Macros? SAS-L is an electronic user group | macro variable, proc print, proc step, %if-%then-%else, macro loop, macro facility, macro definition | source | 8 |
| 18 | An Introduction to SAS/SHARE, By Example | Lawrence W. Altmayer | SAS/SHARE software is a useful tool for allow ing several us ers to access and edit the same data set at the same time in their individual SAS sessions. Without this software, data sets are only available for simultaneous use if the data set is set to browse mode in the properties window of a SAS frame application. With the software, if the data set properties are set to an edit mode, different users can edit different rows of the same table at the same time. This paper gives an introduction to using SAS/SHARE to access and edit a variation of the HOUSES SAS data set in a small SAS/AF application to be used by several users at the sa me time. We demonstrate how to start and stop a SAS/SHARE server, and assign a LIBNAME to the server. W e also show how the application works while different us- ers are simultaneously editing the data. From the softw are viewpoint, we touch on the requirement for having the server name in the /etc/services file |
libname statement, dataset, proc step, autocall macro, macro call, options statement, data step | source | 10 |
| 19 | An Overview of Non-parametric Tests in SAS: When, Why, and How | Paul A. Pappas, Venita DePuy |
Most commonly used statistical procedures are based on the assumption that distributions are normal. But what if they are not? When should non-parametric statistics be used, and what assumptions do those require? If your data doesn't meet the assumptions for either group, what should you do? This paper will provide an easy guide to choosing the most appropriate statistical test, whether parametric or non- parametric; how to perform that-test in SAS; and how to interpret the results. Non-parametric SAS procedures covered will include PROCs ANOVA, NPAR1WAY, TTEST and UNIVARIATE. Discussion will include assumptions and assumption violations, robustness, and exact versus approximate tests | sample, proc univariate, parametric test, proc step, sample size, kruskal-wallis test, paired t-test, proc ttest, normality test, normal distribution, anova, one-way anova, rank test, wilcoxon signed-rank, outlier, f-test, histogram | source | 5 |
| 20 | Automated Data Collection Using SAS and FTP | Philip James Busby | This paper discusses several coding techniques and considerations in using the FTP file access method from SAS to gather data from a remote server. The examples shown are from an application developed by a large financial company in Minneapolis to automate the collection of financial data from the Bloomberg server in New York. Issues discussed include request file preparation, reply file parsing, and error handling | create table, macro put, macro variable, proc sql, data step, %if-%then-%else, proc step, macro definition, macro loop | source | 13 |
| 21 | Avoiding Mouse Elbow | Malachy J. Foley | Computer programming or coding may literally be dange rous to your health. Mouse Elbow, which is akin to Tennis Elbow, is just one adverse health c ondition that is associated with computer use. Other maladies associated with computers include Carpal Tunnel Syndrome (from keyboard and the mouse), shoulder and neck pain, and Sciatica. This paper describes computer-related health risks with special emphases on musculoskeletal disorder (MSD) and Mouse elbow. The information in this paper will hopefully help y ou avoid computer-related injury, or detect and cure it at an early stage | source | 7 | |
| 22 | Binary Logistic Regression Model Optimization | Jerry Musial | There are a number of techniques available to statisticians to measure predict iveness of a binary logistic regression model. The log likelihood ratio chi-square, Brier score and classification tables are some of these methods. Models that are very good at correctly predicting events may also have a high false pos itive rate. T his paper will describe a set of macros which can be used to build, compare and select an optimized model from a series of competing models by using multiple measures of model predictiveness | logistic distribution, proc logistic, proc step, predictor variable, data cleaning, logistic regression, regression analysis, sample, model validation, proc freq | source | 6 |
| 23 | Bring the Data Warehouse to the Office with SAS Integration Technologies | Peter W. Eberhardt | No matter how sophisticated you're your data warehousing solution may be you will still get the question "Can I have that in EXCEL?" The Microsoft Office suite is ubiquitous in most large organizations these days. And regardless of how and where the enterprise intelligence computing goes on, the suite of Office products needs to be able integrate with this enterprise intelligence, or the time and energy you spend on ensuring data quality can be quickly lost with a sloppy cut and paste into EXCEL or WORD. With the release of SAS Integration Technologies the unrivalled analytical and business intelligence capabilities of SAS can now be delivered to the desktop using the Microsoft Office suite. This paper will introduce some components of SAS Integration Technologies, and then show how to use these components to integrate SAS into Microsoft Office Products without the need for SAS on the user's computer. With SAS v9 came a new product, the SAS Add-in for Microsoft Office |
excel, macro variable | source | 11 |
| 24 | Building A SAS Application to Manage SAS Code | Phillip Michaels, Saint Louis |
In spite of SAS's power and flexibility, it is rarely used for anything more than extracting, analyzing, and reporting. IT professionals are resistant to using SAS for major corporate applications because of its lack of structure for managing complex application development and maintenance. This paper discusses how to create this structure, addressing such questions as: · How can IT manage the running of regular nightly/weekly/monthly SAS jobs? · What must be included in SAS applications to monitor IT operator-run SAS programs for failure. · Why should each line of the SAS code be put into a SAS accessible database? · How is SAS uniquely positioned to document the integration of data and programs in an application? | sas batch, batch job, proc step | source | 6 |
| 25 | Building a Web Based EIS for Data Analysis | Ed Confer | Web based reporting has enhanced the ability of management to interface with data in a point and click architecture. In order to build an effective front-end, a structural framework design must be built on flexibility and efficiency. The data to be extracted should be stored as a collection table, to ensure that timely and accurate data can be extracted from a single source. The program should be written so that any number of parameters can be filtered in the extraction. The Web and SAS Software can deliver this reporting capability to management. Utilizing SAS Software as the data extraction tool, the user can select any number of data conditions based on reporting requirements. The data can be presented in multiple methods, such as a graph depicting data points over time, or a tabular report based on summary data. The reporting tool can be designed to provide to the user a variety of reporting capabilities and data filters | proc sql, proc step | source | 7 |
| 26 | Building Efficient State Transition Diagrams from Charges, Collection and Call Detail Transactional Feeds | Brett C. Peppe | This paper describes three efficient (constant memory, linear time) techniques to collect and process state information from transactional feeds of arbitrary size and complexity. These techniques are: Singular-State Vector Collector State-Transition (S,T) Collector * Synthetic Key Collection and Lookup Transactional systems are designed to track the state of individual customer interaction events as they occur. However, Marketing, Demand Analysis and Risk Portfolio groups often need to determine the impact or effect of these customer events over time. This implies that they are interested in tracking change between transactions, i.e. the set of transitions for each customer represents the opportunity or risk. State Transition Diagrams are a powerful analysis paradigm for tracking the paths of change in or between transactional systems | account, out=, data step, proc freq, dataset, data validation rules | source | 19 |
| 27 | Case Studies in Time Series | David A. Dickey | proc arima, proc step, regression analysis, moving average, autoregressive model, correlation, proc calis, binary variable, time series analysis, unit root, partial autocorrelation, sample, proc autoreg, null hypothesis, ma, lag function, proc reg, residual | source | 10 | |
| 28 | Case Studies in Time Series: Periodic Behavior and Related Issues | Periodic Behavior, Related Issues, David A. Dickey |
proc freq, time series analysis, regression analysis, proc step, covariance, binary variable, proc reg, seasonality, residual | source | 16 | |
| 29 | Creating and Exploiting SAS Indexes | Michael A. Raithel | SAS indexes can drastically improve the performance of programs that access small subsets of observations from large SAS data sets. Yet, many SAS programmers never use them. In this workshop, you will learn how to create simple and composite SAS indexes, determine which variables make good index key variables, discover when creating and using indexes is appropriate, learn about centiles, and find out how to generate index usage messages. You will see-f irst hand- how indexes can improve processing when subsetting and/or updating a large SAS data set. To be successful in this workshop, you should have base SAS knowledge, including creating and updating permanent SAS data sets. You will leave this fun-filled 75-minute workshop with a practical knowledge of how to create and exploit SAS indexes | dataset, index, by group processing, proc step, where statement, index creation, proc sql, modify statement, set statement, proc contents, variable, cpu time, libname statement, proc freq | source | 9 |
| 30 | Creating Meaningful Data from Web Logs Using Base SAS | Jenine Eason, Jerry Johannesen |
Analyzing web logs can bring very valuable information to your company. Not only can data collected from web logs give insight to management about what is happening on a web site, it also provides exact data for trending that sales can use to increase profitability. Without using a pre-packaged tool, base SAS can be utilized to read and evaluate web logs. The greatest challenge is dissecting a web log and parsing its values. This paper will bring understanding to web logs by identifying its different pieces and how best to collect them. We'll explore some of the basic reporting metrics utilizing transformed web logs | dataset, sas base, proc step | source | 13 |
| 31 | Crossover Designs and Proc Mixed In SAS | Hossein N. Yarandi | Crossover designs are commonly used in pharmaceutical and human/animal nutrition studies. This design is used to reduce error variance on the one hand and to meet different experimental situations like limitation on experimental resources on the other. Error variation mainly arises due to variation in experimental units under identical treatments. As a result, a type of design known as crossover designs (or switchover designs) could be evolved to use the same experimental unit for different treatments in an experiment but in different periods. In a crossover design each treatments is applied to each of a number of experimental units in different time periods. The sequences in which the treatments are applied to an experimental unit (or a subject) may have some influence on the effects of the different treatments. Accordingly, different treatment sequences are taken to eliminate sequence effects. In this study, a crossover design example will be analyzed using Procures Mixed in SAS | proc mixed, proc genmod, proc step, fixed effects, treatment period, proc glm, response variable, treatment effect, restricted maximum likelihood | source | 11 |
| 32 | Cutting the SAS LOG down to size | Malachy J. Foley | Looking through a large SAS LOG (say 250 pages) for NOTE's and WARNING's that might indicate a problem with your SAS program is necessary, but no fun. This paper presents a SAS program which distills the SAS LOG to list only the critical messag es in a LOG. The use of the program increases program reliability and programmer productivity | sas log, macro facility | source | 7 |
| 33 | Data set options - what comes first | Jim Snider | where statement, if-then-else | source | 3 | |
| 34 | Dictionary Tables and Views: Essential Tools for Serious Applications | Frank C. DiIorio, Jeffrey M. Abolafia |
Dictionary tables were introduced to the SAS System in the early 1990's, in Version 6.07. Laden with information that is often difficult, and sometimes impossible, to get through other means, they still appear to be on the outside of many programmers' Bag of Tricks. This is both perplexing and unfortunate for as we will see in this paper, once their content and organization is understood, they are readily adapted for a range of applications that, to use an old saw, "are only limited by your imagination." This paper describes dictionary tables and their associated SASHELP library views | proc sql, macro variable, dictionary tables, macro facility, proc step, create table, proc contents, character variable, proc print, sas log, select, options statement, macro put, macro definition | source | 17 |
| 35 | Doing More with SAS/GRAPH GMAP: A New Look at an Old Procedure | Barbara B. Okerson | One of the roles of a healthcare quality improvement organization (QIO) is to provide tools and support to healthcare organizations and facilities to assist them in their quality improvement efforts. Geographical differences in adherence to clinical guidelines have been demonstrated. The identification of geographical areas of need helps the QIO improve the efficiency of this information delivery. Geographical data analysis and display are used to summarize spatial data, identify variations in performance by regions and providers and show performance trends over time through both static and interactive displays. The SAS/GRAPH GMAP procedure was designed to produce two- and three-dimensional color maps of data value variations. With the advent of new spatial analysis tools available through SAS/GIS and other geographical information systems, this procedure is sometimes overlooked |
proc step, proc gmap | source | 7 |
| 36 | Double Your Pleasure, Double Your Words... | David L. Cassell | Now that SAS 9 has Perl regular expressions in the DATA STEP, there are new capabilities in it. A common editing problem, finding doubled words in a text, can be tackled using Perl regular expressions. But the structure of the DATA STEP when using the PRX... functions and CALL routines can be simplified by using the Whitlock DO-loop in conjunction with the PRX functions. We illustrate this, showing how to build a simple Perl regular expression, and how to use the Whitlock DO-loop with the PRX... functions to find doubled words in lines of text |
conditional do loop, sas 9 | source | 4 |
| 37 | Exceptional Exception Reports | Gary M. McQuown | proc step, data validation rules, macro variable, proc format, proc freq, if-then-else, where statement, data cleaning, data step | source | 10 | |
| 38 | Faster Flat File Testing | John E. Bentley | When doing data discovery for a new database project, we often have a flat file whose contents we know something about, such as the valid values for specific fields, but for one reason or another we want to look at only a sample of the data. When the file is small, using SAS to pull the sample is easy and fast to do. But when the file has a record length of thousands of bytes, contains millions of records each with dozens of fields, and has over a dozen values for our sampling by-group, we can expect lengthy processing times if we use brute force to do the job. This tip will show one easy-to-code approach that dramatically reduces processing time | sample, flat file, sample size | source | 2 |
| 39 | Finding Needles in the Documentation Haystack | Susan Myers, David Smarrella |
Large complex data structures regularly require substantial documentation. Data from surveys released for public use typically promise confidentiality. Often this leads to certain confidential data being dropped or recoded. Commonly, documentation for the public use data will be based on the documentation for the original file. If the original documentation uses consistent terminology and notation with reference to the confidential data items, then an automatic search to locate areas of the documentation where changes are needed would be useful. We illustrate this by using Base SAS RX pattern matching functions to detect keywords and assure correctly documented data files | dataset, excel | source | 5 |
| 40 | Fresh SAS Programming Tunes from Hashville | Paul M. Dorfman, Alexander A. Martchenko |
In SAS Version 9.1, the hash object - the very first object introduced via the DATA STEP Component Interface in Version 9.0, has become robust and syntactically stable. The philosophy and application style of the hash object differs quite radically from any other structure ever used in the DATA STEP previously. The most notable departure from the tradition is its run-time nature. The hash objects is instantiated and/or deleted and acquires memory, if necessary, at the run-time. It is intuitively clear that such traits should make for very interesting and flexible programming having not yet seen in the DATA STEP code of yore. And they do, indeed! Although brief propaedeutics will be provided, this short talk is intended for SAS programmers already somewhat familiar with the basic ideas and syntax behind the hash objects |
hash table, hash iterator, dataset, composite key, cpu time, sas programmer, variable, length statement, sample, data step, group by, proc sql | source | 17 |
| 41 | Generate a Metadata for Analysis | Maria-Alexandra Paladines | If you are working in a big organization has been evolving in analyzing, designing and implementing a data warehouse, let SAS macros and SQL make that easier for y ou. This paper describes SAS macros that can be used to generate metadata for analysis purposes to help the database administrator (DBA) with the challenge of organizing and cleaning tables and fields. The metadata repository gives the DBA the information about the library name, data set name, field name, type and value of selected elements in a SQL database. In the School District of Palm Beach County , our metadata includes more than 385,554 variables gathered from different tables. This program generates a table containing the values of selected columns in al l tables in a database in which that column occurs. For example, let us say that the column "YEAR" is used in many tables in a SQL database | proc sql, create table, proc step, macro definition | source | 9 |
| 42 | Here's the Data, Here's the Report I Want - How Do I Get There? | Deborah B. Buck | SAS programmers are often given a set of data and asked to generat e a specific report. This c an be a daunting task, especially fo r a relatively new SAS user. Where to start? This process involves two separate, but related phases. Phase one concerns the data itself. What form are the data in - is it raw data, an existing SAS data set or sets, or data from another software program? Also, does the data need to be manipulated, restructured, or summarized to provide the information needed for the SAS procedure? Phase two involves determini ng which PROC will provide the output in the desired form. Knowing whet her the report needs a specific layout, customized information, or statistics is essential in deciding on the most appropriate PROC. This paper will present some guidelines to follow for producing the desire d report in a logical and organized manner using Base SAS |
proc step, dataset, proc report, input statement, update statement, proc tabulate, sas base, proc print, set statement, missing value, proc format, proc freq, flat file, proc means, libname statement | source | 8 |
| 43 | How to Incorporate Old SAS Data into a New DATA Step, or "What is S-M-U?" | Andrew T. Kuligowski | dataset, set statement, merge statement, modify statement, update statement, by group processing, libname statement, out=, input statement, proc step, proc append, if-then-else, sysrc, stop, missing value, where statement | source | 13 | |
| 44 | Installing SAS/IntrNet on Windows and Linux | Xiao (Michelle) Zhuang, Sharon Schiro |
The North Carolina Trauma Registry initially developed ISSAC (Information System for State Trauma Advisory Committee) as a SAS/INTRNET application on Windows environment, and then transferred it to the Linux operating system due to its reliability and ease of use. There are similarities and differences between Installing SAS/INTRNET on Windows and Linux, and in contrast to most SAS installations, SAS/INTRNET is rather complicated. This paper presents SAS/INTRNET Installation on Windows and Linux |
sample | source | 4 |
| 45 | Introduction to PROC SQL | Steven J. First | PROC SQL is a powerful Base SAS Procedure that combines the functionality of DATA and PROC steps into a single step. PROC SQL can sort, summarize, subset, join (merge), and concatenate datasets, create new variables, and print the results or create a new table or view all in one step! PROC SQL can be used to retrieve, update, and report on information from SAS data sets or other database products. This paper will concentrate on SQL's syntax and how to access information from existing SAS data sets. Some of the topics covered in this brief introduction include: Write SQL code using various styles of the SELECT statement. Dynamically create new variables on the SELECT statement. Use CASE/WHEN clauses for conditionally processing the data. Joining data from two or more data sets (like a MERGE!). Concatenating query results together |
proc sql, proc step, select, group by, order by, where statement, proc sort | source | 12 |
| 46 | Journeymen's Tools: The Writing for Reading and Reuse Program Header or Everything You Ever Wanted To Know About A Program But Were Afraid To Ask | Ronald J. Fehd | Information is the difference that makes a difference. The difference between a program with documentation and one without is the cost of development. A program with documentation is more likely to be easily understood and therefore more likely to be reused thus saving the effort and expense of reinvention. This paper proposes a model program header which, like this paper, contains a title, abstract, and introduction that are designed to communicate clearly program intent and usefulness. Expected audience is intermediate to advanced users and programmers. keywords: comments theory documentation | source | 3 | |
| 47 | Journeymen's Tools: Two Macros - ProgList and PutMvars - to Show Calling Sequence and Parameters of Routines | Ronald J. Fehd | A program that is a job may define parameters for and call other programs which are routines. SAS | macro variable, proc sql | source | 7 |
| 48 | Losing the Fat: One Application's Journey to the Internet | Jeffrey L. Lessenberry | This paper will discuss the processes necessary to convert a SAS/FRAME application to an intranet-based application. Until a few years ago, I was content with coding fat client applications utilizing SAS/FRAME. I was happy with my frame objects and SCL until my manager approached me with a new web project. The web project used Java Server Pages as the interface and the SAS/IOM application server as the backend access to the data. Although I had no training in web development, I was really excited about the project. There are some basic techniques which have surfaced during my learning curve that make the development process easier. This paper will discuss those techniques and present an example application |
dataset, %if-%then-%else | source | 7 |
| 49 | Merging: Avoid the Cones | Jessica Bonow, Little Rock |
Travelers around the United States drive through many construction zones. Informational road signs tell drivers what to expect as they approach the work area. One of the signs may read, "Right Lane Closed, Merge Now". In this illustration, the two lanes of the road become one. It is the same with data sets that SAS users work with. They want to combine observations from two or more data s ets to form one single observation in a new data set. This can be accomplished by using the match -merge method, one of four ways to combine data sets. The match -merge method may have some cones that the SAS user has to avoid in order to produce the desir ed results that are needed. This paper describes the basics of the match-merge method, examines some of the cones users may drive into, and gives solutions to avoid the cones. The SAS tools used throughout the paper are in BASE SAS. The operating syst em used is PC SAS, but could be used with any operating system to achieve similar results | merge statement, by group processing, missing value | source | 5 |
| 50 | Methods of Storing SAS Data into Oracle Tables | Lois Levin | There are several ways to create a DBMS table from a SAS dataset. This paper will discuss the SAS methods that may be used to perform loads or updates, a comparison of times elapsed, and the INSERTBUFF option and the BULKLOAD option that can be used to perform multiple row inserts and direct path loads to optimize performance | proc step, cpu time, proc append, proc sql, sas log, label statement, libname statement, variable, libname engine, create table, dataset, sample | source | 9 |
| 51 | Mixed Model Influence Diagnostics | Oliver Schabenberger | Linear models for uncorrelated data have well established measures to gauge the influence of one or more observations on the analysis. For such models, closed-form update expressions allow efficient computa- tions without refitting the model. When similar notions of statistical influence are applied to mixed models, things are more complicated. Removing data points affects fixed effects and covariance parameter esti- mates. Update formulas for "leave-one-out" estimates typically fail to account for changes in covariance parameters. Moreover, in repeated measures or longitudinal studies, one is often interested in multivariate influence, rather than the impact of isolated points. This paper examines extensions of influence measures in linear mixed models and their implementation in the MIXED procedure |
covariance, influential observation, proc mixed, likelihood function, fixed effects, estimate, standard deviation, correlation, cook's distance, outlier, proc means, proc step, restricted maximum likelihood | source | 17 |
| 52 | Mixed Models Analysis of Microarray Experiments Using Pooled Error Estimates | Yuan Liu, James E. Blum |
source | 6 | ||
| 53 | Moving Data and Analytical Results between SAS and Microsoft Office | Vincent DelGobbo | Transferring data between SAS and Microsoft Office can be difficult, especially when SAS is not installed on a Windows platform. This paper discusses using the HTML and XML support in BASE SAS software to move data between SAS and Microsoft Office (versions 2002 and later). You can use the techniques described here regardless of the platform on which SAS software is installed | excel, dataset, sas output, xls, ods html, ods xml, adverse events, macro definition, sas base, proc template, sample, output delivery system, libname engine, work library, proc step | source | 20 |
| 54 | ODS, Proc GMAP and SAS/Intrnet: MAP Your Own Response Data | Lakshmi Pandey | In recent years, there has been added interest in geographic info rmation analysis and there are several commercially available products, which can provide means and tools to do spatial data analysis, but most of these products have learning curves and also come at great expense. However, PROC GMAP combined with ODS and SAS/INTRNET provides one of the best and easiest way to analyze and visualize spatial data and render output to end - users web browser without having SAS or any other software installed on client computer and also end -users do not need to know any technical details. In this paper, we will demonstrate how to build the dynamic web pages where users can enter or cut and paste their own response geo -data to be mapped. Furthermore, it will allow users to drill down to lower geography to bring some of the census information. Key Words: SAS/BASE, SAS/GRAPH: PROC GMAP and Annotation, SAS Macro Language, DATA Statements, SAS/INTRNET ODS and HTML |
proc step, proc gmap | source | 6 |
| 55 | Panel: Launching a Web Application | Mark Tabladillo | A panel of four experienced users respond to interactive questions from the moderator (and potentially audience) on launching a web application | sas base, sample | source | 2 |
| 56 | PICTURE Perfect: In depth look at the PICTURE format | Carry W. Croghan | SAS PICTURE format is a very powerful tool. The different options allow the display of data in a more picturesque manner adding symbols, qualifiers, and comments to the data points without modifying the data. With a PICTURE format one can create a series of templates for displaying the data. The PICTURE format even allows the user to generate their own date and time formats. In addition to the options available with the VALUE formats, PICTURE format has options such as DATATYPE, NOEDIT, PREFIX, MULTIPLIER, and FILL. With its multitude of options, the PICTURE format is very impressive, but it can also be confusing. It is not always clear how different options will interact. If not carefully applied, the PICTURE format can produce misleading information. This presentation will look at the structure and the options available, removing some of the mystery of the PICTURE format and revealing a powerful formatting tool | proc format, proc step | source | 10 |
| 57 | Pretty Dates All in a Row | Pretty Dates, Dianne Louise Rhodes |
macro variable, sysdate9, datepart, proc format, sas function, call symput, macro function, proc step | source | 13 | |
| 58 | Programmatic handling of varying report requirements | Jim Snider | proc sql, macro variable, proc step | source | 2 | |
| 59 | Quality of Life Analysis for Patients Receiving Heart Implants | David Nfodjo, Christiana Petrou |
Objective: To investigate the quality of life for heart patients using data mining techniques. Method: A quality of life questionnaire was used and given to patients at each follow up visit at baseline and at 3, 6, 12, 18 months after the implantation of a pacemaker. It was the aim to compare the scores to severity, the different prescribing habits for various physicians and to examine the quality of life by time since the implantation through the responses of selected questions from the questionnaires. Kernel density estimation and least squares estimation were used to analyze the data using SAS software. Results: Statistically significant results were obtained by comparing the change in severity between male and female patients. Prescribing habits by different physicians proved to be statistically noteworthy, since different doctors have different prescribing habits | probability distribution, standard deviation | source | 8 |
| 60 | Quick and Easy Visualization of Longitudinal data with the WEBFRAME graphics device | Kevin Payton Delaney | Data Visualization is an important step in getting to know your data. This is particularly true when you have longitudinal data, repeated measurements on the same subjects over time. A useful tool in visualization of longitudinal data is the "Trellis graph" a graph of the data separated into multiple graphs by a conditional variable. In the case of longitudinal data, this conditional variable is often the individual participant. Several SAS competitors have made the ability to visualize data using "Trellis graphs" an important selling point for their product. Trying to do something similar with traditional SAS/GRAPH methods is not easily done. However, Version 8 of SAS brought us the little known WEBFRAME graphics device which can be used to create a modified version of the Trellis graph with ease. We take a quick look at this device as a simple way to get look at your data, with particular attention to longitudinal data |
longitudinal data, proc greplay, proc step | source | 12 |
| 61 | Rules for Tools - The SAS Utility Primer | Frank C. DiIorio | macro variable, dictionary tables, macro put, %if-%then-%else, proc sql, sysrc, sas log, sas base, macro facility, macro flow control, macro parameter, macro definition, missing value, do loop, macro loop, autocall macro, file statement, options statement, proc step, %macro parameters | source | 18 | |
| 62 | SAS Add-In for Microsoft Office - Leveraging SAS Throughout the Organization from Microsoft Office | Jennifer Bradshaw Clegg | The SAS Add-In for Microsoft Office is a Component Object Model (COM) add-in to Microsoft EXCEL and Microsoft Word. The SAS Add-In for Microsoft Office seamlessly exposes the power of SAS data access, reporting, and analytics directly from the familiar environment of Microsoft Office. This paper discusses the capabilities and features of the SAS Add-In for Microsoft Office 1.3. Refer to Appendix A for a list of features by release |
excel, sas enterprise guide, sas management console, business intelligence, proc sql, life sciences | source | 15 |
| 63 | SAS Application for Human Health Risk Assessment for Hazardous Waste Combustion Facilities | Samuel E. Stinnette, Dennis J. Beal, Sharon K. Robers, Charles T. Hadden, Barney W. Cornaby |
The U.S. Env ironmental Pr otection A gency (EPA) h as published g uidance o n p erforming h uman he alth a nd ecological risk assessments for hazardous waste combustion facilities. This guidance includes mathematical models for determin ing emissi ons fr om such faci lities (e.g., bas ed on the hazardous wastes being b urned), as well as resulting air, soil, water, plant, and animal food c hain conc entrations. EPA favors a commercially av ailable combustion risk assessment soft ware package to perform thes e calculations, ensuring consistency and accuracy of results. Although flexible in nature, this software package does not allow for sp ecial site-specific scenarios such as special human receptors and risks from radiological c ontaminants | dataset, excel, master data management, macro definition, variable, sas programming, proc cimport | source | 11 |
| 64 | SAS Dating Tips - A Beginner's Guide to SAS Dates | Erik S. Larsen | Do you want to be the life of the party at SESUG 2003? Being proficient at using SAS dates and times may not make you instantly popular, but it will make your programs work better and allow you to use the power of SAS dates to manipulate data and make your reports and graphs look more professional. We will explore the basics of how SAS stores dates and times internally and how you can use them to calculate values in terms of days, weeks and years. Finally we will explore some date functions and formats to make your reports look so good you will never want to look at a Microsoft EXCEL spreadsheet again. First off, let's get down to basics. How are dates stored in SAS? Generally speaking, SAS has two types of variables it stores in its data sets: numeric and character |
sysdate9, date variable | source | 2 |
| 65 | SAS Macro Design Issues | H. Ian Whitlock | Two questions motivated this paper. The first came more than twenty years ago at the end of my first programming course when the professor asked, "You now know how to write programs, but do you know when it is appropriate to write a program?" For SAS macro the question might be rephrased. What kind of SAS problem is appropriate to macro? Or when should the solution involve macro code? The second came from SAS-L in September 2001, "What sources discuss how to develop clear and good macro code?" There have been many Beginning Tutorials on macro, and many of the examples in them may illustrate some of the principles that these questions hint at, but I do not know of any source that concentrates on the principles | macro facility, macro variable | source | 12 |
| 66 | 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, keyword parameter, %macro parameters, macro facility, macro definition, call symput, macro parameter, proc step, put statement, macro loop, if-then-else, proc sql, %if-%then-%else | source | 20 |
| 67 | 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 |
| 68 | SAS System Options Are Your Friends | Edward Heaton | Does SAS always do things the way you want? Have you ever made a simple little mistake of omission with disastrous consequences? Do you find the SAS log difficult to read and less informative than you need? Do you keep doing the same little tasks over and over because SAS doesn't remember what you want? System Options can be your solution to some of these problems. What! This is a beginning tutorial. You want me to mess with System Options? Isn't that a little like playing around with the Windows Registry? Not at all; and it isn't hard to pick out some System Options to make your code easier to manage. SAS provides a lot of System Options. There are about 258 in version 8.2 for Windows. With version 9, ten of them went away and 68 new options were introduced. Although their implementation can sometimes be confusing, these options should not be ignored | sas log, options statement, by group processing, merge statement, user-defined format, dataset | source | 15 |
| 69 | SAS-L: The Basics | F. Joseph Kelley | random number generation, input statement | source | 10 | |
| 70 | Software Testing Fundamentals-Concepts, Roles, and Terminology | John E. Bentley | SAS provides a complete set of application development tools for building stand-alone, client-server, and Internet- enabled applications, and SAS Institute provides excellent training in using their software. But making it easy to build applications can be a two-edged sword. Not only can developers build powerful, sophisticated applications, but they can also build applications that frustrate users, waste computer resources, and damage the credibility of both the developer and SAS software. SAS Institute offers little guidance related to the software development life-cycle, and this author is concerned that complex SAS applications may be released and deployed without proper testing. For those unfamiliar with the topic, this paper can serve as a primer or first step in learning about a more formal, rigorous approach to software testing. The paper does not address any specific SAS product and may be appropriate for even experienced application developers | regression analysis, sample, data cleaning, stress testing, proc sql | source | 12 |
| 71 | Sounding the Trumpet: Effective Failure Notification | Don Hopkins | A typical data management system is a complex collection of manual and computerized procedures. Operational dependencies among the various parts are often intricate, and there are many things that can go wrong. When something does go wrong, it is often essential to catch the failure quickly to avoid a cascade of costly downstream problems. In a system that employs SAS programs, one way to find out about system failures is to scan the SAS log window after a program executes. Manual scanning of the SAS log may be all that's needed for a simple program, but as a system grows in complexity, manual scanning may cease to be a reliable or efficient technique for noticing problems. Scanning is a vigilance task-something humans are not particularly good at-and the probability of overlooking a critical failure message increases when programs are long and complex, when they are executed as part of a routine sequence, or when they are executed in batch mode with no one in attendance | sample, data step, sas log, sas base, %if-%then-%else, proc step, macro loop, macro variable, macro definition | source | 8 |
| 72 | Spatial Statistics Using the SAS Bridge for ESRI | Patricia B. Cerrito, Carol Hanchette, William Dakan, George R. Barnes, Robert Forbes |
The SAS Institute, Inc. has developed a bridge to ArcGIS software, developed by ESRI, Inc. ArcGIS is used worldwide for spatial data analysis and, increasingly, for spatial statistics. The bridge allows users to exchange spatial attribute data between SAS and ArcGIS and to import SAS programming directly into ArcGIS. The bridge provides ArcGIS users access to a wide range of statistical functions and enhances the use of spatial statistics to analyze map data. This presentation will demonstrate the effective use of the SAS Bridge for ESRI, using kernel density estimation as an example. In recent years, health researchers have shown much interest in using kernel density estimation for the exploration and display of point health data. Kernel density estimation provides an alternative to choropleth mapping (e.g. shaded mapping of administrative units) and some of its drawbacks, such as the modifiable area unit problem | contour plot, proc step, sample, sample size, dataset, data mining, clinical trial, sas enterprise guide, proc mixed | source | 15 |
| 73 | Stata for the Struggling SAS Mind | Dan Blanchette | This paper shows how to "do" in Stata what you know how to "program" in SAS. For those SAS programmers who need the statistical software Stata for certain analysis commands or have been given Stata code that they need to use, this is basically a formal presentation of notes to myself that I made as I started learning how to use Stata. What is covered: 1) How to get your SAS brain to conceptualize the different way Stata is set up. In essence, how to think Stata. 2) How to navigate the Stata window environment. 3) How to translate your SAS code into Stata code. With a SAS programmer in mind, this paper makes use of your SAS knowledge to explain how to use Stata. This makes learning Stata a lot easier as familiar SAS terms and concepts are used in the explanations. Not all SAS statements are translated into Stata commands. Just the basics are covered so that a new-to-Stata user can learn enough to get started. Perhaps the handiest feature is the table of SAS code matched to Stata code | missing value, proc step, dataset, numeric variable, sas output, character variable | source | 11 |
| 74 | Statistical Analysis of Gene Expression Micro Arrays | John Schwarz | Advancements in genetic research have led to increased amounts of data often without efficient analysis techniques. One such area of genetics that has developed a great deal in the past several years has been micro arrays. One area of micro array experimentation is that of gene expression. Gene expression uses arrays of thousands of genes with one to two targeted strands of DNA that are fluorescently tagged and used to identify which genes are expressed. This experiment can identify which conditions cause certain genes to be activated in different cells. It can also be used to track certain cellular changes through the expression of genes. The data gathered from the micro array experimentation is contained in a large matrix containing the data results from gene expression analysis on a micro array plate. Some of the standard analysis techniques and programs can be inefficient and inconclusive. The purpose of this analysis is to arrive at conclusive results with efficient methods | sample, outlier, sample size | source | 8 |
| 75 | Structural Equation Modeling Assessing Micro Array Data | Mussie A. Tesfamicael | Micro arrays are part of a new class of biotechnologies that allow the monitoring of expression levels for thousands of genes simultaneously. We will discuss a novel method to investigate gene marker data by classifying several genes into a homogenous group so that similar genes will be classified together. Gene markers are often studied through micro array analysis where a chip containing identified genes is treated with a specific drug and then examined. We will compare several genes by all treatments of interest and determine whether there are any differences among the genes. [1 ] Structural equation modeling, or SEM, is a very general, chiefly linear, chiefly cross-sectional statistical modeling technique. Factor analysis, path analysis and regression all represent special cases of SEM. In building the structural equation model, the key variables of interest are latent constructs. The model contains two types of variables, namely exogenous and endogenous variables | proc calis, covariance, goodness of fit, confidence interval, correlation, sample, predictor variable | source | 10 |
| 76 | Taking it Home and Putting it into Practice | Diane Cunningham | We attend SUGI & SESUG to network with fellow SAS users and hope we'll discover some tidbit of knowledge that can be brought back to the office and put into practice. Well, that's what happened at SUGI 27. I had been working on a large data modeling project when my coworker attended SUGI. When he returned, he shared a paper by Nancy Croonen and Henri Theuwissen, titled "Table Lookup: Techniques beyond the Obvious". The paper contained a discussion of 7 different approaches to table lookups. Future references to this paper will use "the SUGI paper". The timing of receiving this information was perfect. I read the paper and considered which approach would work best for each of the situations I faced. I ended up choosing two different methods for two different reasons. This paper will discuss each situation and highlight reasons for deciding on each approach | proc sql, set statement, create table, trial summary, macro variable, call execute, dataset, where statement, lookup | source | 8 |
| 77 | The Evolution of a SAS/GRAPH Application | Jenine Eason | proc gchart, bar chart, proc step, output delivery system | source | 6 | |
| 78 | The Perks of PRX ... | David L. Cassell | Pattern matching lets you find chunks of text that have a particular pattern - even patterns that would be very hard to find using SAS functions like index() and substr(). For example, try finding all strings which have two consecutive words that are the same, not counting capitalization. Difficult with traditional SAS functions, but Perl's 'regular expressions' give you a simple language to search for patterns, extract patterns from strings, and even change text that matches your patterns. This is invaluable for all manner of text manipulation, including validation, text replacement, and string testing. With the advent of SAS 9, the power of Perl's regular expressions is now available in the DATA STEP |
prxparse, sas 9 | source | 10 |
| 79 | The SAS Data Step: Where Your Input Matters | Peter W. Eberhardt | Before the warehouse is stocked, before the stats are computed and the reports run, before all the fun things we do with SAS can be done, the data need to be read into SAS. A simple statement, INPUT, and its close cousins FILENAME and INFILE, do a lot. This paper will show you how to define your input file and how to read through it, whether you have a simple flat file or a more complex formatted file |
input statement, infile statement, raw data, sample, date variable, character variable, data step, sas log, cpu time, delimited file, dataset, length statement | source | 17 |
| 80 | The Utter "Simplicity?" of the TABULATE Procedure - The Final Chapter? | Daniel E. Bruns | proc step, proc tabulate, proc freq, sas base, label statement | source | 13 | |
| 81 | Tip: How to Use a 'quoted' SAS Macro Variable to Select Observations | Gary E. Moore, Little Rock |
Often times we would like to repeat some process on a variable subset of a data set's observations. One way to derive a given subset is to use the SAS DATA STEP 'where' clause with the 'like' operator, e.g., "where upcase(drug) like '%ADVIL%';". Here we are using the wildcard character '%' to select all observations where the drug name variable contains the Advil drug label name. Rather than repeating the process' DATA STEP(s), etc., each time with a different drug name it would be desirable to form a looping construct in a macro program using a macro variable to derive the subset. In other words, it wou ld be desirable to use a 'where' clause formed something like "where upcase(drug_name) like '%%upcase(&drug_name)%';". This statement doesn't work (for more than one reason). This paper describes different approaches on how to modify the 'where' clause so that it will be interpreted properly |
macro variable, macro quoting function, macro facility, data step | source | 6 |
| 82 | Tips of Installing SAS/IntrNet on Linux | Xiao (Michelle) Zhuang, Sharon Schiro |
SAS supports all major operating systems including Windows, UNIX, Linux, mainframe, Macintosh, and OpenVMS. Although Windows is SAS largest operating platform, Linux is widely used and tested by users worldwide, and more and more users are attracted to its open source and rapid growth. The North Carolina Trauma Registry initially developed ISSAC (Information System for State Trauma Advisory Committee) as a SAS/INTRNET application in a Windows environment, and then transferred it to the Linux operating system due to its reliability and ease of use. In contrast to most SAS installations, SAS/INTRNET is rather complicated. This paper covers tips on SAS/INTRNET Installation on Linux |
source | 3 | |
| 83 | To MDDB or not to MDDB - That is the question | Jeffrey L. Lessenberry | The struggle to find the right presentation tool in today's global market may seem like a scene from a Shakespearian play. The MDDB has played a large role as a data discovery tool but with a changing work environment is it still the best tool for the job? The decision whether to use MDDBs has come down to some fundamental choices in how and where the client will be presenting the data. With the interface of choice becoming the internet browser, do MDDBs have a place in this new world environment or will they go the way of the horse drawn carriage? This paper will look at how MDDBs are used in a fat-client environment, their evolution to a thin-client environment, and the pros and cons of both | macro loop, macro definition, %if-%then-%else, excel | source | 10 |
| 84 | Tools to Transfer Data between SAS and Stata | Dan Blanchette | This paper demonstrates how to transfer data between SAS and Stata by running Stata from within SAS or SAS from within Stata using any of the following programs I have written: - SAVASTATA: SAS macro to save a SAS data set as a Stata data set - SAVASAS: Stata program to save a Stata data set as a SAS data set - USESAS: Stata program to use a SAS data set while in Stata - SAVAS (c-shell) script: Invoked at a Unix or Linux prompt makes a Stata data file copy of a SAS data file or a SAS data file copy of a Stata data file. Since SAVASTATA runs during a SAS session and SAVASAS runs during a Stata session, you may choose to save only the converted file avoiding the unnecessary creation of a data file just to run through a conversion software program. USESAS simply allows you to open a SAS data set into Stata. Space is saved, file management is decreased, and documentation of the creation of the converted file is saved in the log of your program | dataset, format statement, user-defined format, numeric variable | source | 5 |
| 85 | Toward Object-Oriented Macros in SAS | Mark Tabladillo | The qualities which SAS macros share with object-oriented languages account for the power of macro programming. This presentation will attempt to describe the extent to which SAS macros are object-oriented (defined as encapsulation, polymorphism, and inheritance) with the goal of extracting best practices for SAS macro programming | macro definition, macro facility, macro variable, stored macro, proc step | source | 9 |
| 86 | Transferring Your Mainframe SAS Programs to Your PC in Three Easy Steps | Michael A. Raithel | You have built up quite a collection of useful SAS programs in your many years of using the SAS System on mainframe computers under MVS. Now that you find yourself doing more and more work in PC SAS, it seems a shame to write new programs entirely from scratch. Wouldn't it be more helpful to port your mainframe Partitioned Data Set (PDS) of SAS programs to a file on your PC? Then, you could reuse your mature SAS code on the desktop by making simple modifications to suit it to its new environment and to the particular task at hand. This paper illustrates an easy way to transfer a PDS of SAS programs from the mainframe to the PC in three easy steps | flat file, proc step, macro definition | source | 4 |
| 87 | Tricks with the 4mat Procedure | Ben Cochran | Actually, there probably are not a to tal of 44 tricks that one can do with the FORMAT procedure. The number was chosen purely for the purposes of alliteration. However, there are some fairly powerful things one can do with this procedure, and this paper serves as a gentle introduction to the FORMAT procedure. In SAS , a format is simply instructions on how to write or display a value. There are dozens, if not hundreds, of formats that ship with the SAS system. While they cover many of the user's needs, they cannot possibly cover all of them. So, the SAS System includes a tool that allows users to create their own formats. That tool is the FORMAT procedure |
proc step, proc format, format statement, proc freq, proc print | source | 6 |
| 88 | TU-09 Speaking Klingon: The Power of PROC TABULATE | Dianne Louise Rhodes | A frustrated colleague once complained to me that he couldn't understand the SAS Reference Manual for PROC TABULATE. "It's written in Klingon!" he exclaimed. I have found that the basics of Tabulate are easy to use if it is recognized as being a different set of constructs than used by other SAS Procedures. New features in version 8 make it much easier to produce the statistics that you want. The Bureau of Labor Statistics Table Producing Language/Print Control Language (TPL/PCL ) has been used to produce vital statistics tables for many years. This paper introduces the TPL concepts that are the foundation of PROC TABULATE. These fundamentals are used to demonstrate how to build more complex tables, and how to exploit totals, percentages, and percentage bases. The paper demonstrates how to use formats to produce easy-to-read tables, including rows for all missing data |
proc tabulate, proc step, class variable, proc format, proc freq, ods html | source | 13 |
| 89 | Using Acting Techniques to Create a Successful Presentation | Lois Levin | When you make a presentation at a User's Group conference or to any group anywhere, it is important to find the best way to communicate your information. A paper presents your ideas in writing, but a presentation is always a performance. The best performers are actors and they know many techniques for creating an effective performance. This paper will discuss a few of those techniques that can be adopted to make your technical presentation an interesting and enlightening performance. The corresponding presentation will, of course, be far more dramatic! | source | 4 | |
| 90 | Using Different Methods for Accessing Non-SAS Data to Build and Incrementally Update That Data Warehouse | Ben Cochran | Often SAS users need to access data from non-SAS sources. This is especially true when constructing a SAS data warehouse from other vendors' databases. While this task is not too difficult, sometimes unforeseen challenges can arise, especially when dea ling with date values. This tutorial initially takes a look at several methods for accessing different kinds of data to do the initial load of the data warehouse. Then attention is given to various ways of doing incremental updates and how to overcome some potential problems. This paper follows the tasks that were involved in a specific retail application and how a certain organization faced and overcame the challenges that accompany building and updating a data warehouse. To accomplish its objectives, this paper is divided into seven sections. The first section looks at the environment and issues surrounding the initial load of the warehouse | date variable, libname statement, proc sql, data warehouse, proc step, dataset, macro variable, create table | source | 9 |
| 91 | Using Dynamic Data Exchange to Customize Formatted Reports in Microsoft Excel | Dennis J. Beal | Dynamic data exchange (DDE) is a powerful tool within SAS that programmers can us e to send data stored in SAS data sets directly into formatted Microsoft EXCEL tables. This process both reduces human error because the data are not hand entered into EXCEL where numerical precision can be lost and saves ti me since the user need not format the table manually |
excel, macro variable, data step, dataset, proc freq, e., do loop, sample, macro call, missing value, standard deviation, macro definition | source | 19 |
| 92 | Using PROC COMPARE in a SAS/AF Application for Tracking Corrections made to SAS Datasets for a Clinical Trial | Emily A. Mixon | Maintaining a record of data corrections added to existing data sets is an important data management activity for clinical studies. As part of a clinical trial at The University of Alabama at Birmingham, we have created a SAS/AF application for entering and correcting the data obtained during the trial. When corrections are made to the data the correction operator ID, the date and time the correction was made, the type of error, and the reason for the correction are recorded in the data set. Once corrections are made for the day, the user saves the data sets using an icon on the main menu of the application. The SCL behind the frame renames the data sets adding the date they were modified to the end of the original data set name and then the data sets are saved. The user then goes to the comparison portion of the application where the PROC COMPARE procedure in the SCL of the frame compares the two user selected data sets and generates output for review |
proc step, proc compare, clinical trial, proc sql, proc means, visit | source | 6 |
| 93 | Using SAS at SAS: The Mining of SAS Technical Support | Annette M. Sanders, Craig DeVault |
Over the last decade, the amount of data that has been collected and stored has increased dramatically. Statistical methods have been, and continue to be, refined and perfected to yield valuable answers to business problems and goals using standard qualitative and quantitative data analysis methods. However, an overwhelming portion of all data collected is actually unstructured text. The evaluation of textual data is a relatively new focus area of statistics. Classical methods that generate answers to business problems can be enhanced effectively by coordinating the analysis of textual data with SAS Enterprise Miner and SAS Text Miner. The Technical Support Division at SAS has not escaped this deluge of data. Although we collect data for every question or problem that we receive in order to manage the delivery of answers and solutions, we have never used the data as a tool for discovering underlying behavior or patterns of software and support issues -- until now | data mining, proc freq, proc hpsplit, dimensionality reduction, regression analysis, dataset, chi-square test, scree plot, txt, proc corresp, outlier | source | 22 |
| 94 | Using SAS to Facilitate Data Comparisons | M. Rita Thissen, Elizabeth Heath |
As part of a longitudinal survey of children, we collected data about the primary subjects and their caregivers. Identifying information for many of the caregivers changed from one wave of interviewing to the next as the children moved from family settings to foster homes or other living situations. In retrospect, we needed to determine if the caregiver had changed or had remained the same. We used SAS to match caregivers by case ID and perform a logical comparison of selected identifier information, assigning each caregiver a value for a flag variable which denoted whether the caregiver was the same or different from the previous interview, or if the comparison was ambiguous. In order to increase the usefulness of the flag variable, project staff manually reviewed data for each ambiguous case, to determine if the caregiver was the same, different, or if it was still ambiguous | flag variable, numeric variable, compress function, missing value, excel, sample | source | 12 |
| 95 | Using SAS to Make an Independent Assessment of Electronic Medical Records | Patricia B. Cerrito | There are many claims concerning the benefits of electronic medical records: reduction in medical errors, more accurate billing records, more timely treatment of patients. However, these claims are rarely validated through statistical analysis. Using different types of data in the electronic medical database, it is possible to investigate the validity of claims of improvement in the quality of patient care. It is also possible to investigate the impact of physician decision-making on patient outcomes. For the ER, it is also possible to examine the relationship of triage (the ranking of severity of patient complaint) to patient ER discharge (home, home health, physician follow-up, admission to hospital). Kernel density estimation (PROC KDE) and Text Miner will be used in conjunction with more inferential statistical methods to investigate data from electronic medical records based in a hospital emergency room |
link analysis, correlation, proc step, dataset, data mining | source | 17 |
| 96 | Version 9 ODS - Basics | Dana Rafiee | ods html, proc step, output delivery system, sas output | source | 11 | |
| 97 | Version 9 Programming Enhancements | Marje Fecht, Cape Coral |
Performance improvements are the well-publicized enhancement to Version 9, but what else has changed that impacts your "SAS programs"? This Hands On Workshop explores many new Version 9 features including: new functions that may eliminate the need for complex expressions changes and additions to informats and formats interface additions and improvements new Export capabilities procedure enhancements and more. . . This workshop is beneficial for Version 8 SAS users who are getting started with Version 9 | character functions, proc step | source | 4 |
| 98 | What's That Note/Warning/Error Mean and How Do I Fix It? | Deb Cassidy | The SAS System provides lots of notes, warnings and error messages in the log. Some messages are very clear but others can leave you wondering why it appeared. In most cases, you have to resolve the error message to get your program to run. However, your program can run with notes and warnings. What many new users - and even a few experienced users - may not realize is that they could be getting wrong results. This presentation will cover some common notes, warnings and error messages by showing examples of what could have caused the message. You'll also learn some ways to help you determine if you are getting wrong results. A Simple Example The following code shows a simple error and some helpful notes. data one; item1=4; item1=5; run; PROC PRINT data=one; var item1 item2 item3; run; The log shows: 1 data one; 2 item1=4; 3 item1=5; 4 run; NOTE: The data set WORK.ONE has 1 observations and 1 variables |
proc step, error message, proc sql, create table, output, cpu time | source | 10 |
| 99 | When Bad Programs Happen to Good People: Shuffling, Shifting, and Structuring an Inherited SAS Program | Gary E. Schlegelmilch | Invariably, when we go to a SAS programming class, we are taught the basics of how the language works, and ways to lay out a program. The problem is, once we leave an academic arena and into the professional one - we don't always write programs from scratch. Often, as jobs change, personnel change, and requirements change; we are often called upon to take an old program, and update it for new requirements. In this paper, we'll discuss some of the basic tools available within SAS, and how to use them effectively to update outmoded, unstructured, and just generally bad coding | filename statement, dataset, data step | source | 6 |
| 100 | Where's The Match? | Jennifer L. Waller, Verna C. Brantley, Robert H. Podolsky |
Statisticians, while not data managers, are often asked to perform data management tasks. One task is to match a study group to a comparison group one-to-one on several variables. While easy for small datasets and matching only categorical variables, matching thousands of study subjects to thousands of comparison subjects where data come from large administrative databases and the matching variables can be categorical and continuous is difficult. How do you match continuous variables with the comparison subject being within some range of the study subject (e.g. age within +/- 2 years)? The utilization of SAS / Macros is one solution. The created macro uses a study subject data set, a control data set, and outputs a data set containing the one-to- one matched subjects | interval variable, nominal variable, proc sort | source | 6 |
| 101 | Why the DATA Step Does What It Does | Neil H. Howard | The DATA STEP is the most powerful tool in the SAS system. Understanding the internals of DATA STEP processing, what is happening and why, is crucial in mastering code and output. Concepts covered: Logical Program Data Vector (LPDV or PDV), automatic SAS variables and how they are used, the importance of understanding the internals of DATA STEP processing, what happens at program compile time, what's happening at execution time, how variable attributes are captured and stored, and * handling processing defaults, data conversions, and missing values. This paper focuses on techniques that capitalize on the power of the DATA STEP and working with (and around) the default actions. By understanding DATA STEP processing, you can debug your programs and interpret your results with confidence |
dataset, missing value, proc step, automatic variable, retain, input statement, set statement, by group processing, merge statement, proc print, proc contents, character functions | source | 19 |
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