HOME QUICK SEARCH AUTHORS KEYWORDS HELP BUGS

SUGI 2003 Papers - Index

270 papers. Source: SAS Users Group International conference proceedings.

# Title
×
Authors
×
Abstract
×
Keywords
×
Extras Pages
1 "From Data to Analysis, Results and Reports"-- A Researcher's Dilemma but a Programmer's Challenge Shabnam Mehra Let SQL, ODS and Macros make it easy for you. Automation is the keep to save time and repetitive work for a programmer. Administrative data are always a challenge to clean, format and use effectively in analysis. Using macros to clean, format and combine administrative data saves time and energy for a programmer. PROC SQL within a macro can help to combine multiple tables, calculate summary variables and generate more meaningful queries and tables. Using SQL to generate tables can help you create more "user-friendly" and "analysis-friendly" datasets. PROC FREQ and PROC MEANS used to generate descriptive and basic statistics can be automated within a macro. The output objects or tables from the analysis can be sent to one or more destinations, such as html, rtf (word) or CSV (EXCEL) using ODS statements. Automation using macros saves repetitive coding and ODS helps to generate high quality reports in short time proc step, excel, proc sql, proc freq source 5
2 %Fun &With %SYSFUNC Derek P. Morgan The %SYSFUNC macro has allowed access to the SAS component language inside of traditional DATA STEP programming. We have used this to great advantage during version 6 to version 8 migration and in our work with our external collaborators. We've used %SYSFUNC to simplify renaming variables, changing case of variable names, and to simulate the IMPORT wizard as a part of a larger table creation task. The first two will be covered in this paper. Macro 1: %varnames: Modify Data, Alter Variable Names This macro was developed because of incompatible data structures. One of our collaborators sent us a SAS System table that was to be pooled with ours. However, they used an entirely different data structure. Our data structure used one character variable (with the marker name as the variable name) to represent both alleles of a genetic marker, they used two numeric variables to represent each allele, and the variable name was the marker name, with either a "1" or "2" appended macro variable, macro function, character variable, numeric variable, macro loop, macro definition, %if-%then-%else source 3
3 %MONDRIAAN: Presenting 3D Information in 2D Erik W. Tilanus The %MONDRIAAN macro creates charts that visualize 3- dimensional data in a 2-dimensional way. It uses 2 classification variables, one being a subdivision of the first (the first dimension) and 2 analysis variables, one to draw area's on the chart (the second dimension) and one to color area's (the third dimension). The macro takes care of all steps from raw data to chart proc step, proc gmap, response variable, macro facility source 3
4 %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 macro variable, %if-%then-%else, macro facility, macro definition source 5
5 'I'll Have What She's Having' - Serving-up MetaData to Academic Research Teams Jeanne M. Spicer All academics demand reproducibility of results, but most admit that they have trouble reproducing their own results, let alone those of another researcher. Continuous experimentation with data defies documentation efforts. In a large project on the mechanisms of aging, the researcher collecting data on bone density may observe an interesting phenomenon and want to access the data another researcher is collecting on the subjects' blood chemistry to try to explain it. A researcher looking at the subjects' physical activity may want to use another team member's values for body mass index calculated from height & weight and corrected for underlying gender differences. Since there's always a rush to get the data loaded into the database, data entry or calculation errors may be found after analyses have been run dataset, proc contents source 3
6 'The California Template' or 'How to Keep from Reinventing the Wheel Using SAS/IntrNet, JavaScript, and Process Reengineering' Blake R. Sanders Creating SAS/INTRNET applications is straightforward, but creating multiple programs with different datasets can be time consuming. In our experience, this is especially true when the application is extremely flexible and customized. This takes time, and that's not always available. By reengineering the process used in the applications, however, it is possible to have one set of flexible scripts to service multiple applications. This collection provides the basic tools for data analysis and output as well as an opportunity for customization. The result is simple, clean and easily maintained. It is a template on which applications can grow with virtually no start- up time and from which they can expand once the users' true needs come to light where statement, macro variable source 6
7 'Watch Your Language!' - Using SCL Lists to Store Vocabulary Greg J. McLean Developing SAS applications or programs almost always involves the use of spoken language or vocabulary. Whether it is text on a FRAME object (i.e. Pushbutton, List Box Title, etc.) or error messages written to the SAS LOG, we must deal with this issue. And quite often these applications or programs are either bilingual or multilingual. The use of a "vocabulary dictionary" (one for each spoken language) can prove to be very useful and an efficient way to include vocabulary in your systems. This separation of vocabulary from the actual software is beneficial even if only one spoken language is used. The focus of this paper is to provide a method to address the use of spoken language or vocabulary in SAS applications or programs, particularly those that are bilingual or multilingual. Discussion focuses on the use of SCL lists as a medium to store vocabulary dataset, flat file, catalog, macro variable source 6
8 A Beginner's Guide to Incorporating SAS Output into Microsoft Office Applications Vincent DelGobbo This paper provides techniques for incorporating the output from SAS software, regardless of the install platform, in Microsoft EXCEL and Word (versions 2000 and later). The paper focuses on the use of the Output Delivery System (ODS) and SAS servers excel, proc step, proc tabulate, ods html, sample, sas output, proc print, output delivery system, macro variable source 8
9 A Case Study of the Tools, Techniques, and High Level Model Used to Tune AIX Version 5L for the SAS System Frank M. Bartucca,
Torre DeVito
This paper presents a case study of the efforts undertaken at the SAS/IBM Corporate Technology Center to optimize the performance of the SAS System on AIX Version 5L. A high-level model is presented as the overall organizing framework. Performance measurement and analysis techniques are examined in the context of a data-driven approach. The utility and effectiveness of various performance tools is evaluated cpu time, performance tuning, sas log source 5
10 A Drill-Down Diet: An Example of a Dynamic Detail Access on the Web Using SAS/GRAPH and ODS Nadia Redmond With web-based graphs and reports, we have been able to accelerate decision-making for our national multi-site clinical studies. In this paper, I expanded our use of SAS/GRAPH and ODS (Output Delivery System) to create a drill-down profile plot from customized box plots identifying those study participants who are 'outliers'. This paper utilizes the production version of the SAS/GRAPH and ODS features in SAS V8.2. I assume at least novice knowledge of SAS/GRAPH and box plot, outlier, proc gplot, proc step, output delivery system source 4
11 A Handy Use of the %LINE Annotate Macro Deena D. Rorie,
Lynette K. Duncan
SAS/GRAPH is a powerful and flexible tool for generating plots. The Annotate facility provides even more flexibility. Most new SAS/GRAPH programmers shy away from the Annotate facility, but the macros available in the Annotate facility are simple to use and should be a part of every SAS/GRAPH programmer's toolbox. This paper demonstrates the usefulness of the %LINE macro in a GPLOT graph and is directed to users of SAS/GRAPH who may or may not have been brave enough to use the Annotate facility data step, dataset source 3
12 A Macro Using SAS ODS to Summarize Client Information from Multiple Procedures Stuart D. Long,
Rebecca Darden
If the client requests the programmer to run multiple procedures, repetitively, massive amounts of output may be generated. However, the client may only be interested in reviewing a fraction of each set of statistics which are output by the procedures executed. This macro demonstrates how to use ODS OUTPUT to summarize large quantities of output from multiple procedures and combine them into one summary dataset. In our paper, we combine output from PROC LOGISTIC and PROC FREQ. Requested exposures are modeled sequentially to generate crude and adjusted statistics. Desired statistics from each procedure are kept as one or more observations in a dataset per exposure. These datasets are then merged by exposure to generate a dataset which contains both crude and adjusted statistics for the exposure. These merged summary datasets are finally concatenated sequentially, as the macro executes, to produce one summary dataset for all exposures for which the macro was executed macro variable, call symput source 6
13 A Pinch of SAS, a Fraction of HTML, and a Touch of JavaScript Serve Up a Grand Recipe Jonah P. Turner ods html, macro variable, output delivery system, proc sql source
14 A Plot and a Table Per Page Times Hundreds in a Single PDF File Daniel J. Leprince,
Elizabeth Li
In the Windows environment, it is relatively easy to integrate a figure and a table in a single spreadsheet or a page in a word-processor. When hundreds of these pages need to be generated and stored in a format that cannot be altered by the end-user then the SAS System and the Adobe Acrobat Distiller are more appropriate tools. This paper will present the SAS code of a specific applica tion to produce a postscript file containing multiple pages of a plot and a table per page. The Adobe Acrobat Distiller is used to transform the postscript file into a Portable Document File (PDF). In this paper, macros and several SAS/GRAPH features are presented (note, annotate dataset, and GPLOT, gslide, greplay and gprint procedures). Emphasis is put on the use of hardware fonts which can dramatically reduce the overall size of a document. Key words: Annotate, note, GPLOT, gslide, greplay, and gprint do loop, macro variable, proc means, proc step, macro loop, macro definition, %if-%then-%else source 6
15 A Programming Development Environment for SAS Programs Tim P. Williams,
Lee Walke
Organizing the programming effort for large projects can be a daunting task. Programming teams are under pressure to complete work accurately and ra pidly, while using standard templates and macros whenever possible. Add to that several levels of documentation and a manager's need for frequent status updates and you have an administrative nightmare. A system is necessary to integrate programming documentation, validation check lists, and real-time status reports. After deciding to centraliz e our project management spreadsheet, program header documentation, and validation documents, we found that we had the beginnings of a web- based programming developmen t environment (PDE) for SAS programs. This paper describes a database-driven system for organizing SAS programs written using Active Server Pages, Visual Basic, and Javascript data cleaning, 21 cfr part 11, audit trail, dataset, validation documentation, sas programming source 6
16 A SAS Market Basket Analysis Macro: The Poor Man's Recommendation Engine EngineMatthew F. Redlon Market basket analysis is a mathematical technique frequently used by marketing professionals to reveal affinities between individual products or product groupings. Decision Intelligence, Inc. (DII) has prepared an open source SAS market basket analysis macro and made it available for download at www.dii-online.com . The purpose of this paper is to run through data preparation, program execution and, in an effort to explain the results, one potentially valuable application. Whether for web site personalization, telemarketing or email marketing campaigns, the popularity and success of recommender systems continues to grow each year. Unfortunately, the cost of implementing such a solution is still prohibitively high for most small companies. Using the SAS market basket analysis macro, even a small company can have what we like to call the "Poor Man's Recommendation Engine" market basket analysis, dataset, macro definition source 4
17 A SAS/IML Program for Mapping QTL in Line Crosses Chenwu Xu,
Shizhong Xu
We developed a SAS program to implement QTL interval mapping and composite interval m apping for complex traits in line crosses. The program consis ts of four macros. The first macro (QTLPROB) calculates the conditional probabilities of QTL genotypes at any putative position of the genome given observed marker information. This macro handles missing and partially informative markers using the multipoint method. The second macro (QTLMAP) provides estimates of QTL effects and test statistic for any putative position of the genome. Maximum likelihood method and likelihood ratio test are used in the analysis. The third macro (THRESH OLD) determines the critical value used to declare statis tical significance using the approximate method of Piepho. Piepho's method is simple and fast because it requires no permutation resamplings of the data. The last macro (GRAPH) graphes t he result to visually identify the QTL position on the corresponding chromosome likelihood function, covariance, significance level, type i error, null hypothesis, sample, maximum likelihood estimation, monte carlo, macro definition, posterior probability, dataset, proc genmod source 6
18 A Serious Look at Macro Quoting H. Ian Whitlock You can make decisions macro with %IF and do looping with %DO-loops. But there are times when you don't understand why the beast does what it does. Now what? It is time to come to this presentation. It is time to take a serious look at macro quoting. I have often said that anyone who thinks macro quoting is simple, probably doesn't understand the problem; so I have been there. Now I want to explain how simple it is. Everything relevant to this paper is in SAS/BASE. Although the examples have been executed on a PC under Windows, the examples are independent of any particular operating system with the exception of file definitions. You might think this paper is a compendium of all the macro quoting functions. It is not. It is more about the subject of macro quoting than about the macro quoting functions macro facility, macro quoting function, macro variable, macro put, &variable, macro function, put statement, macro definition, %if-%then-%else, macro call, macro loop source 10
19 A Simple Bayesian Approach in Mining the Touch Point Data Aaron Lai In any CRM cycle, we often adopt a "multiple touch point" strategy by using phone, mail, email or other communication channel. It is important to know how will a customer react to different touch points, or different combination of touch points. The analytical work could easily become unrealistic as the combinatorial computation could soon beyond reach. Just a 30 touch points system and consider only 5 stages of interaction; the total cases will be 30 to the power of 5 (24.3 million cases!). This is also a path dependent case, as the customer will behave differently if you email first and then call versus call first and then email. I am proposing a simple Bayesian approach to analyze the touch point data association rules, correlation, proc sql source 4
20 A Simplified and Efficient Way to Map Variables of a Clinical Data Warehouse Yanyun Shen In the pharmaceutical industry, pooling a number of studies together to analyze the safety and efficacy data is a routine task to supplement FDA filing. In order to be able to accomplish this task, data sets of the same domain from different studies need to be standardized to the extent that they have the same structure and set of variables. Corresponding variables from di fferent studies share the same attributes. While there are numerous ways to perform the task, this paper presents a simplified and efficient dataset, data warehouse, excel, adverse events, macro loop source 6
21 A Successful Implementation of a Complicated Web-based Application Through webAFTM and SASTM Integration Technologies aper 179: Hettie Tabor An Integrated View of the Customer Clare A. Nicklin,
Daniel Morris
Amadeus Software Ltd. in the United Kingdom has been involved in analysing, designing, and implementing a complicated, web-based, tax modelling system. The system was built to be a browser based application, available internally through a company intranet. This paper, initially, details the applications software requirements where a combination of SAS software (including webAF from AppDev Studio, Integration Technologies, SAS/AF software, and Base SAS Software Release 8.2) and additional software (such as Apache, Tomcat, and JDK) was used collectively. Secondly, the systems architecture is summarised to describe how the specified software and hardware components are organised. Thirdly, the applications design features and defining characteristics are explained. Finally, a number of difficulties that emerged during the process of creating the application using the specified software are described sas base, dataset source 4
22 A Table-Driven Solution for Clinical Data Submission Jim Sattler It isn't easy to prepare clinical data for regulatory submission. Clinical trials often contain data from a large number of studies that may have been conducted over a long period of time, sometimes in different countries. The non-standard raw files from the studies have to be converted into new, standardized files, and each file has to be accompanied by metadata in accordance with published CDISC (an industry standards committee) guidelines. Theoretically, hundreds, even thousands, of programs might be needed to complete this work. In that case, the submission process could become extremely arduous. Large numbers of programs would need to be written, debugged, and then possibly modified during a QA process. Alternatively, the use of a table-driven methodology makes it possible to complete this task with far less strain and risk. The investment in building a table-driven system can provide unexpected dividends excel, proc step, clinical data, proc contents, clinical trial, proc format, adverse events, dataset, raw data, cdisc source 6
23 Accelerating Performance of SAS Applications via Rapid Extraction and Multiprocessing John M. LaBore,
Fred R. Forst
All large commercial operations generally face the same problems: massive amounts of data; hardware/software constraints; and tight deadlines to generate analyses and reports. Handling these situations has always been a SAS software strongpoint. However, even within SAS, determining the best (i.e., fastest) method is not always easy, since SAS typically provides multiple ways to accomplish the same task. This is further complicated by the common situation within companies of having multiple hardware platforms, multiple datasources, and a vast array of reporting requirements and needs. Today's rapid rate of mergers and acquisitions, the creation of joint ventures, and the evolution of all types of working alliances/collaborations further increase the likelihood of such complex computing environments. In this paper, we examine real-time performance across a variety of hosts, clients, and datasources using different approaches to extract and process data proc step, parallel processing, proc copy source 8
24 Accelerating the Construction of Data Entry Applications in UNIX Systems for Epidemiology and Healthcare Policy Researches Raya Barishev,
Arnona Ziv,
Gady Kotler
data dictionary, dictionary tables source
25 Advanced Analytics with Enterprise Guide Catherine Truxillo,
Stephen McDaniel
sas enterprise guide source
26 Advanced CRM Solution Using Java Applications Dan A. Nabot,
Ronen Cohen
This paper presents a Java Applet developed using the Sas System and AppDev Studio Software. This Applet is aimed at bringing all the information available on a single customer to people in charge of dealing with customers in the enterprise. The first part of the paper demonstrates briefly the need for such a tool in a Customer Relationship Management perspective. The second part presents the main features of the Applet and demonstrates the use of graphic objects to organize the information on the customer. The third part of the paper explains that the making of all those features was made possible with the help of the technology that the SAS Institute provides and presents the reader with the advantages of using this technology. SAS Products: SAS/BASE SAS/STAT bar chart, dataset source 2
27 Advantages of Using a Web Based Reporting System Over Using SAS/CONNECT Mollie Van Loon,
John M. Shingler
The Consumer Services Information System is a SAS database containing information on consumer contacts with the Pennsylvania Public Utility Commission (PUC). Users are able to access the database and run reports from remote locations, using SAS software. The reporting system was converted from a system written in SAS 6 and using SAS Connect to a web-based system developed in SAS 8 to overcome several problems associated with the former. This paper shows how reports from the old system were adapted to a Web based reporting system and details the advantages of the new system over the old proc sort, group by source 2
28 An Alternative to PROC MI for Large Samples David T. Lanning,
Doug Berry
Often, when building statistical models, you need to modify or recode data that have missing values. There are several accepted methods to do just that, including the new SAS/STAT procedure PROC MI (Multiple Imputation). PROC MI creates multiple, if desired, imputed data sets for incomplete multivariate data. After the data sets are created, another procedure, PROC MIANALYZE can be used to generate valid statistical inferences by combining the results from the multiple imputed data sets. PROC MI works well for samples of a few thousand records or less with a limited number of variables. Sometimes, though, researchers have tens of thousands, or even millions of records and a large number of variables. In these cases, PROC MI can become slow, or not even be able to impute the data at all. This paper explains how to accomplish an alternative to PROC MI for large datasets using PROC MEANS, SAS Macros, Arrays, and IF/THEN logic in the DATA STEP proc step, proc mi, missing value, imputation source 3
29 An Approach to Displaying Predicted Survival Data Based on the Level of a Continuous Covariate Cristine Allmer,
Daniel J. Sargent
Kaplain-Meier estimates are widely used for plotting survival curves over time, for one or more strata. Graphical display of survival estimates based on a continuous covariate are more problematic. We propose a simple approach to plotting survival estimates at a specified point in time, based on the value of a continuous explanatory variable. This proc step, proc phreg, predictor variable, data visualization source 4
30 An Automated MS Powerpoint Presentation Using SAS Rick A. Allen Monthly reports are a fact of life for many SAS programmers. In many cases the reports must be in the form of MS EXCEL spreadsheets or PowerPoint slides. Creating these reports each month consumes valuable programming resources. This paper presents a method to conserve these resources by automating the process of building a set of MS PowerPoint slides from information contained in SAS data sets excel, proc step, macro variable, macro definition, sample, %if-%then-%else source 6
31 An Automated Reporting Macro to Create Cell Index - An Enhanced Revisit Shi-Tao Yeh When generating tables from SAS /g226 PROC TABULATE or PROC REPORT to summarize data, sometimes it is necessary to produce a cell index as part of the data display. A cell index is simply a data listing that reports the summarized count of each cell shown in the table. This topic was presented and discussed at NESUG'01 Conference [7]. Several enhancements have since been made resulting in a major modification of the original code. It provides an automated SAS reporting macro to generate a cell index with several new features. The design goal for this program is to provide an efficient, flexible and easy-to-use macro. The SAS product used in this paper is SAS BASE, with no limitation of operating systems macro definition, proc step, proc report, macro parameter, macro call, sample, %if-%then-%else source 5
32 An Efficient Approach to Combine SAS Data Sets with Voluminous Variables That Need Name and Other Changes Grace Chiu,
Edward Heaton
In some longitudinal studies involving the collection of participant data by means of questionnaires, researchers modify their data collection instrument, i.e. questionnaire, after baseline data collection has started. A questionnaire could go through several versions before the entire data- collection process is finished. Consequently, SAS programmers are often required to consolidate multiple wide, dissimilar data sets for analysis. This paper demonstrates an approach to such a task that builds a Microsoft EXCEL file as a reference guide to finalize all changes and processes the required changes in SAS. Users will learn to use the SQL procedure'sSELECT INTO clause to build two parallel lists of macro variables for the renaming of numerous variables, macros to change variables, and PROC APPEND to enforce gold standard attributes. Basic programming knowledge in SAS is required. This paper should benefit data management and data processing professionals proc step, proc contents, lookup, excel source 5
33 An Inside Look at Version 9 and 9.1 Threaded Base SAS Procedures Robert S. Ray This paper looks at the changes in key SAS Base procedures which now incorporate threading to achieve significant performance improvements on SMP architectures. The paper is relevant to the following SAS procedures: SORT, SUMMARY, MEANS, TABULATE, REPORT and SQL. We look at software scalability in general and specifically how threading has been utilized in these procedures to enhance scalability. Sample test plots illustrate how threading can reduce the real-time to completion. We also cover the new system and PROCEDURE OPTIONS that pertain to threading such as THREADS and CPUCOUNT. In addition, we cover guidelines regarding utility I/O configuration that will help optimize scalability and discuss the new startup parameter UTILLOC proc sql, sas base, proc sort, class variable, cpu time, proc step, train-test split, proc means source 6
34 An Interactive Table for the Web Using SAS and JavaScript Alan D. Leach SAS provides a myriad of methods to produce HTML output. Add some custom JavaScript to the mixture and one can produce dynamic HTML reports. In this poster we demonstrate a web based tabular report that allows the user to collapse or expand rows of the table in order to drill into the data via a hierarchy of class variables. The HTML and JavaScript are produced using BASE SAS and can be executed via a SAS/INTRNET application dispatcher program or in batch to produce stored HTML pages. The JavaScript that interacts with the user makes use of recursive functions to display or hide the child rows. It is a simple way to produce interactive web pages from a SAS dataset. In this poster we will explain our web report and its functionality. We will then demonstrate the JavaScript functions that provide the user interaction. Finally we will explain how we use SAS DATA steps and PROCs to produce the HTML and JavaScript for these interactive tables class variable, proc step, sas base, ods html source 6
35 An Introduction to Genomics and SAS Scientific Discovery Solutions Russell D. Wolfinger,
Susan Flood
The commoditization of genomics instrumentation has created a strong need for management and analysis of the resultant high volumes of complex data. This paper provides a brief description of the basic science underlying these data sources and an overview of the initial steps SAS has taken to address them in our new SAS Scientific Discovery Solutions product line. Three core SAS foundational elements--data warehousing, analytical servers, and JM--apply across the three principal foci of the central dogma of molecular biology: genetics, transcriptomics, and proteomics. The integration of these elements in a unified application provides you with unprecedented power to intelligently extract knowledge from your genomics data and make breakthrough discoveries. We highlight the technical aspects of this system using a microarray data example and then discuss several new development directions proc mixed, correlation, sample, proc step, dataset, volcano plot, data warehouse, audit trail, macro definition, normalization, main effect source 7
36 An Introduction to the Analysis of Mixed Models Dallas E. Johnson This paper introduces the General Linear Mixed Model (GLMM) and compares various alternatives for estimating estimable functions of the model parameters and provides some of the advantages and disadvantages of each of the alternative methods of estimation. The paper also considers estimating the standard errors of the various estimates of estimable functions and how the estimates and their estimated standard errors can be used for statistical inference. Special cases of a GLMM include all types of split-plot experiments, repeated measures experiments, and various combinations of these. Examples will be given to illustrate how these kinds of experiments fit into a GLMM framework likelihood function, repeated measures, proc genmod, fixed effects, maximum likelihood estimation, proc calis, proc mixed, restricted maximum likelihood, anova, compound symmetry source 4
37 An Overview of SAS Certification and the Test Development Process Linda Althouse,
Marc Vaglio-Laurin
In 1999, SAS Institute, Inc. launched the SAS Certified Professional Program. Today, there are over 3000 individuals with SAS certification around the world and interest in the program continues to grow. The intent of the SAS Certified Professional Program has always been to provide a standardized measure to assess the knowledge and skills of SAS users. However, in order for this to occur, two items must be met. First, certification examinations must be valid and reliable instruments. Second, the examinations must map to credentials that meet the needs of SAS users and assess actual job roles and responsibilities within the SAS user community. The purpose of this paper is twofold. First, this paper will describe the rigid and lengthy test development process used to develop the SAS certification examinations sas base, data warehouse, sample, data governance, macro definition, macro facility, proc sql source 8
38 Analysis of Data from Recurrent Events Gordon Johnston Time-to-event data have long been important in many applied fields. Many models and analysis methods have been developed for this type of data, in which each sample unit experiences at most a single end- of-life event. In contrast, many applications involve repeated events, where a subject or sample unit may experi- ence any number of events over a lifetime. There is a growing interest in the analysis of recurrent events data, also called repeated events data and recurrence data. This type of data arises in many fields. For ex- ample, the repair history of manufactured items can be modeled as recurrent events. In medical studies, the times of recurrent disease episodes in patients can also be modeled as recurrent events. This paper describes methods for the analysis of re- current events data. Nonparametric methods involv- ing extensive use of graphics for the analysis of such data are discussed in a new book by Nelson (2003) proc phreg, proc step source 8
39 Analysis of Method Comparison Studies Using SAS Samia M. Hashim,
Mohamed M. Shoukri
proc step, proc gplot source 5
40 Another Shot at the Holy Grail: Using SAS to Create Highly-Customized Excel Workbooks Ted Conway A different approach to the age-old problem of creating highly- customized EXCEL workbooks in an automated fashion is presented in this paper. The technique departs somewhat from more widely documented approaches in that it does not employ DDE, ODS, EXPORT, or SAS2XCEL and requires only Base SAS. This technique may be of interest to all skill levels and uses Base SAS on the PC excel, txt source 3
41 Application of the LOESS Procedure for Monitoring and Detecting Critical Movements in the US Automobile Market Keiko I. Powers,
J. Michael Jay,
Tie Gao
A nonparametric regression method, LOESS, is a procedure that performs local regression, and it allows us to derive a non-linear fitted line to closely represent a systematic pattern of various dynamic phenomena. The method works particularly well when dealing with rather noisy data, and therefore, the estimation method is ideal in investigating critical changes in the current automobile market in the United States. Historical time series data of auto-related key indicators, such as the sales volume, vehicle price, profit margin, etc often tend to exhibit a volatile pattern, making it difficult to distinguish the actual market trend from 'noise' fluctuations in the data. We set up a SAS data monitoring system with LOESS to analyze time series data of these auto-related key indicator variables. We estimated fitted lines of these indicators using LOESS, which in turn were used to examine various changes in the automobile market with respect to a set of decision criteria confidence interval, proc loess, proc step, regression analysis, output delivery system, time series analysis, ods output, ods listing, proc sort, macro definition source 6
42 Application Refactoring with Design Patterns Mark Tabladillo This presentation will describe the object-oriented substructure developed to manage, validate, and process survey data. Experience with classes or objects or design patterns is not necessary for this presentation, but it will help to know how to code a class and instantiate an object with SCL (SAS Component Language) source 6
43 Applied Population Genetics Using SAS Software Kristan A. Schneider,
Georg T. Schneider,
Barbara G. Schneider
proc freq, sas base, data governance, macro variable, proc gplot, proc step, macro facility source
44 Ask and Ye Shall Receive: Getting the Most from SAS-L Howard L. Schreier SAS-L is a worldwide online community of SAS software users. Participants discuss various aspects of SAS and help one another solve SAS-related problems. This paper offers a number of suggestions, primarily directed at those asking questions on SAS-L. Following these suggestions may make questions clearer and easier to analyze, thus increasing the chances that prompt, appropriate, and useful responses will follow proc step, by group processing source 6
45 Automatic Data File Retrieval from Different Database Engines Xin Zhang,
Chuancheih Hsu
Do you need to extract data from different database engines before you analyze the data? Do you write several programs to get data from different platforms, or do you ask someone (data manager, IT personnel, etc.) to get the data you need? This paper provides a simple proc sql, sql server, dataset, macro variable, proc step, create table, odbc connection, %if-%then-%else source 3
46 Automatically Combining the Data from a Variety of DBMSs with ODBC and PROC SQL Han Wu,
Jason Au
proc sql, proc step, excel, macro definition source 3
47 Automotive Warranty Data Analysis on the World Wide Web Sandra Walters Trillium Teamologies assembled a team possessing SAS and Java expertise to create a warranty analysis web application for an automotive OEM. This paper discusses development strategies considered in building the application, including architectural and security considerations. Criteria are provided for deciding among client load models that range from thin (webAF model) through integrated object (Enterprise Guide model) to full client (SAS/AF model) approaches. This paper includes some of the development considerations and decisions made in web-enabling an enterprise wide application: choice of web technology (CGI v. Java) applet v. servlet methodology development environment (AppDevStudio v. Forte) populating list box controls (on-demand access v. server page caching) processing large tasks through a batch queue facility using ODS to deliver reports in *.pdf form Choice of model is dependent on cost, complexity, control, and response time requirements sas enterprise guide, dataset source 6
48 Better Decisions Through Better Data Tony Fisher,
George Marinos
In today's market, everyone is seeking a way to gain competitive advantage. Most companies are focused on building new systems, implementing new strategies, or identifying new markets. What is often ignored, or assumed, is management of the quality of the data that supports the existing decisions and how it can be improved to help gain a competitive analysis It is critical to understand that the quality of the results from any analysis is only as good as the quality of the inputs (the data) that feed that analysis. Given today's accessibility and quantity of data, people often try to perform new types of analysis to gain a more competitive edge. Many times they are trying to answer the same question; however due to poor data management they seek alternate analysis methods instead of trying to improve their existing analysis data cleaning, data validation rules, raw data, business intelligence, data integration source 6
49 Beyond Debugging: Program Validation Neil H. Howard "Act in haste and repent at leisure; code too soon, and debug forever." Raymond Kennington In their paper on debugging, Lora Delwiche and Susan Slaughter say that good debuggers make good programmers. Let's take that one step further to say that good analysts and problem-solvers make good programmers. Just because a SAS program is free of errors, warnings, notes, and bugs does not guarantee that the program is doing what it is supposed to do. This tutorial addresses the process that follows debugging: program validation. It covers techniques for ensuring that the logic and intent of the program is correct, that the requirements and design specifications are met, and that data errors are detected. It also discusses fundamental SAS program design issues that give purpose and structure to your programming approach. This paper will address: the definitions of verification, validation, testing, and debugging, as well as the structure of the Software Development Life Cycle (SDLC) data cleaning, proc step source 9
50 Beyond PROC LIFETEST: Alternative Linear Rank Tests for Comparing Survival Distribution Alan B. Cantor Those who use SAS PROC LIFETEST know that it performs the two best known non-parametric tests to compare survival distributions - the Log Rank Test and the Wilcoxon-Gehan Test. In fact, however, these two tests are actually two members of a large class of linear rank tests. These tests are all equally valid, but will have different power. The specific linear rank test having greatest power will depend upon the actual survival distributions of the populations being compared. If the ratio of the hazards is constant, then the Log Rank Test has greatest power. This fact undoubtedly accounts for its popularity. However, this property often does not hold; and, when it does not, it could be beneficial to consider other linear rank tests instead. In this paper, I will discuss these tests as well as a method, originally described by Lakatos, which allows the user to estimate the power of a variety of linear rank tests under various scenarios rank test, sample, null hypothesis, clinical trial, proportional hazards assumption, sample size, proc freq source 4
51 Big Brother for SAS/IntrNet Security and Tracking Agent Yadong Zhang,
Muhammad Z. Khan,
Kevin J. Smith
With all the new laws that enforce the protection of the personnel information, security for web application has become mission critical. Since the operating system or the web server only enforces the security for SAS/INTRNET, we implemented a security and tracking agent - "The BIG Brother". This was accomplished by creating a user validation and a user activity database. Some basic JavaScript were also incorporated to validate the data parameters in the form sample, data cleaning source 3
52 Build a SAS Development Environment under Windows Wei Cheng The SAS System continues to improve the user interface and application integration for Windows operating system. This paper discusses how to build a SAS development environment by using the features from both the SAS system and the Windows system. Topics include how to set up a SAS shortcut icon, how to add actions to the context menu, and how to perform SAS log scan sas log, libname statement source 3
53 Building Metadata Repository for Data Sets Haining Luo Metadata describe SAS dataset features, such as dataset name, physical location, creation date, last modified date, number of observations, variable names, and so on. A metadata repository gives users quick access to many datasets' features without opening those datasets. This paper demonstrates macros to automate the process of building and reporting metadata repositories. Macro %getmeta allows a programmer to document metadata for a dataset and append these metadata to a metadata repository of other datasets. Macro %viewmeta generates a metadata report from a metadata repository as a comma- separated file. Users may view the report through MS EXCEL. The metadata repository includes over 50 variables, 42 of them come from 'PROC CONTENTS' output, and the rest come from a macro %getfreq and programmer's input. The output from 'PROC CONTENTS' describes the features of datasets. The output from %getfreq lists the most frequent values or value ranges of all variables of the dataset proc freq, mode, proc step, macro call, macro variable, proc contents, excel, macro definition, %if-%then-%else source 4
54 Business Intelligence Applications with JMP Software Charles E. Shipp,
Kirk Paul Lafler
Once you have discovered the nature of your data and its relationships using JMP, it is important to communicate with statistical graphics and tables to (1) your co-workers and management; (2) business partners; (3) review agencies; and/or (4) customers. By looking at the complete range of JMP capabilities we show an overview of JMP and also how JMP assists in business decisions. Reports can go into MS Word and PowerPoint final reports. Business Intelligence is used in all five major information steps. Seeing your data allows critical decisions to be made correlation, business intelligence source 5
55 Case Studies in Time Series David A. Dickey This paper reviews some basic time series concepts then demonstrates how the basic techniques can be extended and applied to some interesting data sets proc step, proc arima, moving average, regression analysis, autoregressive model, time series analysis, binary variable, correlation, proc autoreg, proc calis, unit root, sample, partial autocorrelation, ma, null hypothesis, first difference, prediction interval, proc reg, residual source 9
56 Combining Summary Level Data with Individual Records Frank J. Ivis Summarizing data is a key component of data analysis. In some cases, however, simply summarizing data is not enough. Additional analytic power can often be obtained by incorporating summary measures with individual records. This paper, which is aimed primarily at the beginning SAS user, discusses a number of approaches that can be used to combine these two types of data using the DATA STEP and PROC SQL proc step, proc sql, set statement, proc means, macro variable source 3
57 Comparative Efficiency of SQL and Base Code When Reading from Database Tables and Existing Data Sets Steven H. Feder In this paper we compare SQL code to BASE code, looking at both DATA STEP and PROC code. We make these comparisons reading data from both DB2 tables and existing SAS data sets proc sql, proc step, proc sort, create table, proc freq source 5
58 Complex Sampling Designs Meet the Flaming Turkey of Glory David L. Cassell,
AnnMaria Rousey
Sophisticated sampling designs can save money, provide more accurate answers, and answer questions that simple AnnMaria: I would choose a sampling design which will random sampling (or non-random data) cannot. Yet too many reveal accurate estimates for a minimal cost. investigators are guilty of a multitude of sins. These include David: I would choose a sampling design which will reflect not collecting data optimally, not analyzing data according to the complexities of the target population. the underlying features of the sampling designs or (horrors!) The Client: [in an odd Peter Lorre-like voice] The Client all of the above. Survey data are the lifeblood of marketing chooses.. stratified sampling! analyses, healthcare studies, environmental and sociological <pause> research, and many other areas. It is essential that data be The Client: What?!? The Client LIKES the stratified collected and analyzed in the best possible ways sample, proc step, proc surveyselect, stratified sampling, cluster sampling, random sampling, population, sample size, sample weight, by group processing, proc surveyreg, proc reg, proc surveymeans, regression analysis, missing value, proc calis source 8
59 Connecting the SAS System to the Web: An Introduction to SAS/IntrNet Application Dispatcher Vincent Timbers There are several methods for accessing the SAS System through the Web to provide Web-enabled information- delivery solutions. The Application Dispatcher is a SAS System server that executes SAS programs from a Web browser, which is easily implemented by those with knowledge of the SAS DATA STEP and Procedures. This makes it a good method for moving existing SAS programs to the Web. This paper will provide an introduction to Application Dispatcher including installation and the development of Web pages and SAS programs that connect the SAS System to the Web. 1 macro variable, sample, proc step, proc report, output delivery system, where statement, ods html, proc gchart source 8
60 Continuous or Not: How One Can Tell Vatsala V. Karwe The program vcont.sas contains code to identify categorical and continuous variables in a dataset. It produces frequencies for categorical variables, and summary statistics for continuous variables. The program was developed in SAS version 8.1, on a windows platform. It uses basic macro programming code and is intended for use by any sas user with an elementary knowledge of interval variable, proc step, macro variable, character variable, proc freq, nominal variable, keep statement, numeric variable, proc means, macro definition source 2
61 Creating Display Manager Abbreviations and Keyboard Macros for the Enhanced Editor Arthur L. Carpenter The boss wants all of your SAS programs to have a header section of comments. She wants this section to be uniform across all of your programs, she wants it to have lots of stuff in it, and you don't like to type. How can you automatically insert uniform blocks of text into your program with a minimum of typing and without using the paste buffer? The answer lies in the use of Abbreviations and Keyboard Macros. Abbreviations allow you to associate any amount of text with a designated word or set of keystrokes. Type in the designated word, press the tab key and the desired text is substituted into your program. In the example shown below, you will see how typing the word 'HEADER' inserts a series of comment statements that become the standard header block for a program source 3
62 Creating Drill-Down Graphs Using SAS/GRAPH And The Output Delivery System Curtis A. Smith Using the SAS/GRAPH procedures and the Output Delivery System (ODS) you can output your graphs to web-enabled HTML files. Using the flexibility of ODS, you can include the graphs as static GIF or JPEG files, or create intera ctive, customizable graphs for web distribution using ActiveX controls and JAVA applets. This is really cool stuff. With a few little tricks, you can go a step below a simple HTML graph. Yes, you can add drill-down capability to your HTML graphs. Using this capability, you can create graphs that drill-down to new graphs that display more of the details in your data. Hard to believe? In this paper the author will explore the few SAS statement options necessary to make HTML drill-down graphs a reality dataset, bar chart, proc gchart, ods html, output delivery system source 6
63 Creating Dynamic Web Based Reporting Dana Rafiee options statement, proc step source
64 Creating Multiple Graphs to Link from a Dynamic Map Using SAS ODS, SAS/GRAPH, PROC GMAP, and MACRO Trang Q. Nguyen,
Linh H. Le
In this paper, we will demonstrate our experience on using SAS ODS combine with using SAS MACRO to create web pages of multiple graphs. By using SAS ODS and GMAP, a dynamic map will be created, in which, different areas of the map will be linked to these graphs. The use of SAS ODS plays a very important role in these procedures proc step, output delivery system source 3
65 Creating Tables or Listings with a Zero-Record SAS Data Set -- Basic Program Structure and Three Simple Techniques Rubin Nan,
Victor Loher
Oftentimes, particular tables or listings in a clinical trial deal with zero-record SAS datasets. This occurs primarily in tables/listings that deal with death or serious adverse events. To avoid the hard coding and to re-use the proc step, proc report, proc sql, adverse events, macro variable, clinical trial source 3
66 Custom Map Displays Created with SAS/GRAPH Procedures and the Annotate Facility Debra C. Miller The Annotate facility is a flexible system that you can use alone or with standard SAS/GRAPH procedures to create many types of custom graphical displays. This paper describes a specific application in which the Annotate facility is used with the GMAP procedure to generate custom maps. Air pollution is frequently a regional phenomenon, as gases and particles can travel for hundreds or even thousands of miles to affect distant locations. Analysts interested in studying the causes of poor air quality in a particular location are interested in knowing the source regions of polluted air masses. The National Oceanic and Atmospheric Administration's Hybrid Single-Particle Lagrangian Integrated Trajectory (HYSPLIT) Model is used to create 'back trajectories' that estimate the paths traveled by arriving air masses. The model outputs ASCII files that are read into SAS and then merged with pollutant measurements to retrieve back trajectories for particularly hazy or clean days proc step, proc gmap source 6
67 Cutpoint Determination Methods in Survival Analysis Using SAS Jayawant N. Mandrekar,
Sumithra J. Mandrekar,
Stephen S. Cha
In the analysis involving data from clinical or epidemiological studies, significant attention is given to continuous variables such as patient's age, blood pressure etc., but the predictive importance of such variables cannot be established easily. Transforming a continuous variable into a categorical variable, usually binary, makes the model more interpretable. The choice of a cutpoint to convert a continuous covariate to a binary covariate needs attention and is often based on biological knowledge about the particular risk factor or on the results already published in other studies. Several data-oriented techniques such as median and upper quartile, and outcome- oriented techniques based on score, Wald and likelihood ratio tests are commonly used in the literature. Contal and O'Quigley (1999) presented a technique that uses log rank test statistic in order to estimate the cutpoint survival analysis, interval variable, likelihood function, response variable, sample size, sample, binary variable, proc phreg source 5
68 Danger: MERGE Ahead! Warning: BY Variable with Multiple Lengths! Bob Virgile Danger data step, merge statement, proc sql, length statement, macro facility, select, proc step, macro call, macro definition source 6
69 Data Warehouse Administrator: Step by Step Step by Step Francesca Pierri dataset, staging area, data warehouse, class variable source
70 Date Handling in the SAS System Bruce F. Gilsen date variable, sysdate9, numeric variable, character variable, raw data, input statement, options statement source 10
71 Date Parameters for Interval Reporting Nina L. Werner Once you realize how easy it is to let SAS get your interval dates for you, you will never be entering date parameters again. The intended audience is Base SAS users of all experience levels on any platform macro variable, call symput source 2
72 Deploying Enterprise Solutions: The Business and Technical Issues Faced by SAS Technologists Donald J. Henderson,
David S. Septoff,
Joe Costanzo,
Ben Zenick,
Ralph Mittl
With the advent of open environments, the web, and the emphasis on server based computing, the architecture of SAS applications has and will continue to evolve. This has presented both SAS Institute and SAS technologists who are involved in deploying SAS solutions with a number of issues and challenges that must be addressed in order to enable the successful deployment of an Enterprise Application. There are, of course, any number of technical challenges, in addition to a broad range of business issues that impact how to deploy SAS technology and how successful that deployment will be business intelligence, sas enterprise guide source 6
73 Describing and Retrieving Data with SAS Formats David H. Johnson For many business users, the FORMAT procedure might be their favourite SAS procedure. The procedure takes the confusing coded data values stored on databases and presents a readable report. For the SAS programmer however, the coded data or format catalogs can be confusing. This is often the case with program code inherited from other people, especially when the documentation is poor. But the FORMAT procedure is very powerful, and a lot of its power is not used by programmers because they haven't the time to "make the report pretty", when they consider their job is to "analyse the data". In fact, formatting of data is not just a "prettying up" exercise for the business user, formatted data can very quickly tell the analyst of problems in the data. Formats can also be used to provide common tools to a team of programmers, or a suite of programs. This sharing of formats can save a great deal of development, analysis and reporting time cpu time, proc step, proc format, proc freq, data step, char., proc catalog, libname statement, options statement, raw data, proc tabulate, format statement source 11
74 Determining the Dimensionality of Data: A SAS Macro for Parallel Analysis Robert I. Kabacoff While parallel analysis has received considerable empirical support as a method for uncovering the dimensionality of multivariate data, it is rarely used in real world research. One reason for its underutilization is the analyst's lack of access to the methodology in existing statistical packages. This paper provides a SAS macro that allows researchers to easily employ parallel analysis as a method of determining the dimensionality of their data sample, factor analysis, correlation, scree plot source 3
75 Developing a Marketing Geographic Segmentation System Using SAS Software Allison N. Shubert-Freeman,
Kellie M. Poulin,
Shawn C. Yoder,
Michael R. Morgan,
Jennifer K. Warner
The marketing industry is rapidly moving from mass marketing to a one-to-one customer-based approach (Peppers and Rogers 1997). Marketers are faced with the task of finding and effectively using low-cost information to facilitate this change. One approach is to use publicly available data and the marketer's own customer information to differentiate groups of customers that can be addressed differently. The example presented in this paper will highlight the process of creating a zip code-level segmentation system with Base SAS , SAS/STAT and SAS/GIS software. This process can be implemented across all operating systems and is appropriate for the intermediate programmer or statistical analyst proc fastclus, proc step, outlier, standard deviation, centroid, missing value, proc univariate, sample source 6
76 Developing Client/Server Applications to Maximize SAS 9 Parallel Capabilities Cheryl Doninger Parallel SAS processes, multiple threads within a single SAS process, parallel SAS servers, distributed computing, grid computing, cluster computing - how might all of these choices affect the way that you develop your client/server SAS applications? This paper will address some of these areas and what you should understand when you develop or run client/server SAS applications in these environments. Details will be given on how MP CONNECT can be used in a grid environment as well as in conjunction with the new Scalable Performance Data Engine (SPDE engine), the SAS 9 threaded procedures, and other parallel features to maximize performance and take advantage of each of these environments mp connect, proc step, data step, sas 9, proc means, work library, grid computing, elapsed time, output delivery system, proc mixed source 10
77 Developing Data-Driven Applications Using JDBC and Java Servlet/JSP Technologies Chad Ferguson,
Sandra Brey
Many enhancements have been made to the SAS Java component library available with Version 3 of AppDev Studio (ADS). Several of the improvements include the development of new TransformationBeans and JDBC adapters for building custom table and form-based, data-driven applications. This paper will provide server-side Java examples that you can use to build Web applications which will allow the end user to: edit data via a table or a custom form sort the data navigate through the data using a flexible NavigationBar component filter the data add computed items export the data to EXCEL * and much more. A greatly expanded version of this paper will be available on the web by SUGI. It will contain a more detailed discussion of all the topics listed above, including actual code examples. You can look for the final version of the paper on the AppDev Studio Developer's Site (http://www.sas.com/rnd/appdev/ ) excel, relational database source 2
78 Developing SAS Ready Analyzable Data Systems: A Java Web Application for Creation and Management of SAS Relational Databases John R. Copeland,
David W. Walker,
David W. King
When data are collected at CDC, non-SAS file types are often used for initial storage. Collecting data in one of these formats requires the analyst to execute extra steps, to transform the data into a format suitable for SAS analysis procedures. These extra steps may be eliminated if a database consisting of SAS data tables is created before data collection, and data are stored in this SAS database as they are collected. However, those responsible for data collection often lack the SAS knowledge necessary for creating a SAS database and must therefore use other tools for data collection. This presentation describes a Java Web application that provides a solution to this problem. The Java Web application consists of Java Servlets, Java Server Pages (JSPs), JavaBeans, and Java Database Connectivity (JDBC) dataset, relational database, proc sql source 3
79 Developing SAS/AF Applications Made Easy Bernd E. Imken WHAT IS SAS/AF Using SAS/AF software, developers can create customized, point and click applications. All the power of SAS for data access, management, analysis and presentati on is available to your organization's end users. They c an access current information quickly and easily by using a mous e or function keys, without having to write SAS code or knowing how to use the SAS Windowing environment. SAS/AF gives the developer an object oriented applications development environment. User in terfaces can easily be created with graphics, icons, pull-down menus, push buttons and many other objects (called Visual Components starting in SAS V8, including radio buttons, slider bars etc.). These components can also be easily customized to suit differing needs and requirements. SAS/AF can also be used in conjunction with other SAS products such as SAS/EIS proc step, histogram source 10
80 Developing SAS/AF Applications with Form Viewers and Table Viewers Steven A. Wilson,
Bernd E. Imken
This paper will give SAS/AF developers the basic knowledge required to build an interface to a SAS data set using the Form Viewer and the Table Viewer controls. These controls allow end users to view or edit a SAS data set using a graphical user interface (GUI). To properly use these controls with SAS data sets, a SAS Data Set Model Component must be used to identify the SAS data set in use to the Form or Table Viewer. The communication between these components is referred to as Model/Viewer communication. In this paper we will create frames that employ Model/Viewer communication to browse and edit data. This paper uses a step- by-step approach for developing frames with these components. To make this document easier to view, we suggest that you try enlarging (Zoom) the PDF Adobe version available on the CD supplied at the conference or from the web site at http://www.sas.com/usergroups/sugi/proceedings/index.html dataset, stage 1 source 10
81 DHTML - GUI on the Cheap Richard H. Phillips Any sort of interactive SAS/INTRNET application is going to have form inputs -- a place where your users select columns to chart, row and column headings for tables, variables to subset by, and so forth. This data is passed to the back end - the SAS/INTRNET application broker. You can bet that it doesn't appreciate having its time wasted with bogus information, and chances are the user doesn't appreciate it either. If the data the user sends contains an error, there will be a noticeable lag -- typically several seconds -- before the information travels over the Internet to the server, a SAS session is started up, and then returns an irritating failure report to the user. With a little preliminary validation of the form content before the form is submitted, there will be no wait time. Client-side validation is instantaneous because it doesn't have to transmit any data. JavaScript catches any erroneous data entered before it goes anywhere data cleaning, error message source 8
82 Don't Dither About Your Data, Let SAS/GRAPH Trending Box Plots Drive Decision Making Charlotte F. Carroll Box and Whisker plots (box plots) are excellent tools for communicating point estimates, as well as information on the spread of data. Box plots, which are plotted over time, show changes in the median, range, and quartiles of the data over a specific time period. The ability to view changes in the median, as well as changes in the spread of the data over time, can enable the decision maker to see the effects of interventions more clearly. This paper demonstrates how the GPLOT procedure in SAS/GRAPH can be utilized to create boxplots that trend over time. Multiple SYMBOL, AXES, and PLOT statements, as well as the OVERLAY, statement are employed to enhance the graphic by including dithered data points on the boxplots and adding additional trend lines to the plot box plot, proc step source 3
83 Dynamic Behavior from Static Web Applications Ted Durie Many Web applications, because of the infinite query combinations possible, require dynamic Web solutions. This typically means a programmer/administrator must configure, set- up, and license a Web and application server using SAS/INTRNET software. If, by contrast, the possible query combinations are finite, limited, and manageable, then in some cases static Web tools and macros can be used instead. This approach requires minimal Web set up, and can attain the same functionality as dynamic solutions in some situations bar chart, proc step source 5
84 Dynamically Building SQL Queries Using Metadata Tables and Macro Processing Michael J. Molter,
Scott T. Millard,
Steve B. Paciocco
The introduction of SAS/ACCESS has allowed SAS users to process information contained in a variety of database formats. The relative ease with which SAS/ACCESS makes this possible is often offset with poor performance caused by inefficient use of native database services. The addition of SQL pass-thru does allow users to process native databases efficiently but requires a solid understanding of SQL. The challenge of many data warehousing efforts today is one of balancing efficient database design (STAR schemas) and ease of use. Often times this challenge is met by purchasing additional software to administer complex join structures and generate the SQL needed. This paper addresses this challenge of generating efficient SQL easily from within the SAS environment. It makes use of Base SAS and the macro facility as well as SAS Access. It is not limited to any operating system, and is intended for intermediate and above audiences proc sql, macro variable, foreign key, where statement, sas enterprise guide, star schema, macro loop, do loop, key, order by, call symput source 4
85 Early Experiences with SAS Release 9 on an OS390 Platform Henri Theuwissen,
Petri Lavander Early
Developing a SAS Business Intelligence application on an IBM zSeries mainframe running the Linux/390 operating system in 2002 is only possible through the version 9 of SAS. A strong cooperation between SAS Institute, IBM and SOLID Partners enabled an early adopter implementation of Version 9. For the fact that a new version of SAS and a new platform for the Linux operating system were used a proof of concept was required showing the data warehousing capabilities of SAS and the possibilities for a dynamic multidimensional reporting using SAS Web reporting tools. Prerequisites or constraints for the solution were: Operational data in DB2 on IBM MVS. All required SAS modules and Web services running on Linux/390. * Implementation before January 2003 dataset, flat file source 5
86 Easy, Elegant, and Effective SAS Graphs: Inform and Influence with Your Data LeRoy Bessler Are you an existing SAS/GRAPH user who would like to create charts that are more communication-effective? Or are you one of those software users who crunch their data with the SAS System, but then export their output to some other tool to graph it? This tutorial assumes no prior knowledge of SAS/GRAPH. It cuts through all the documentation and bypasses the "Options OverChoice" to empower you to make elegant and effective pie charts, bar charts, and trend charts- to get them right from the start. You will come away with widely applicable design principles and examples, and with supporting code that you can understand, and can point at your own data when you get back to the office. SAS/GRAPH can be easy, and, based on good design and good examples, communication-effective use of SAS/GRAPH gives you The Power to Show: to inform and influence, to reveal and persuade, with charts and data bar chart, proc step, vertical bar chart, horizontal bar chart, proc gchart, proc sort, proc gplot, macro loop, macro definition, output delivery system, class variable source 10
87 Efficient Reporting with Large Numbers of Variables: a SASO Method Jonathan R. Goddard Large surveys or clinical trials will often generate many variables which need to be reported in a similar way. Tabulating a large number of categorical variables by a particular grouping variable is one such task. This paper presents a macro method of performing repetitive reporting tasks without having to explicitly name or count all the variables involved. This method is made more useful by the ability of SAS software (in version 8.2) to write output directly to a rich-text file, via the Output Delivery System command, ODS RTF. The generated reports can be written to a single Microsoft Word file, together with an indexed table of contents. The code behind the idea is explained and illustrated with an example from a data set supplied with SAS. The paper discusses base SAS (including macros) and is primarily aimed at IBM PC and Microsoft Windows users with intermediate SAS programming skills macro variable, macro loop, txt, proc step, proc tabulate, macro definition source 4
88 Enhancement of Survival Graphs Joanne C. Zhou As use of time-to-event data in clinical trials is becoming more frequent, survival analysis and the graphical presentation of the survival analysis are more and more popular. In order to aid correct interpretation, overall summary statistics and some reflection of statistical uncertainty should be added in the survival plots. In this paper, PROC LIFETEST, PROC GPLOT and PROC GREPLAY are used to present the results of survival analysis with annotated +/-standard errors on the curve for selected time points on the Kaplan-Meier estimates; the numbers of patients at risk are displayed under the time axis proc step, survival analysis, proc calis, proc means, proc gplot source 6
89 Errors, Warnings, and Notes (Oh My) A Practical Guide to Debugging SAS Programs Lora D. Delwiche,
Susan J. Slaughter
Errors? "I never get errors!" Warnings? "I never bother to read them, my program still runs." Notes? "Who needs them?" This paper, is based on the belief that debugging your programs is not only necessary, but also a good way to gain insight into how SAS works. Once you understand why you got an error a warning or a note, you'll be better able to avoid problems in the future. In other words, people who are good debuggers are good programmers. We cover common problems including missing semicolons, invalid data, truncated character values, missing-data-was-generated messages, character to numeric conversions, and the tricky problem of a DATA STEP that runs without suspicious messages but nonetheless produces the wrong results. For each problem we decipher the message, explain possible causes, and explain how to fix the problem. We also cover some programming strategies to avoid errors in the first place sas log, missing value, put statement, proc print, proc step, dataset, error message, character variable, input statement, if-then-else, infile statement, options statement, numeric variable, excel source 10
90 Estimating Standard Errors for CLASS Variables in Generalized Linear Models Using PROC IML David J. Pasta,
Miriam G. Cisternas
Analysts who work frequently with linear models using the SAS System often use the LSMEANS statement in PROC GLM or PROC MIXED to obtain "adjusted means." The absence of a clear analogue to these least-squares means for nonlinear or generalized linear models can be an obstacle for both the analyst and the eventual audience of the analysis. This paper shows how to use PROC IML to estimate standard errors of CLASS variable effects from a logit model and from a linear model on log-transformed data. The macro used is designed for logit or log-transformed linear models used in the analysis of health care claims data but it is easily adapted to other contexts. The log-transformation example involves a linear model on the logarithm of a continuous variable (health care costs) for which the effect of interest was the difference in cost, not the difference in the logarithm of cost proc step, proc iml, proc calis, treatment effect, regression analysis, proc glm, covariance, predictor variable, response variable, anova, proc reg, logistic regression, proc mixed, ancova, proc genmod, if-then-else, proc nlin source 6
91 Estimation of Prevalence Ratios When PROC GENMOD Does Not Converge James A. Deddens,
Martin R. Petersen,
Xiudong Lei
When studying a prevalent outcome, it is often of interest to estimate the prevalence ratio instead of the odds ratio. In SAS one can use PROC GENMOD with the binomial distribution and the log link function. Unlike the logistic model, the log-binomial model places restrictions on the parameter space, and the maximum likelihood estimate (MLE) might occur on the boundary of the parameter space, in which case PROC GENMOD will not converge to the correct estimate. We propose a method that uses PROC GENMOD to correctly estimate the MLE. The method consists of expanding the original data set to include a large number of copies of the original data set together with one copy of the original data set with cases and controls reversed. The estimated standard error of the prevalence ratio on the expanded data set is then "adjusted" to obtain the correct estimate of the standard error of the prevalence ratio. We provide a SAS MACRO to implement our new method proc genmod, proc step, likelihood function, maximum likelihood estimation, binomial distribution, predictor variable, odds ratio, proc phreg, proc calis, sample size, sample, uniform distribution, macro definition source 6
92 eveloping Custom Analytic Tasks for SAS Joe Carter,
Stephen McDaniel,
Mike Porter
With the capability of creating custom add-in tasks being made available in SAS Enterprise Guide version 2.0, it is possible to develop and deploy application tasks that enhance and extend the existing capabilities of Enterprise Guide sas enterprise guide, proc step, time series analysis, missing value, confidence interval, scatter plot source 6
93 Exporting SAS/GRAPH Output: Concepts and Ideas Dawn Schrader This document is designed to help you understand the basic factors that affect the quality of an image exported from SAS/GRAPH. This paper focuses on exporting graphics to two very popular destinations: the web and Microsoft Office sample, proc step source 6
94 Extending SAS Data Services via XML and Java Scott E. Chapal Designing for interoperability requires the choice of key technologies for the software components of a Web Service. SAS provides very powerful data management and analysis capabilities which can be enhanced and extended in a distributed service-oriented architecture. As XML has become the de facto standard for structured data representation on the Web, Java has become the programming language of choice when considerations of portability and device-independence are paramount. The confluence of SAS, Java and XML creates a symbiotic relationship enabling the existence of "Data Services" which are conceptually metadata-driven, analytically capable, and universally accessible. The continued development and emphasis of Java and XML capabilities in SAS underscores the natural alignment of these technologies. SAS Data Services, distributed via XML and Java, will provide interoperability not only for business problems, but also for scientific, governmental, academic and non-profit institutions web service, libname engine source 9
95 Fancy MS Word Reports Made Easy: Harnessing the Power of Dynamic Data Exchange William W. Viergever,
Koen Vyverman Fancy
For many years, the SAS System for OS/2 and Windows has had the ability to talk to other PC applications by means of Dynamic Da ta Exchange (DDE). DDE enables the creation of fully customized Microsoft Word documents from within a Base SAS program, and is therefore ideal for automating high quality output from the SAS System. Using a set of easy-to-use SAS macros, we show the begi nner-to- advanced SAS user how to insert and format SAS data, graphs, and tables into a Word report. As a further demonstration of the m yriad possibilities, a DDE-driven Word mail-merge application is constructed data step, credit card, macro definition, proc step, cards, dataset, sas base, filename statement, proc greplay, proc template, macro variable source 10
96 Fast and Easy Ways to Advance on Your Beginning SAS Coworkers! Richard M. Mitchell proc step, proc freq, sas programmer, proc genmod, sas log, proc gplot, proc arima, confidence interval, advanced sas, ods output source
97 Fast and Easy Ways to Annoy a SAS Programmer: A Statistician's Revenge! Richard M. Mitchell This paper gives a perspective from the statistician's point of view and discusses how a statistician may "make or break" a relationship with a SAS programmer based on the effectiveness of how analysis plans are presented and implemented. When we last met, statisticians were scurrying around in an attempt to destroy all copies of "Fast and Easy Ways to Annoy a Statistician" before their programmers could absorb any of the helpful tips provided in the paper. A memorable con ference attendee best summarized her annoyance by saying strongly, regression analysis, sample, proc logistic, sas programmer, response variable, proc step, predictor variable, logistic distribution, sas log, class variable, interval variable, error message, proc reg, proc freq source 10
98 Filling Report Templates with the SAS System and DDE William C. Murphy Delivering information to our clients is our only real goal. To achieve this goal, we generate data listings, create summaries, and report on statistical analyses. Most of this information is usually presented in tabular form. To accomplish this, we first design table templates in Microsoft EXCEL and then fill them with data from the SAS system. This combined approach gives us the power of the SAS system for data manipulation and management and the formatting capability of Microsoft EXCEL for presentation. For our clients it produces tables that are more attractive and allows them to 'play' with the data. To populate the tables, we use the dynamic data exchange (DDE) capabilities of the SAS language. Coupling DDE with macro programming, we are able to automate the process and readily revise tables if necessary. In the following, we will describe the table creation process from the template design to the data filling excel, put statement, macro definition source 4
99 Finding Time: SAS and Data Warehouse Solutions for Determining Last Day of the Month Jennifer O'Neil,
Laural Wierenga
This paper presents the different ways a SAS programmer can automate the extraction of time series data from the warehouse where data are stored, by the last day of each month, in the column monthend date (ME_DT). The goal is to run programs and create data sets for each month with minimal program changes and no manual intervention: taking a point in time and going back months, quarters, and fiscal or calendar years for historical data, adjusting for leap years (eg, 2004, 2000, 1996) and last day of the month (28, 29, 30, 31). The two SAS solutions are a MACRO and the INTNX function. Two data warehouse solutions are given: one uses combinations of the +/- X year, +/- Y month, and +/- Z day functions in SQL, the second is a date lookup or time transformation table. We will discuss how you can apply these methods to meet different data extraction, analysis, and reporting requirements lookup, proc sql source 4
100 Flip the Bow Tie: Pushing Business Intelligence to Operational Applications Larry D. Bramblett business intelligence, sas base, data validation rules, data cleaning, phase ii source 6
101 Future Trends and New Developments in Data Management Jim Lee relational database, recovery planning, data warehouse, customer satisfaction, data governance source 6
102 Generating Custom Excel Spreadsheets Using ODS Chevell T. Parker This paper will demonstrate techniques on how to effectively generate files that can be read with Microsoft EXCEL using the Output Delivery System. This paper will further discuss a variety of methods that will allow customization of the every part of the EXCEL file from ODS. Some of the tips provided will work with EXCEL 97, 2000 and 2002. However, much of what is covered especially, the advanced techniques using XML and the special Microsoft Office style properties apply to EXCEL 2000 and partially to 2002 excel, ods html, output delivery system, proc step, error message, ods csv, proc template, data cleaning source 10
103 Getting PC SAS to Do What You Want, When You Want, How You Want Jodie M. Gilmore Searching for a file that is not where you thought it was, starting SAS up just to find that system options weren't set as you thought they were, or struggling to work with a windowing environment that is not comfortable - these are all obstacles to optimum productivity. This paper solves these potential problems by explaining how the PC SAS System uses configuration files, how it decides where to save files, and how to control SAS System startup. You'll also learn how to customize your display and use some of the new SAS System accessibility features options statement, filename statement source 6
104 Getting Up to Speed with PROC REPORT Kimberly J. LeBouton This screen is the default report, w hich looks very similar to "vanilla" PROC PRINT. T he value of PROC REPORT is in its grouping capabilities, which include summarizing. The report w ill now be reorganized interactively to group by Sex. Learning the basics of PROC REPORT can help the new SAS user avoid hours of headaches. PROC REPORT can often be used in lieu of PROC T ABULATE or DATA _NULL_ reporting--tw o areas that have driven the new SAS user crazy !!! W ith t he added capabilities of ODS provided in Version 7 and higher, PROC REPORT can look as sharp as an EXCEL report. T his paper w ill show how to use PROC REPORT in both a windowing and non- windowing environment using SAS Version 8. PROC REPORT works from left to right. Thus, if you want a grouping by Sex, then y ou need to move Sex before Name. T o reorder the report, highlight the Sex label. Choose the following sequence either from the Menu or by clicking the right mouse button proc report, proc step, proc tabulate, proc means, proc print, variable source 5
105 GoodsHound - Building Multi-Functional Web-Based applications with SAS/IntrNet and JavaScript Blake R. Sanders,
Mikhail Gruzdev
where statement, txt source
106 Hashing: Generations Paul M. Dorfman,
Gregg P. Snell
Searching is one of the most, if not the most, important and frequently performed data processing operations. The SAS System supports this assertion with a roster of built-in searching techniques, such as merges, joins, formats, indexes, and specific operators and functions. In the light of such diversity, it is all the more surprising that until recently, no built-in SAS methods based on fastest searching schemes - memory-resident hash-based algorithms - had been available. This gap was partially covered by SAS users crazy enough to hand-code their own hash-based algorithms in the SAS Language. However, Version 9 changes everything. Not only has it made direct addressing available in the form of a built-in hash table (associative array) which can be searched much faster than any other SAS lookup structure; it has also introduced the first dynamic, memory-resident DATA STEP structure hash table, key, conditional do loop, composite key, sample, character variable, length statement, data step, hash iterator, memory usage, lookup, proc sql, hashing function source 10
107 Hot Links: Creating Embedded URLs Using ODS Jonathan M. Squire clinical trial, proc step source
108 How Do I Love Thee? Let Me Count the Ways.' SAS Software as a Part of the Corporate Information John E. Bentley Many organizations either have built or are trying to build a Corporate Information Factory (CIF), and SAS Software is often an integral part of it. A limitation of the CIF framework, however, is that it suggests hardware and database architectures and shows the flow of data and information through the system but it doesn't provide guidance about the software needed to run the factory. As a result, it's common for a CIF to take a "best of breed" approach and use different software for each process and task: ETCL, data QA, metadata management, ad hoc querying, production analysis, and reporting, OLAP, data mining, ad nausium. This approach complicates the CIF system, increases costs, and reduces ROI. In this best-of-breed solution, SAS Software is often deployed only in an analytical role that clearly fails to take advantage of the power of software data governance, data mart source 10
109 How SAS Thinks or Why the DATA Step Does What It Does Neil H. Howard The DATA STEP is the mo st powerful tool in the SAS system. Understanding the internals of DATA STEP processing, what is happening and why, is crucial in mastering code an output. Concepts you will be introduced to: ƒ the Logical Program Data Vector (LPDV or PDV), ƒ automatic SAS variables and how are they used, ƒ the SAS Supervisor, ƒ understanding the internals of DATA STEP processing, ƒ what happens at program compile time, ƒ what's actually happening at execution time, ƒ how variable attributes are captured and stored. This paper focuses on techniques that capitalize on the power of the DATA STEP and working with (and around) the default actions. Topics include: ¾ compile versus execution time activities; ¾ organizing your data to maximize execution; ¾ data defaults, data conversions; ¾ missing values, formatting values; ¾ ordering variables; ¾ functions for editing data and assigning values missing value, dataset source 3
110 How to Access PC File Data Objects Directly from UNIX Howard Plemmons Jr. The ability to directly access PC data stores from SAS on UNIX has become a reality in SAS V9. This paper highlights the behind the scenes implementation of this enhancement to the SAS/ACCESS Interface to PC Files product line proc step, excel, proc import, proc export, libname engine, proc contents, dataset source 4
111 How to Use the SAS System as a Powerful Tool in Biomathematics Kristan A. Schneider,
Georg T. Schneider
source 6
112 Identifying Continuity in Longitudinal Data Merle E. Hamburger,
Thomas Sukalac
Analyzing longitudinal data (performing analyses across multiple observations) may be one of the most difficult processes facing a SAS analyst. One particularly difficult longitudinal analysis involves the identification of the extent to which an individual continuously experienced a particular event over the course of the longitudinal data. The current paper describes a public health analysis in which the RETAIN statement, as well as the FIRST. and LAST. logical variables are used to determine the length of time an HIV-infected individual has a continuously undetectable level of the virus longitudinal data, by group processing source 2
113 If Only 'Page 1 of 1000' Jiang Jin,
Ye Jin,
Diane Wang
There are many possible reasons why we are required to only present the first 1, the first 2, or the first N pages of do loop, binary variable source 2
114 Indexing and Compressing SAS Data Sets: How, Why, and Why Not Andrew H. Karp,
David Shamlin
This paper discusses the roles variable indexing and data set compression play in the SAS System. We discuss when these tools might be appropriate to use, and the situations where potential drawbacks from using them will probably outweigh their potential benefits. The paper also identifies key enhancements to both variable indexing and data set compression that were implemented in Version 8 of the SAS System, and which will remain available with the release of Version 9. We are in the process of testing the benefits and drawbacks of applying these tools to various-sized data sets on several operating systems. We will present the results of our research at SUGI 28 and also make them available via the web at www.SierraInformaiton.com source 8
115 Innovative Graph for Comparing Central Tendencies and Spread at a Glance Varsha C. Shah,
Ravi M. Mathew
The methodology described in this paper includes overlay and other features of PROC GPLOT, a little bit of the ANNOTATE facility, and PROC TEMPLATE for construction of this comparative plot. The graph enables quick visual assessment of effect magnitude and direction, and the code can be easily changed to accommodate new and different numbers of subgroups. Though the mechanism of plotting the graph is more general, it is easy to illustrate with the common concepts of central tendencies and spread. Therefore, the data for this paper is based on randomly generated numbers. The appendix includes the sample figure, data used in the example, and the SAS code needed to produce the figure proc step, sample source 8
116 Introduction to JMP Thomas A. Little This hands-on-workshop begins with basic data and table manipulation, demonstrate JMP's analysis capabilities and move to the advanced features. Topics covered in the workshop include Design of Experiments, statistical process control, outlier detection, residuals analysis, journal features, variability graphs, variance components, REML, measurement systems analysis, general statistical comparisons, scripting capabilities and regression modeling. The course will allow users the ability to use computers, data sets and work through the examples along with the instructor. At the conclusion of the workshop the participant should be able to understand the purpose and application of JMP as an analytical engine for routine data analysis and model building. Emphasis will be placed on JMP's analytical tool box, speed of data analysis using JMP and ease of use data science, regression analysis source 3
117 Introduction to the SAS Custom Tag Library Robert Girardin The SAS Custom Tag Library, available in Version 3 of AppDev Studio, is a collection of custom tags that provide a wide range of functionality, such as the ability to view and edit relational data via tables views or custom forms. explore multidimensional data stored in OLAP server cubes. perform common data management ta sks such as sorting, filtering, adding computed items. attach JDBC data sources to standard HTML form controls via model/view communication. * develop web applications for both web and wireless. This paper will provide an introduction to building and deploying JavaServer Pages (JSP) with useful examples that illustrate the SAS custom tags mentioned above data governance, structured data source 1
118 It's All in the Presentation Jeff Cartier In Version 9, ODS styles have been extended to include elements that affect graphical procedure output as well as tabular output. This paper will show how to easy it is to apply any of the new supplied style definitions to SAS/GRAPH, SAS/STAT, SAS/ETS output. You will also see how SAS/GRAPH coding and supplied STATGRAPH templates interact with information supplied by a style. By adjusting source programs, you can control exactly the level of style information that contributes to final output proc template, proc step source 9
119 Java Servlets and Java Server Pages for SAS Programmers: An Introduction Ricardo A. Cisternas AppDev Studio 2.0 provides a drag-and-drop interface to produce Java-based thin-client applications using Servlet technology, as well as support for Java Server Pages (JSPs). Those of you who have created Java Servlets using the drag and drop methods may be somewhat mystified by the Java code generated. What is an import statement, and what is the function of those curly braces? And just how do Servlets work, anyway? How do they interact with the web server, track a session and process browser cookies? Since Servlets can access any Java API, we hope to whet your appetite to learn more about Java and how to extend the Java classes that SAS provides in AppDev Studio. Finally, we will provide a brief introduction to JSP scriptlet and tag syntax http, dataset source 9
120 Java Syntax for SAS Programmers Don Boudreaux As SAS coders are being asked to deploy their results on the web, they are challenged with learning any number of new technologies, scripting languages, and programming languages. In the cases where this effort will involve Applets, Servlets, or JavaServer Pages, the programmer will be faced with a rather complex object-oriented programming language to understand - Java. Obtaining a level of proficiency with Java involves a considerable investment in time and effort. However, a SAS programmer using webAF to create dynamic web applications with JavaServer Pages might only initially need to understand the basic syntax of Java in order to write short embedded code segments (scriptlets). Assuming this specific scenario defines the programming context, this paper will investigate basic Java syntax from a SAS perspective missing value, sas programmer, conditional do loop source 6
121 Keep Those Formats Rolling: A Macro to Manage the FMTSEARCH= Option Peter J. Lund user-defined format, macro variable source 9
122 Known Nonsense Carl Formoso Model selection in regression analyses can be aided by the addition of known non-information. A randomly generated variable is known to have no explanatory power for any outcome of interest. When the random variable is selected as the 'best' entry for model improvement we can be sure that the model is not improved, even though usual measures such as adjusted R square and Mallow's Cp may show improvement. When the random variable remains in the model, later entered variables can also be considered to not improve the model. We also demonstrate the generation of randomness through disordering an existing variable to create a random variable with the exact values and distribution of a real variable proc reg, regression analysis source 3
123 Let the Data Speak: New Regression Diagnostics Based on Cumulative Residuals Gordon Johnston,
Ying C. So
Residuals have long been used as the basis for graphical and numerical examination of the adequacy of regression models. Conventional residual analysis based on plotting raw residuals or their smoothed ver- sions is highly subjective, whereas most goodness-of- fit tests provide little information about the nature of model inadequacy . In this paper, new model-checking techniques of Lin et al. (1993, 2002) based on cumulative sums and other aggregates of residuals are described. These techniques provide objective and informative checks on the adequacy of the fitted model for a variety of statistical models and data structures. Specific as- pects of the adequacy of the fitted model can be as- sessed, depending on the particular model. In gen- eralized linear models and marginal models for de- pendent responses (GEEs), special attention is given to checking the functional form of a covariate in the linear predictor and the form of the link function regression analysis source 6
124 Let's Play a Game: A SAS Program for Creating a Word Search Matrix Robert S. Matthews This paper describes a process for inserting a list of words into a matrix of random letters. The output produces two tables. The first table is a display of the matrix after the words in the list are inserted, but before random letters are inserted into the remaining cells in the matrix . The second table is the final matrix after empty cells are filled with random letters. The program has two level s of difficulty and highli ghts a number of techniques for working with two-dimensional arrays. It is applicable to all versions and platforms of The SAS System source 5
125 Linkage of Patient Registries and Clinical Data Sets without Patient Identifiers Paul D. Frederick Patient registries seek to capture data from broader-based patient populations having a single diagnosis and may lack clinical detail or precision whereas clinical data are drawn from intensive discovery and are limited to select patients related to the study. Clinical data may be used to validate information collected in the patient registry, and patient registry data may complement ongoing clinical studies, such as to provide essential baseline or historical data. A simple and versatile record-linkage is performed between mock registry and clinical datasets that represent data collected in hospitals nationwide. The linkage presumes the lack of common unique patient identifiers and a multi-key approach is considered for defining matches. Composite keys are developed based on shared attributes within the data schemata. Various composite keys are developed consisting of hospital, discharge and arrival dates, age, and gender composite key, proc step, proc sort, clinical data source 6
126 Logicals From Libraries: Using Storage as a Bridge Between Sessions Gary E. Schlegelmilch In converting legacy systems into SAS, or consolidating systems into an integrated whole, new techniques are often developed just to accommodate the transition. In a case where a UNIX application needed to communicate file locations from inside the Base SAS program back to the calling script file, we used the common factor - physical storage - as the common link. This allowed the parent process to retrieve values for variables that were defined in subprocesses, and normally inaccessible by the parent process. The technique uses several SAS functions, in common use in many SAS programs, to access the data from the calling process. The program then writes the library information to a UNIX script file, which can in turn be executed by the calling process to define the logicals at that level. Although this problem was solved for a UNIX platform; the technique used would lend itself to other platforms as well data step, macro variable source 3
127 Logistic Regression Modeling - JMP StartTM Your Analysis with a Tree Pippa M. Simpson,
Renée A. Hall,
James G. Parker,
Jeffrey M. Gossett
In regression, the decision about which variables to include and in which form they should be included in the model can be very difficult. Screening variables can be very tedious; perhaps that is the reason why many models seen, for example, in nutrition, only include main effects. However, because of its uses in screening, a tree can JMPstart your regression model analysis. All types of variables can be included in a tree, including variables with missing values and variables that are highly interrelated. This enables consideration of the form of the variables to be included. Because of the tree methodology, cutpoints for variables that best optimize a function are given, so it is possible to consider new variables generated from the old variables. Trees are also useful for exploring the interaction of variables. For example, if a variable appears on one side of a tree and not on the other, it suggests that there is indeed an effect of interaction regression analysis, logistic distribution, logistic regression, sample, main effect, proc reg, predictor variable, data cleaning, sample weight source 5
128 MACRO Function with Error Handling to Automatically Generate Global Macro Date Variables Anatoly V. Kulinsky Custom macro function 'ANYDATE' is designed to generate a requested number of global macro variables representing dates. The INTNX function is used to produce dates in required format for different number of time intervals going forward or backward. CALL SYMPUT ROUTINE uses date values to create macro variables each representing date in specified format. Thus allowing referencing and comparing any date values stored in the variables/fields or embedded into SAS LIBNAME, dataset name or variable name; External directory/file /field name; Database schema/table/column name for both processing and reporting purposes. %MACRO 'ANYDATE' was developed to automate data pull from Oracle DB and to create SAS Data Mart from individual datasets. Global macro variables were used to macro variable, date variable, macro put, %if-%then-%else, call symput, exception handling, macro function, sysdate9, macro loop, proc sql, proc step, macro definition source 5
129 Macro Power H. Ian Whitlock,
Quentin McMullen
The basics of macro programming will be illustrated with many examples to execute and modify. We will start with the concept of a macro as a parameter-driven unit of code, and then add macro decisions, looping, and variables. In the end we will have macros getting help from other macros to solve significant problems. The student should have a fair idea of what a SAS program looks like, how to write DATA steps, how to execute base SAS programs in the SAS display manager on a PC, and how to work with multiple edit windows. Some understanding of SQL would be handy, but all code will be explained when used macro loop, macro variable, proc step, proc print, put statement, macro put, proc sql, %if-%then-%else, macro function, macro definition source 3
130 Make Your Life a Little Easier: A Collection of SAS Macro Utilities Peter J. Lund sysdate9, macro variable, macro definition, macro put, date variable, macro loop, %if-%then-%else, proc sql source 10
131 Make Your SAS/ACCESS Query More Efficient Jianming He,
Dinesh Jain,
Cheng Wang
This paper discusses how to query from relational databases efficiently by using SAS/ACCESS. It integrates the idea that database developers perform data query into SAS environment. It also shows some tips for SAS programmers doing data extraction and data manipulation proc sql, sas programmer, data merging, proc step source 3
132 Making the Most of Version 9 Features Marje Fecht Performance improvements are the well-publicized enhancement to Version 9, but what else has changed that impacts your "SAS Tasks"? 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 ƒ procedure enhancements ƒ interface additions and improvements ƒ new Graph capabilities ƒ and more. . . This workshop is beneficial for Version 8 SAS users who are getting started with Version 9 dataset, call symput source 2
133 Managing Clinical Trials Data with a SAS-Based Web Portal J. Philip Miller,
James Schauer,
Jack D. Baty,
Sarah Littlewood,
Robert M. Lill,
Reuben Richards,
Kathryn Trinkaus
clinical trial, phase i source
134 Managing SAS Libraries to Improve Your Programming Environment Marje Fecht,
Larry Stewart
You already know that SAS data sets are stored in SAS libraries, but do you know what else can be stored in SAS libraries? Do you know how to manage files in SAS libraries? Do you know what can be stored in SAS catalogs? Do you know what a catalog entry is? This Hands On Workshop answers these questions and many more. You will learn ƒ how to explore the contents of a SAS library and understand its properties ƒ what information is stored in the most commonly used types of catalogs ƒ how to take advantage of catalog information to tailor your SAS environment ƒ how to manage the contents of catalogs through the SAS windowing environment and through the CATALOG procedure ƒ how user-defined formats are stored and how to access those formats ƒ how to improve your programming by taking advantage of catalogs for commonly accessed information sas library, catalog, catalog entry, dataset, libname statement, user-defined format, proc step, proc catalog source 3
135 Metadata Application on Clinical Trial Data in Drug Development Julia Z. Zhang,
David C. Chen,
Tor-lai Wong
As we move forward to an electronic environment, information proliferates rapidly. How do we efficiently manage this voluminous quantity of information and use this data appropriately? With metadata knowledge, we learned that we need to develop an effective and efficient metadata strategy to prevent us from suffering the chaotic situation associated with proliferation of mass amounts of information. Using metadata appropriately in the drug development environment can vastly increase work efficiency and reduce the probability of mistakes. In order to take advantage of the metadata methodology, we developed an application using Visual Basic for Applications (VBA) calling upon the Windows Application Programming Interface (API) in Microsoft EXCEL in conjunction with the SAS system to efficiently apply metadata on clinical trial data excel, clinical trial, data mart, dataset, clinical research, structured data source 3
136 Modeling Customer Lifetime Value Using Survival Analysis - An Application in the Telecommunications Industry Junxiang Lu Increasingly, companies are viewing customers in terms of their lifetime value - the net present value of customers calculated profit over a certain number of months. Customer lifetime value is a powerful and straightforward measure that synthesizes customer profitability and churn (attrition) risk at individual customer level. For existing customers, customer lifetime value can help companies develop customer loyalty and treatment strategies to maximize customer value. For newly acquired customers, customer lifetime value can help companies develop strategies to grow the right customers. The calculation of customer lifetime value varies across industries. In the telecommunications industry, customer monthly margin and customer survival curve are the two major components to calculate the customer lifetime value. Since customer monthly margin is from accounting models, the key to estimate customer lifetime value is the customer survival curve customer lifetime value, survival analysis, proc step, churn, hazard function, proc phreg, validation set, data cleaning, missing value, proc lifereg, survival function, regression analysis, service provider, likelihood function, sample, outlier source 6
137 Monitoring, Analyzing, and Optimizing Waterflood Responses Leon L. Fedenczuk During a waterflood, large amounts of injected water are used to maintain and/or increase oil production from a petroleum reservoir. This paper shows how comparing the changes in oil, gas, and water production (relative to the water injection changes) helps assess fluid communication through a reservoir. The results are presented with special diagrams and contour maps, which show up to six communication parameters. The communication parameters are integrated with other geological parameters and used to develop predictive models. These predictive models help estimate the production capacity or production probability in waterflooded reservoirs. This paper also shows how decision tree models support a two to four times more accurate selection of high production wells than historically implemented selections. Finally, this paper shows the implementation of a profit matrix in a decision process for outcome optimization correlation, proc hpsplit, posterior probability, response variable, proc step, spearman correlation source 5
138 More _Infile_ Magic Peter Crawford Some facilities, limited to INPUT statements, have become more generally available (for example, reorganizing data from other rdbms) because _INFILE_ can be updated (since at least v8). This is hardware-platform independent so it is available everywhere INPUT statements are available (more difficult in SAS/SCL). This paper is targeted at programmers and other users of intermediate and advanced skillsets input statement, excel source 2
139 Mouse Clicking Your Way to Viewing and Manipulating Data with Versions 8 and 9 of the SAS System Cyndie B. Gareleck,
Terry Fain
proc step, dataset, where statement, sas base, label statement, proc sort source
140 Multi-Center Study Data Management With A Distributed Application Derek P. Morgan Central management and coordination of data in a multi- center clinical study presents several challenges. This is an overview of the FHS-SCAN data entry system, a SAS System-based Windows application using SAS/FSP for data entry, SAS/AF for study management and system administration, and SAS/AF frames for its ad hoc report- ing tool. The system is designed to be deployed to all sites in this study; any run-time customization is data- driven. The administration of the program requires little computer knowledge and is done locally. Support takes the form of documentation (web-based and hard copy), system patches developed centrally and deployed locally, and in rare cases, remote connection and control of the local machine from the coordinating center using third- party software. The system is set up to handle any facet of study data management through the menus, so that advanced knowledge of operating system commands and procedures is not necessary where statement, macro variable, proc step, proc sql source 6
141 Multi-Lingual Computing with the 9.1 SAS Unicode Server Stephen M. Beatrous Business information today comes in many languages. Your customers and employees may come from all over the globe. Your mission-critical data is in more than one language. SAS offers several features that allow you to store and process multilingual data. This paper introduces Unicode support that is built into the 9.1 SAS system sas library, character variable, dataset source 4
142 Multi-platform SAS, Multi-platform Code David H. Johnson Many people who write SAS code are likely to find that programs they have written for one platform will need to be migrated to another. For a consultant, this is a frequent occurrence. However, it is also a strong possibility for permanent staff, as many members of the SAS/L community have reported. Whether it is to meet the need for programs to move to a new mid range server, decommissioning of an existing platform, or implementation of a new information delivery architecture, a platform change may be required for existing programs. Platform independence is usually going to mean that macros are called in the program to perform certain operating system dependent tasks. Then the macro libraries can be 'switched' when the programs are moved, retaining the existing code, unchanged. We'll look at a number of Operating System specific processes for MVS, Unix and Windows, and discuss the ways these techniques have been implemented. This paper assumes an introductory knowledge of macros if-then-else, proc step, proc sql, txt, data mart, data step source 13
143 Multilevel Designs and Their Analyses George A. Milliken anova, degrees of freedom, proc mixed, proc step, repeated measures, randomization, correlation, residual, regression analysis source
144 Multiple Graphs on One Page: The Easy Way (PDF) and the Hard Way (RTF) Kevin Payton Delaney ods pdf, proc greplay, output delivery system, proc step source
145 Multistage Cross-Sell Model of Employers in the Financial Industry Kwan Park,
Steve Donohue
This paper details the steps to develop a multistage cross-sell model of employers in the Financial Services industry. This model can be used to score the likelihood of an employer to purchase multiple products. Topics covered include data preparation for data mining, several advanced modeling techniques, and multistage cross-sell model score comparison. Strong non-linear curvatures among the input variables were found during the modeling process and examined. The modeling techniques used were Decision Tree, Neural Network, Regression and Memory Based Reasoning in SAS Enterprise Miner (version 4.1) of Windows 2000 system neural network, regression analysis, data mining, proc hpsplit, likelihood function, logistic distribution, k-nearest neighbors, response variable source 5
146 MVS Point-and-click Access to IMS Data with SAS/ACCESS Claude Rhéaume,
Gilles Turgeon
The purpose of this paper is to illustrate some techniques to access any IMS database with SAS. Topics covered are : /Gd8/G20The basic requirements; /Gd8/G20What data is required in order to populate our METADATA; /Gd8/G20How to proceed; /Gd8/G20What is left for you to do; /Gd8/G20An interactive application to facilitate your work infile statement, sas programming source 6
147 New Technologies for Delivering Data to Internal and External Clients Sigurd W. Hermansen Back in the Big Iron era, programmers captured, stored, and delivered data in the same form. Files were all we knew. Now we have visual representations: Web data entry forms, MDBB's, Web page browsers, and electronic codebooks. What we consider the same 'data' have different shapes and struc tures in container objects than in an RDBMS or in an XML stream. So, how do we get from forms to data? How do we serve data to internal or external clients? To explore these questions we trace a set of data from capture to database to delivery. Blaise, Oracle Clinical, Web server pages, and SAS FS/AF/SCL forms illustrate alternative DE programs. 'Flat files', 'drill downs', RDBMS schema, and tagged fields in data streams serve as examples of data products. We will illustrate methods that preserve essential data as they pass through a series of transformations via several scenarios data standard, input statement source 5
148 New Ways and Means to Summarize Files Curtis A. Smith Frequently, when creating files for a data warehouse or to be used within a SAS program, it makes sense to create smaller files to save space and reduce processing time . Sometimes creating summary files is the solution. Of course, the SUMMARY procedure is the tool to use to create a summarized SAS data set. While this procedure has been available for several version of SAS, version 8 of SAS gives us some significant new features that we can use to get more information in our summarized files and to optimize the summary process. In this paper the author will discuss the techniques and programming code for creating summary files, where the SAS programmer collapses a data file into fewer observations and variables. The author will give spec ial attention to the new version 8 features dataset, proc means, class variable, by group processing, proc step, cpu time, variable list, character variable, missing value, numeric variable, output source 6
149 Next Generation Data _NULL_ Report Writing Using ODS OO Features Daniel O'Connor This paper is targeted for advanced data null report-writing programmers that are eager to take advantage of the new ODS Object Oriented (OO) features built directly into the DATA STEP environment, which will be experimentally available in Version 9.1. Features will allow you to build tables cell by cell with all of the ODS features that you have become accustom to such as proportional fonts, traffic lighting in cells, embedded images, but will also allow you to create non-tabular output, insert sub-totals, and manage your layout data step, output delivery system, file statement source 7
150 Next Generation Warehousing with Version 9 Gary Mehler This paper covers the new data warehousing and management services available in Version 9 and shows how they help manage large, real-world ETL development environments. Topics covered include multi-user planning and administration, security management, the development-to-production lifecycle, deployment issues and scheduling, and the integration of data quality management sas management console, etl developer, proc sql, data cleaning, key, macro definition, sql server, sample, data merging source 10
151 Nine Steps to Get Started Using SAS Macros Jane Stroupe Have you ever heard your coworkers rave about macros? If so, you've probably wondered what all the fuss was about. This introductory tutorial unravels the mystery of why and how you use the SAS macro facility. In the nine easy steps outlined in this paper, you follow the process of testing your code, substituting macro variables into the code, and turning your SAS program into a macro definition with conditional processing macro variable, macro definition, macro facility, symbol table, macro parameter, %macro parameters, call symput, local symbol table, automatic macro variable, global symbol table, proc print, proc sql, proc step, put statement, title statement, keyword parameter, macro function, %if-%then-%else source 5
152 Not All Fish Eat Worms: A SAS Programmer's Guide to MS Excel and Other Fish Stories David Rucker MS EXCEL? What does a SAS programmer need to know about a spreadsheet application? Like any good angler who wishes to catch fish, a diverse assortment of baits and lures in the tackle box is indispensable. A programmer's skills are much the same way; an array of knowledge in many applications and languages is indispensable. It is true, not all fish eat worms. Sad, but true, not all people work with the SAS System (these species are easily identified when asking "SAS? What does S.A.S. stand for?"). The fact is, more people are hooked on using MS EXCEL to collect, store, and use data, then the ocean has fish. As SAS programmers, we need to know how to work with this application to our advantage and our customer's satisfaction and profit. This paper will be beneficial to seasoned and salty old timers and novices alike, who have, at a minimum a general understanding of MS EXCEL. This paper will also benefit those who are learning SAS after having mastered MS EXCEL excel, sas programmer, dataset, date variable, sample, proc step source 6
153 ODS In An Instant! Bernadette H. Johnson Do you need to generate high impact word processor, printer- or web- ready output? Want to skip the SAS Output Delivery System (ODS) learning curve? Make it happen with Instant ODS! . What is Instant ODS! ? A suite of ready-to-run ODS style templates, developed to provide instant access to a wide variety of business-ready style templates. Your SAS output is automatically formatted in the selected style and ready for a word-processor, PDF or the web. See how easy it is to create your own stylized results. If you are a new SAS user or an experienced SAS user new to ODS, then this is for you! sas output, output delivery system, sample, ods html, file statement, ods pdf, ods rtf, proc print, proc step source 6
154 ODS or DDE for Data Presentation - A Preliminary Comparison of Output from Different Sources John He sas output, output delivery system, proc step, data step, ods listing, txt, excel source
155 ODS PDF: It's Not Just for Printing Anymore! Kevin Payton Delaney As part of the PRINTER family of Output Delivery System destinations the ODS PDF (Portable Document format) destination is designed to produce output formatted to best fit on a page for printing. The default style attributes for ODS PDF are adequate for many presentations, but there are also several options that can make your report more aesthetically pleasing. Examples include using the COLUMN= option to divide the output into multiple columns on a page, and the TEXT= option to insert raw text and formatting. Changes can also be made to the default ODS PRINTER style template that will modify fonts, colors and borders in the PDF document. Using this as a foundation, more advanced techniques can go beyond printed output to utilize the full functionality of the PDF destination proc step, ods pdf, proc print, proc freq, proc template, output delivery system, proc report, proc tabulate source 6
156 ODS to RTF: Tips and Tricks Paul D. Hamilton Since the introduction of the ODS RTF destination, traditional character-based displays of tables and listings are passé. The new capabilities also bring new tribulations as the pharmaceutical community strives to produce high quality statistical reports, maximizing the amount of information on a page, while still conforming to FDA guidance. This paper examines some obscure ODS to RTF formatting tricks available by getting creative with SAS version 8.2. Topics covered include selective bolding and graying of data values, insertion of blank separator rows, selective graying of report rows, management of widow and orphan data lines, control of table cell widths and heights, font control, and selecting and displaying special characters (footnote notations, scientific and mathematical symbols, typography characters) proc step, proc report, character variable, adverse events, proc template, numeric variable, macro loop, macro definition, %if-%then-%else source 9
157 Optimization with the SAS System: What It Is, What's New, and Why You Should Be Using It Edward P. Hughes This paper presents an introduction to optimization and an overview of SAS capabilities in optimization, with a focus on mathematical optimization with SAS/OR software. We review the current suite of optimization modules and techniques available in SAS/OR software, highlighting recent additions. We discuss the value that optimization adds to business intelligence, and we describe several recent cases in which optimization has played a central role in the creation of SAS decision support solutions source 7
158 P-Value Generation Simplified with a Single SAS Macro Christopher S. Hord,
Peter J. Anderson
P-values can be generated for a vast number of statistical tests, and many SAS procedures facilitate their computation. In the pharmaceutical industry, clinical trials often require tables presenting descriptive statistics and p-value results for baseline data analyses. Although important, such tables constitute a small portion of the universe of reports for which the programmer is responsible, and therefore are only produced on a periodic basis. To minimize the need for programmers to re-evaluate the various procedures for computing p-values every time such a table is needed, we developed a SAS macro to consolidate the p-value generation code. This macro currently incorporates p-value computations from several SAS procedures, including: chi-square, Cochran-Mantel-Haenszel, and Fisher's exact tests (PROC FREQ); a Kruskal-Wallis test (PROC NPAR1WAY); and a rank ANOVA test (PROC MIXED) proc means, macro call, fisher exact test, out=, dataset, exact test, in=, anova, proc step, clinical trial, sample, nominal variable, interval variable, response variable, keyword parameter source 3
159 Parallel Processing on the Cheap: Using Unix Pipes to Run SAS Programs in Parallel Ted Conway A small, general-purpose Unix script is presented that allows SAS (and other) programs to be run in parallel when SAS Connect and other parallel processing ETL tools aren't available or may be overkill for the task at hand. The script will primarily be of interest to those using Base SAS to process large amounts of data on Unix parallel processing, elapsed time source 2
160 Performance Tuning SAS/ACCESS for DB2 Scott J. Fadden proc sql, proc step, dataset, libname engine, proc freq, proc print, sas base, create table, data mart, proc sort, sql pass-through source 10
161 Posting Project Status to the Web Through SAS Programming Zaizai Lu,
David Shen
In clinical trial studies, it is important to learn how the project is going on. Information such as how many programs have been developed, how many data listings and tables have been generated, and how much validation is finished, is very helpful to adjust resources and check the status of a project. A small compact program has been developed to meet such a need. This program, with a specified directory provided, can search all files from the current directory and all its subdirectories for information such as FILENAME, path, date and time created. User can select files by file type, time period. Finally, the program will generate an HTML file that contains file list and summary information. A hyper-linkage makes it possible to open and view the file of interest on the web site. This HTML file posted on Web can dynamically report the progress status of the project output delivery system, ods listing source 3
162 Practical Tips to Customize a SAS Session Beilei Xu,
Xiaohui Wang
SAS Programmers often find that a nicely customized SAS session can greatly facilitate their routine jobs and save time spent on repetitive tedious tasks. This paper discusses some easy ways to customize a SAS session, including toolbar customization, shortcut keys, the use of the SAS configuration file and the autoexec.sas file. All the examples work on SAS V8 Windows platforms options statement, proc step source 3
163 PROC DATASETS: Managing Data Efficiently Daphne E. Ewing PROC DATASETS is a data set management tool. There are things that the DATASETS procedure can do that can also be done using other techniques, although the other methods may be inefficient. This paper will show the user the basics of PROC DATASETS. This will include some of the powerful tasks it can perform along with how these similar tasks can be completed using other methods within the BASE SAS product. The result will be a method for determining the best approach to gaining the information needed and performing these tasks using the appropriate tool proc step, proc datasets, proc contents, sas log, sas output, work library source 4
164 PROC FORMAT Supports PROC BOXPLOT to Handle Twofold Grouped Data Barbara G. Schneider,
Kristan A. Schneider
Boxplots are an appropriate statistical method to compare the distributions of a continuous or ordinally scaled variable graphically between groups. Very often you have to visualize twofold grouped data using boxplots. For example think of a data set consisting of changes in blood pressure, drug and disease information where drug and disease represent the two grouping variables. Ready to use PROC BOXPLOT within SAS So ftware is ab le to handle blocked data (nested grouping) but can't display twofold grouping in a general sense. PROC GCHART is able to handle twofold grouping to display means together with corresponding confidence intervals. The aim of the paper is to s uggest a strategy to force PROC BOXPLOT to display twofold grouped data in a similar way as PROC GCHART proceeds with means proc step, box plot, proc boxplot, proc format, proc gchart source 4
165 PROC MIGRATE: How to Migrate Your Data and Know You've Done It Right! Diane Olson,
David Wiehle
Migrating your data to a new version of SAS can be relatively simple or complex depending on the attributes of your data libraries. Some issues to consider when adopting SAS 9 include the version of SAS in which your data currently reside, what member types exist in your libraries, and whether you must move members from 32- bit libraries to 64-bit libraries. To address these issues, SAS 9.1 includes a new utility procedure, PROC MIGRATE. PROC MIGRATE streamlines the process of moving libraries forward to a new release. This paper introduces PROC MIGRATE and compares it to migrating with the traditional methods - PROC COPY, PROC CPORT/PROC CIMPORT, and PROC CATALOG. SAS also provides tools that can help you validate the content and attributes of your data after conversion. We discuss ways to use PROC DATASETS, PROC CONTENTS, and PROC COMPARE to ensure the integrity of your data proc step, data cleaning, proc contents, audit trail, proc compare, proc copy, constraint, sas 9, macro variable, sample, sas log, macro call, sas library, proc sql, output delivery system, data integrity, libname statement, macro definition source 9
166 PROC REPORT: Doin' It in STYLE! Ray Pass,
Sandy McNeill
The advent of the SAS Output Delivery System (ODS to its friends) has turned SAS reports from machine-generated, black & white monospace bores into people-produced, productive and reader-friendly information displays. One of the main principles underlying ODS is the use of Table and Style definitions (also known as Table and Style templates). Most procedures have a standard output layout structure and rely on their Table and Style definitions to govern the cosmetic or stylistic appearance of their tables. Certain procedures (REPORT, TABULATE, etc), however, by the very nature of their complete structural customizability, do not rely on fixed external table definitions. For these procedures, stylistic customizations are performed through the use of the STYLE option, an ODS concept which is integrated into the heart of the procedures' syntax. This presentation will demonstrate the use of STYLEs in the REPORT procedure proc report, proc step, output delivery system, ods html, ods listing, if-then-else, cpu time, user-defined format source 10
167 PROC SQL vs. Merge - The Miller Lite Question of 2002 and Beyond Kevin J. Smith,
Muhammad Z. Khan,
Yadong Zhang
Whenever SAS programmers get together to discuss SAS tips and techniques, there always seems to be a conflict regarding linking two tables together. I have noticed that programmers have very strong allegiances to either PROC SQL or Merge. I often think if this was a sports commercial, instead of arguing "Taste's Great" and "Less Filling" we would be arguing "In A and B" or "Left Join". For a beginning SAS programmer, seeking help from co-workers can be very challenging as one will preach "tastes great" and the other "less filling" and I feel the novice programmer will actually seek the Miller Lite beer as they don't fully understand either technique and when it is appropriate to use one over the other. In this analysis, we will have an active discussion on not only the coding aspect of the two methods; we will discuss hashing and system issues such as CPU, Input/Output, Disk Space, and memory system resources and how it affects productivity proc sql, proc step, cpu time, create table, dataset source 4
168 Producing American Community Survey Edit Analysis Reports Dynamically Using SAS/IntrNet Arumugam Sutha Each year the Data Processing Team (DP Team) of the American Community Survey (ACS) at the U. S. Census Bureau produces several reports to support subject-matter analysts in their review of the edited survey data. Since these reports are several hundred pages long and a particular analyst has interest in only a few pages, there have been complaints from the analysts on printing and viewing the reports. SAS/INTRNET software offers a solution to this problem. It allows the users to select certain parameters from a browser at their desktop and submit a job to produce a nicely formatted HTML report without having SAS software on their machine. This paper will discuss how SAS/INTRNET is used to accomplish this task and will describe the necessary SAS code. It will also show how the report can be downloaded to a spreadsheet by the click of a button macro variable, dataset, output delivery system, proc step, proc print source 6
169 Programming Standards, Style Sheets, and Peer Reviews: A Practical Guide Dianne Louise Rhodes When a new job starts, or a new manager takes over a project, the programming team is faced with a new culture. Often, this means that they are asked to adhere to yet another set of programming standards, use style sheets, and are subject to peer reviews. This process is usually short lived, because of the lack of a practical approach to applying standards and enforcement. This paper goes through a step by step process of developing programming standards, classifying them and entering them into a database. This database can then be used to develop style sheets and check lists for peer review and testing. Through peer reviews and in preparation for them, programmers learn good programming practices quality control, stress testing source 5
170 PROLAP - A Programmatic Approach to Online Analytical Processing Craig S. Austin,
Jim Acker
Traditional OLAP technologies impose rigid rules on how data must be organized. A variety of hybrid OLAP solutions have evolved in an attempt to make OLAP more flexible and adaptive to unique data problems. This paper introduces another hybrid called Programmatic Online Analytical Processing (PROLAP), which is focused on using a program to generate the data model at runtime relational database, sas programmer source 3
171 Randomized Rounding Erik W. Tilanus How do you apply a small growth, e.g. 3% on small integer values? Standard rounding distorts the results: any value up to a certain point (in our case 16) is rounded down, any value above that point is rounded up, and so on. Randomized rounding provides a method to simulate a growth for integer values that prevents this distortion proc mixed, proc means source 2
172 Rapid Analytic Application Deployment David Press,
Sam Iosevich,
Larry Wasserman
market basket analysis, business intelligence source
173 Reducing the CPU Time of Your SAS Jobs by More than 80%: Dream or Reality? Henri Theuwissen,
Nancy Croonen
proc step, cpu time, proc sql, proc sort, dataset, if-then-else, proc means, create table, where statement, order by, subsetting if, proc tabulate, class variable, group by source 10
174 Regulatory Overview of Using SAS/IntrNet to Collect Data from Thousands of Users Xin Luo,
Sandra J. Archer,
Russell E. Denslow
The Sodexho Unit Information Collection web page is a web-based survey system that was developed using SAS/INTRNET technologies combined with Base SAS, SAS/MACRO, HTML, and JavaScript. It enables Sodexho to collect operational site information from campus food service sites across the United States. The information collected includes dataset, data cleaning source 6
175 Reliability, Exploratory and Confirmatory Factor Analysis for the Scale of Athletic Priorities Diana D. Suhr The process of evaluating a measurement instrument for reliability and investigating the factor structure will be discussed using the Scale of Athletic Priorities (SAP) as an example. SAS procedures served to provide an indication of the internal consistency (reliability with PROC CORR),to verify the factor structure (confirmatory factor analysis with PROC CALIS), and to explore the factor structure (with PROC FACTOR) of the measurement instrument factor analysis, sample, confirmatory factor analysis, proc step, correlation, factor loading, latent variable, sample size, proc factor, standard deviation, scree plot, data science, proc corr, proc calis source 7
176 Renaming All Variables in a SAS Data Set Using the Information from PROC SQL's Dictionary Tables Prasad S. Ravi Renaming all variables in a SAS dataset has become much easier task by using the information contained in PROC SQL's DICTIONARY.TABLES and COLUMNS about the SAS libraries and their members. The technique defined here is a simple macro which uses the information such as NVAR(number of variables in a given SAS dataset) from PROC SQL's DICTIONARY.TABLES and the NAME(variable containing the names of the variables of a given dataset) from DICTIONARY.COLUMNS and renames all variables in the dataset using PROC DATASETS MODIFY statement attaching a prefix to each variable name. This paper uses Base SAS product and SAS Macro language and intended for beginner SAS users with some SAS macro language knowledge proc step, proc sql, dataset, macro facility, proc contents source 3
177 Report? Make It Easy - An Example of Creating Dynamic Reports into Excel Liping Huang The ability to generate flexible reports in EXCEL is in great demand. This paper will use a real world example from a health care agency to illustrate an automated, flexible, easily managed process for intermediate and innovative SAS programmers to create updateable and individualized reports that include descriptive and statistical results. The paper will demonstrate the following capabilities by using Base SAS version 8: (1) Using %WINDOW statement to create an interface allowing end users having flexibility to define a time frame and to select specific criteria. (2) Using macro %INPUTVAR to perform various analyses by simply adding or dropping variables listed in %LET statements. (3) Illustrate a procedure that adopts the features from SAS Output Delivery System (ODS) to examine the variance between two samples and select a proper probability, and subsequently export the statistically significant results to an EXCEL template excel, dataset, macro variable, adverse events, variable list, proc freq, proc step, proc sql source 6
178 RETAINing Information to Identify Entity Characteristics John D. Chapman A common requirement of data analysis is to identify an entity characteristic that is not explicit in the data but is derivable from it. The SAS RETAIN statement is a powerful and flexible tool for analysts and programmers with such a requirement. This paper introduces the RETAIN statement, along with its cousin the SUM statement, and illustrates its use for this class of analytic requirements. The concepts discussed apply to Base SAS and will be of most interest to beginning and intermediate users with an interest in using the DATA STEP to derive information from data sample, data step, retain, automatic variable source 3
179 Return Code from Macro; Passing Parameter by Reference Hsiwei Yu,
Gary Huang
For software reusability, a macro (function or utility) must clearly inform the caller about its execution status so as to make itself easily usable by other programmers. A macro function which only writes error messages to SAS log is not user-friendly in terms of passing its result back to the caller. Here we propose writing macro routine to return its execution status via macro variable, i.e. passing parameter by reference. Other programmers using such macro can easily determine its result and then proceed accordingly. This new way of passing results makes a macro convenient for other people to use, thus promoting software reusability macro variable, macro loop, sas log, %if-%then-%else, macro definition source 2
180 Ring Charts David J. Corliss Ring Charts are presented as a new, graphical technique for analyzing complex relationships between tables in a relational database. Charts are constructed in the SAS System by creating an Annotate Data Set. PROC GSLIDE is then used to produce graphical output. Ring Charts provide the frequency of table joins in a visual format, allowing the system analyst to identify important characteristics. These include hierarchies, inefficient operations, and system constraints data merging, proc step, proc means source 5
181 Run Time Comparison Macro Robert R. Patten Programming is part logic and part art; there are as many ways to solve problems as there are people that work on them. SAS allows for this flexibility which is one of the beauties of the language. However this flexibility can also be troublesome. When you are confronted with two competing coding algorithms, how do you decide between them? This decision can become very important when dealing with large datasets in production code where resources are tight. Even if you do not live in this scenario, choosing the right algorithm is the right thing to do. Because I frequently need to compare code and/or determine the impact of coding changes, I developed a macro that facilitates the creation of average run time statistics. In addition, the macro can be a useful aid in identifying code bottlenecks by modifying code and comparing before and after average run times. SAS product: BASE. Audience: Beginner to Intermediate proc step, proc print source 3
182 SAS and the Internet for Programmers David L. Ward The SAS programming community has been bombarded with demos, presentations, user group papers and white papers outlining why we should move our programs to the web. Even with so much emphasis placed on new and exciting ways to access SAS software, most programmers still sit in front of good 'ol Base SAS day in and day out. In this paper we will explore how you can use SAS with the Internet, whether or not you should actually do this, and why many programmers have avoided it altogether. After thoroughly explaining how the web works (either on the Internet or an Intranet) you will learn about various ways to bring your SAS programs into this new world. This paper should give the reader a deeper understanding of the web and the various SAS products that work with it as well as provide a foundation for making decisions about their own problems data step, ods html source 4
183 SAS Application Performance Monitoring for UNIX John Hall In many SAS application environments, a strategy for measuring and monitoring system performance is key to maintaining Service Level Objectives (SLOs). This paper will discuss various aspects of performance monitoring in a SAS environment, both from a dedicated SAS server perspective as well as multiple applications hosted on a single server. The importance of performance baselines, capacity planning, and configuration management will be discussed as it pertains to the SAS application environment. Evaluation of system components such as CPU, memory, disk, and network performance will be discussed individually as well as collectively to develop a complete perspective on both application as well as system level performance. Finally, a case study is reviewed to illustrate how metrics may be used in understanding SAS application performance. SAS Applications for a single server environment This is the 'typical' way that many users deploy SAS applications - a dedicated server environment data warehouse, bar chart source 14
184 SAS Enterprise Guide - Getting the Job Done Andy Ravenna Enterprise Guide is a relatively new front-end Windows client that provides a point-and-click interface to access and analyze your data. Both longtime users of SAS as well as new users to SAS often don't know where to begin with Enterprise Guide. Longtime users are accustomed to typing all of their code into the Program Editor window and hitting the Submit key. New users are puzzled about how to get started and how to 'make something happen' such as creating a report. This beginning tutorial introduces Enterprise Guide to both old and new users of SAS. It focuses on the key points of a typical Enterprise Guide session: creating a project, accessing your data, building a query, and producing a report. It also answers several common questions that typically come up for first-time users, such as 'Why can't I sort my data?' and 'How can I copy a task from one project to another project?' Attendees get a head start back at the office with 'getting the job done' with Enterprise Guide sas enterprise guide, proc freq, excel, dataset, proc sql source 10
185 SAS Helps Those Who Help Themselves: Creating Tools to Aid in Your Application Development Peter J. Lund Writing code, organizing output, managing datasets--all these things and more go into development of a successful application. SAS provides a wonderful environment to develop code, but there are times when the Enhanced Editor or SAS Explorer just isn't enough to develop your application in the most efficient manner. This paper presents some tips and tricks for simplifying development tasks. Some are user-written macros to aid in code development, data management, and process tracking. Some are little known or little used SAS tools. The goal of the paper is not intended to go into line-by-line detail on all these tips, but to inspire you to think of ways to improve your own processes. I feel kind of cheated if I make it through a whole project without acquiring a new utility macro to add to my toolbox. I hope this paper leaves you looking at your work in the same way sas log, macro variable, macro put, proc step source 9
186 SAS High-speed Automated Reporting Queue (SHARQ) Kasi A. Peek excel, macro variable, macro conditional, proc step, stored macro, permanent dataset, proc upload, output delivery system, sample, macro definition source
187 SAS in the Office - IT Works Peter W. Eberhardt The Microsoft Office suite is ubiquitous in most large organisations 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. 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. This paper is geared for any SAS programmer who has a good grasp of VBA. There are few SAS programmers and/or analysts who have not heard the refrain 'Can I have that in an EXCEL spreadsheet?'. And, once provided, the additional and inevitable refrain 'Can you run it again with this one change?' excel, ods html source 7
188 SAS Macros and Tools for Working with Weighted Logistic Regression Models That Use Survey Data David Izrael,
Annabella A. Battaglia,
David C. Hoaglin,
Michael P. Battaglia
bootstrap, sample, logistic distribution, logistic regression, regression analysis, proc calis, proc step, survey weight, proc logistic, predictor variable, likelihood function, macro definition, standard deviation, stepwise selection, roc curve, macro variable, dataset source 10
189 SAS Metadata, Authorization and Management Services - Working Together for You Michele Ryals sas management console, sample, data lineage, metadata management source
190 SAS Performance Optimizations on Intel Architecture Patric J. Fay,
Tracy W. Carvar
This paper is intended for intermediate to advanced SAS users who want to know more about performance on Intel architecture- based systems. In early 2001, SAS and Intel jointly established the SAS and Intel Advanced Research Center (SIARC). Learn how SIARC research is used to optimize SAS performance on the latest 32-bit and 64-bit Intel processors. Learn about new Intel technologies that will affect you, such as the Intel NetBurst microarchitecture, the Intel Itanium processor family, and Hyper-Threading Technology (HT Technology)1. Learn how SAS performance is enhanced by these technologies. Learn about the characteristics that can affect SAS performance in areas ranging from SAS/STAT and Enterprise Miner analytical procedures and traditional SAS/BASE procedures. SAS performance improvements are significant and many optimizations have been included in the SAS System for Windows*, Version 9.0 proc genmod, proc step source 6
191 SAS Programming Conventions Lois Levin This paper presents a set of programming conventions and guidelines that can be considered in developing code to ensure that it is clear, efficient, transferable and maintainable. These are not hard and fast rules but they are generally accepted good programming practices. These techniques can be used in all types of SAS programs, on all platforms, by beginners and experts alike proc step, dataset, error message, if-then-else, options statement source 6
192 SAS Reporting 101 REPORT TABULATE ODS Lauren E. Haworth proc step, proc tabulate, proc report, excel, ods html, ods pdf, proc freq, ods rtf, proc print source 9
193 SAS System on Network Appliance Darrell Suggs,
Margaret A. Crevar,
Leigh A. Ihnen
The goal of this paper is to help customers maximize SAS application performance while reaping the benefits of network attached storage. Specifically, this is a guide for performance tuning in an enterprise class environment containing the SAS application and using a Network Appliance NAS (network attached storage) subsystem (aka Filer). The recommendations include configuration and par ameter changes to the SAS environment, the platform specific Unix operating system, NFS (Network File System) client, and the NetApp Filer subsystem. This version of the paper covers only Solaris and HP-UXchanges. A complete set of tuning recommendations for other operating systems is contained in the full version of this paper located on both SAS's and Network Appliance's company web pages dataset, memory usage, proc sort source 6
194 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? No. 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 v8.2 for Windows. With version 9, 10 of them went away and we have 68 new options. Their implementation can be confusing. However, they should not be ignored. The author will explain a little about their usage in a Windows environment and will present a handful that will make your work easier and less prone to simple mistakes sas log, options statement, user-defined format, dataset, proc step, by group processing, proc options source 6
195 SAS with Style: Creating Your Own ODS Style Template Lauren E. Haworth sample, proc step, proc template, output delivery system, ods html, proc freq source 10
196 SAS, Linux/UNIX and X-Windows Systems Gady Kotler This paper will discuss features of the native windowing system (called X-Windows) found on Linux/UNIX based systems and topics related to SAS implementations on these systems. As Linux/UNIX based servers and desktop systems continue to evolve, we find it important to review the different ways to implement SAS on these platforms and to compare them to other alternatives such as Microsoft based NT/2000 servers and PC's desktops or other thin clients implementations. The paper is aimed for SAS system administrators who would like to implement an open environment within their SAS installation macro variable, dataset source 9
197 SAS-L: A Very Powerful Free Resource for SAS Users Worldwide JoAnn R. Matthews SAS-L is an electronic mail discussion group that was developed to allow SAS users worldwide the potential to communicate with some the best and most powerful SAS users in the world virtually instantaneously via discussion groups or LISTSERV e-mail servers. Originally SAS-L messages were sent over electronic bulletin board systems, in the days prior to the Internet. Now topics of interest to the sas programmer, proc means source 4
198 SAS/ACCESS to External Databases: Wisdom for the Warehouse User Judy Loren With SAS/ACCESS, SAS users can read from and write to almost any database product: DB2, Oracle, Informix, Sybase, MS SQL Server, or Teradata just to name a few. ODBC opens up even more warehouse doors. SAS/ACCESS offers several ways to connect: procs, such as Import and Export; the LIBNAME statement option that treats database tables like SAS datasets; and pass-through, which passes user-written SQL directly to the external product to execute and return the results to SAS. The fun starts when the warehouse tables are too large or too complex to allow the easy approach. This tutorial reviews all the techniques briefly, then focuses on the situations that call for advanced expertise. Examples demonstrate using SAS with DB2, Oracle and Microsoft Access. Important details like how to refer to missing values in various databases, and how to use macros in pass- through SQL, make the tutorial concrete and useful proc sql, dataset, proc step, macro variable, create table, where statement, order by, libname statement, missing value, macro put, error message, out=, automatic macro variable, variable, select, sql pass-through source 9
199 SAS/CONNECT: The Ultimate in Distributed Processing James C. Stokes Most of us today are required to process data on more than one computer platform (e.g. Mainframe, UNIX, Windows, etc.). The term "distributed processing" might be used to describe this scenario. Wouldn't it be great if there was a way to easily move SAS datasets between computer platforms? Wouldn't it be great to submit SAS jobs from a local platform to run on a remote platform? Wouldn't it be great to be able to have local access to a SAS dataset stored on a remote platform? If you've answered yes to any or all of these questions, then SAS/CONNECT is something you really need. SAS/CONNECT will allow you to greatly simplify some of the more challenging aspects related to distributed processing. This paper will define what SAS/CONNECT is, what you need to get started, and explore the three main features of SAS/CONNECT namely: Data Transfer Services, Remote Compute Services, and Remote Library Services dataset, proc step, proc download, distributed processing source 2
200 SAS/IntrNet and Census Mapping: How Low Would You Like to Get? Lakshmi Pandey,
William Joseph Smith,
David Sjoquist
This paper details the steps involved with using SAS procedures and program components to create a web-enabled Geographic Information System. With the increased availability of geographic data via the Internet, data managers are put into a position of trying to make the available data user-friendlier. Access to data now entails more than physically obtaining columns of numbers. It means presenting the data in an understandable way to individuals with little or no technical knowledge. This paper shows how an intermediate SAS user, utilizing features integrated into the base SAS System can easily produce maps of geographic data, and with the addition of ODS (Output Delivery Services) can create live and interactive reports on the web that can be used by individuals without any knowledge of SAS, HTML or any other markup or programming language proc step, proc gmap, data step source 6
201 SAS/Solaris Performance "Molass-i-fication "Blues? SAS 9.1 on Solaris 9 Performance Improvements and Optimization Tips Maureen E. Chew This paper is targeted to administrators of SAS[tm]/Solaris[tm] systems who want to learn about complementary performance improvements in both SAS 9.1 and Solaris 9. Additionally, tips, tricks, and spells to optimize and tune for performance are discussed. The topics are advanced, but you don't need to be a wizard if you think your SAS/SOLARIS configuration has been hit with the 'Petrificus Totalus' curse (that is, 'molass-ification'). Many topics are relevant to other UNIX/Java platforms. SAS Version 9.1 With the release of Version 9.1, the SAS software platform unleashes a powerful and flexible new foundation for the next generation of product deliverables. Discussion of these new capabilities is outside the scope of this paper but we will address the running, monitoring and tuning of this platform on Solaris 9 sas log, proc step source 8
202 SAS/STAT Version 9: Progressing Into the Future Robert N. Rodriguez,
Maura E. Stokes,
Randy Tobias
Version 9 of SAS/STAT software delivers a wealth of tools and functionality for statistical modeling and data analysis. Areas covered by new or enhanced soft- ware include multiple imputation, conditional logistic regression, robust regression, general linear models for proportional hazards, regression diagnostics, sur- vey data analysis, power and sample size analysis, statistical distance computations, statistical graphics, and parallelization source 5
203 Scaling SAS Data Access to Oracle RDBMS Howard Plemmons Jr.,
Andrew Holdsworth
How much data will you be required to store and process, now, six months from now? How can you effectively manage and balance user requirements for data analytics vs. transaction requirements from your OLTP system? These questions as well as many others are becoming more demands than requests. SAS and Oracle have solutions that will help you provide some answers. Loading, extracting and feeding high end SAS analytics with data stored in Oracle provides answers to more than data volume concerns dimension table, proc sql, sample, fact table, oracle access, proc step, libname engine, data warehouse, where statement, star schema, regression analysis, proc reg, macro definition source 6
204 Scheduling Time with SAS: Project Proposal Examples Barbara B. Okerson The SAS system provides the ability to develop both basic and presentation-ready tools for project and project proposal time and cost management. While the SAS system includes direct project management tools in SAS/OR using the SAS PROJMAN system, it is possible to create many of the same tools without SAS/OR. This paper focuses on SAS as a project management tool using the procedures available in SAS/GRAPH. All examples were developed with version 8.2 of SAS executing on a Windows 98 platform. Examples are not platform specific and can be adapted by both beginning and advanced SAS users proc step, proc sort, data step, proc gplot, macro definition source 6
205 Security Control System with SAS Application Dispatcher Haidong (Don) Tang,
Xiao Ji,
Xinyu Liu
This paper aims to introduce a practical way of security control with SAS application dispatcher. The method takes macro variables, such as _RMTUSER, transferred from Web server to decide whether user has the access right to specific resources. To take most advantage of the application dispatcher, its original architecture should be changed slightly. It will not only show the insights of designing the security control system, but also discuss some security issues concerning the architecture itself. Besides, the paper will introduce briefly in Shanghai Baosteel enterprise data warehouse system a real-world security control system, which is based on the described method macro variable, data warehouse source 3
206 Shopping for Voters: Using Association Rules to Discover Relationships in Election Survey Data Mary F. MacDougall Association analysis is an undirected data mining technique that is especially helpful for exploring new data sets because it provides results that are easy to understand and explain. While it is commonly used for finding relationships between events in retail settings, such as the purchase of beer and diapers, association rules can also highlight connections between intangible things like a person's age, his political views, and his TV viewing habits. This paper describes a case study in which the Association node in SAS Enterprise Miner was used to examine relationships between the demographic characteristics, political party affiliation and media influences of respondents in a survey of U. S. voters data mining, numeric variable source 5
207 SHOW-AND-TELL: How to Use MS Office Products to Help With SAS Applications Myra A. Oltsik Do you hate to type? I do. Over the years I've found ways to use other programs to help me develop SAS applications. This presentation will show you ways to use MS Word, MS EXCEL, and other products to help "write" SAS code, no matter what your level of SAS experience excel, proc sql source 4
208 Smoothing with SAS PROC MIXED Alexander Pedan Mixed models are an extension of regression models that allows for incorporation of random effects. The application of mixed-effects models to practical data analysis has greatly expanded with consequent development of theory and computer software. It also turns out that mixed models are closely related to smoothing. Nonparametric regression models, especially the general smoothing spline models, are well known for their ability to fit an arbitrary mean response function. This paper describes the use of the MIXED procedure for fitting nonparametric or semi-parametric regression models. Compared with such SAS procedures as PROC LOESS and PROC TPSPLINE, the use of the PROC MIXED allows the fitting of a wide spectrum of complex non-parametric and semi- parametric regression models with simultaneous modeling of trends and covariance structure regression analysis, proc mixed, proc step, correlation, clinical trial, likelihood function, proc gam, restricted maximum likelihood source 5
209 So Many Files, So Little Time (or Inclination) to Type Their Names: Spreadsheets by the Hundreds So Little Time proc import, proc step, macro variable, infile statement, macro definition source 4
210 So You're Still Not Using PROC REPORT. Why Not? Ray Pass,
Daphne E. Ewing
Everyone who can spell SAS knows how to use PROC PRINT. Its primary use may be as a development tool to help in debugging a long multi-step program, or as a simple report generator when all that is really needed is a quick look at the data, or even a basic low-level finished report. However, if a report generation/information delivery tool with powerful formatting, summarizing and analysis features is called for, then PROC REPORT is the solution. PROC REPORT can provide the standard PROC PRINT functionality, but in addition, can easily perform many of the tasks that you would otherwise have to use the SORT, MEANS, FREQ and TABULATE procedures to accomplish. PROC REPORT is part of the Base SAS product, can run in both an interactive screen-painting mode or a batch mode, and should be the basic tool of choice when there is a need to produce powerful and productive reports from SAS data sets proc report, proc step, class variable, sample, character variable, proc tabulate, proc print source 10
211 Space Odyssey: Concatenate Zip Files into One Master File Ying Long There are many times when we receive national school data stored in multiple zip files. Separate school-level files must be concatenated into a single master file. The volume of national school data forces one to consider system resource constraints. This paper demonstrates how to minimize disk space requirements by using the SAS System's X statement to execute host commands in order to get the names of zip files stored in a folder, unzip selected files, and then delete each file immediately after it has been processed. By taking advantage of the X command, one can avoid using WinZip, where you would have to unzip files individually and delete files manually. SAS is run in batch mode. The operating system we use is Windows 95. Base SAS & SAS macro facility are used in this paper. This paper is suited for all level of the SAS users proc append, macro variable source 2
212 Spectral Decomposition of Performance Variables for Dynamic System Characterization of Web Servers Kenny C. Gross,
Wendy Lu
source 6
213 Splitting a Large SAS Data Set Selvaratnam Sridharma Sometimes it is necessary to split a large data set into smaller, more manageable data sets. Here we show how to split a large data set into smaller sized data sets. The number of observations in each smaller sized data set will be equal to a given number except possibly for one smaller sized data set: this might have smaller number of observations than the given number The %split1 Macro For a given number n, the %split1 macro, given below, will split a large dataset into smaller number of datasets with n number of observations except possibly for one smaller dataset: this one might have less than n number of observations. First we find the number of observations in the large data set . Then divide this number by the given number n to determine the number of smaller datasets needed. Then we use a simple DATA STEP to split the large dataset into smaller data sets macro definition, data step source 2
214 StARScope: A Web-Based SAS Prototype for Clinical Data Visualization Fang Dong,
Thomas Pivirotto,
Subrahmanyam Pilli,
Jeffrey L. Van Domelen
clinical trial, macro variable, data visualization, data standard, sas output, macro definition, clinical data, data cleaning source
215 STEPWISE Methods in Using SAS PROC LOGISTIC and SAS Enterprise MinerTM for Prediction Ernest S. Shtatland,
Ken Kleinman,
Emily M. Cain
In this presentation, which is a sequel to our SUGI'26 paper, we demonstrate that if the goal of modeling is prediction, with a large number of covariates and little theoretical guidance for choosing among them, our regression analysis, logistic distribution, logistic regression, proc logistic, proc step, best subsets, likelihood function, data mining, feature selection, ods output, sample, predictor variable, sample size, monte carlo, output delivery system, stepwise selection, macro definition source 6
216 Survival Analysis Using Cox Proportional Hazards Modeling for Single and Multiple Event Time Data Tyler C. Smith,
Besa Smith,
Margaret A. K. Ryan
Survival analysis techniques are often used in clinical and epidemiologic research to model time until event data. Using SAS system's PROC PHREG, Cox regression can be employed to model time until event while simultaneously adjusting for influential covariates and accounting for problems such as attrition, delayed entry, and temporal biases. Furthermore, by extending the techniques for single event modeling, the researcher can model time until multiple events. In this real data example, PROC PHREG with the baseline option was instrumental in handling attrition of subjects over a long study period and producing probability of hospitalization curves as a function of time. In this paper, the reader will gain insight into survival analysis techniques used to model time until single and multiple hospitalizations using PROC PHREG and tools available through SAS survival analysis, survival function, proc step, proc phreg, cumulative frequency, probability distribution, regression analysis, predictor variable, hazard function, response variable, right censoring, likelihood function, relative risk source 8
217 Taking Control of Macro Variables Dante Di Tommaso Devised for programmers with some SAS Macro Language experience, this paper reviews fundamental concepts and discusses essential details of dynamic programming. My goal is to guide you towards developing solid macro programming skills through embracing and le veraging SAS features. Nothing (little?) that SAS does should seem mysterious; strength and dexterity lie in understanding macro facility, macro variable, macro definition source 6
218 Teaching Statistical Methods Courses with Case Studies and JMP Andy Mauromoustakos The paper will focus on teaching statistical principles and analyses using cases studies and JMP (Version 5, 2002) as an analysis tool and a teaching/learning tool regression analysis, sample, polynomial regression, proc reg, proc nlin, estimate source 6
219 Tell Them What's Important: Communication-Effective Web- and E-mail-Based Software-Intelligent Enterprise Performance Reporting Francesca Pierri,
LeRoy Bessler
The communication effectiveness and communication efficiency of your information delivery are essential to the success of Enterprise Performance Management. This is true regardless of the management discipline or implementation (such as Balanced Scorecard), used for Key Performance Indicators, Critical Success Factors, or whatever you call your performance measurement parameters. This paper shows that you can design and build a web based and email based Enterprise Performance Reporting System with just Base SAS, ODS (Output Delivery System), and SAS/GRAPH, an incisive system that makes best use of the time, and seizes the attention, of its users. Its output designs can serve the communication needs of any enterprise. Software Intelligent construction techniques were used, so the system can adapt to performance data of any enterprise dataset, sas base, macro variable source 8
220 Ten Things I Wish I Knew Before I Became an Independent SAS Software Consultant Andrew H. Karp calendar year, current account source 8
221 The BEST. Message in the SASLOG Andrew T. Kuligowski Your SAS/G226 routine has completed. It is apparently a success - no bad return codes, no ERROR or WARNING messages in the SASLOG, and a nice thick 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 that can be used to quickly identify numbers that are too large for your selected format - certainly much quicker and effectively than attempting to eyeball a massive report! data cleaning, e., put statement source 3
222 The Bleeding Edge - The Effects of Hardware and Software Migration on the SAS System Charlie Bastnagel When SAS projects and applications require the latest and greatest, their success or failure is laid open to the whim of technology's "bleeding edge." This quasi-obsessive need for change cuts through our corporate culture, holding little regard for whether that change is necessary or in the corporation's best interest. Knowing how and when to migrate is critical. Research, planning, testing, and benchmarking should be critical tasks in your migration efforts. Migration, by its very nature, exposes an organization to a heavy dose of risk. When you choose the road less traveled and ignore the risk, your project may just end up in a heap on the side of the road as the "bleeding edge" arrives via an OS upgrade, hardware platform migration, or SAS version upgrade. The purpose of this paper is to describe how changes in hardware platforms, software applications, and operating systems can dramatically affect the capabilities, reliability, and performance of the SAS System source 9
223 The DOW (Not that DOW!!!) and the LOCF in Clinical Trials Venky Chakravarthy Pharmaceutical companies conduct longitudinal studies on human subjects that often span several months. It is unrealistic to expect patients to keep every scheduled visit over such a long period of time. Despite every effort, patient data are not collected for some time points. Eventually, these become missing values in a SAS data set later. For reporting purposes, the most recent previously available value is substituted for each missing visit. This is called the Last Observation Carried Forward (LOCF) and is familiar to the Pharmaceutical audience. There are a number of ways to carry forward the last observation using SAS. This paper focuses on a technique that has gained prominence among SAS-L regulars. It is called the DO loop of Whitlock (DOW) also known as the Dorfman-Whitlock loop data step, do loop, baseline, set statement, last observation carried forward source 4
224 The Horror of Bad Data Quality Henri Theuwissen,
Nancy Croonen
Operational databases contain 'core' data and 'reporting' data. 'Core' data is vital for the operational applications, whereas 'reporting' data is 'nice-to-have'. Usually the quality of this 'reporting' data is very low. Once this data is used in a Data Warehouse or a CRM application, users suffer from the poor quality. For example: what happens if a customer is defined twice in the customer database, and you approach this customer in a cross- selling campaign? What happens if you send a birthday card to a customer on a wrong date? Poor quality data creates a short-term direct cost and has a long- term impact on the image of your company insurer, ifrs 17, data cleaning, lookup, data validation rules, policy, unique key source 7
225 The One-Time Methodology: Encapsulating Application Data Mark Tabladillo This presentation will introduce a simple but powerful concept called the "One-Time Methodology" for encapsulating data in applications. Extensive SAS/AF development experience is not required, though it will help to have had exposure to the basics of SAS/AF and SCL (SAS Component Language). The methodology can be applied in other application languages sas base, dataset, macro definition, excel, macro facility, sample, input statement, macro variable source 6
226 The Power of Pictures and Paint: Using Image Files and Color with ODS, SAS, and SAS/GRAPH LeRoy Bessler You might want to use a logo. You can create images with SAS/GRAPH, other software, or a digital camera. Hardcopy photos or illustrations, or even a 3D object, can be converted to image files with a scanner. There are stock photos and clip art, free or for fee, on the web or bundled with software. This tutorial shows how to create image files with SAS/GRAPH, and how to imbed an image in a graph, but emphasis is on numerous ways to imbed image files, from any source, in web pages (and other output), using the SAS Output Delivery System. Besides imbedding images in tables, graphs, web pages, etc., you can import images into Microsoft Word or PowerPoint, for use as is, or after adjustments there (clipping, resizing, and other manipulation) without fancy expensive image editing tools. You will learn a trick to export image files for use elsewhere, after editing them in Word. The tutorial compares characteristics, advantages, and disadvantages of image file types (GIF vs proc step, proc template, output delivery system, proc print, sample source 10
227 The Power of Recursive SAS Macros - How Can a Simple Macro Do So Much? John H. Adams A recursive macro is a perfect solution if you need to apply a 'fixed process' in a nested application. Using regular macros, you would need to know all the dimensions or levels of nesting in order to set up the appropriate 'nested do loops', resulting in a long complex macro program. With recursive macros, however, you do not need to know the levels of nesting up front, as the macro can call itself over and over again , as needed, to apply a given process. This paper describes a simple recursive macro, running on a Windows platform, that explores all the branches of a Unix file/directory tree, starting from a given entry point on down. The macro reads each directory , gets a list of dataset names and adds it to the master list. It then opens up each subdirectory it found and reads it. Ultimately, it will have traveled all branches to their ends in order to assemble a full list of datasets (or any other selected file type) sample, macro variable, macro definition source 5
228 The Simplicity and Power of the TABULATE Procedure Daniel E. Bruns When I first started using SAS in a university environment in 1972, I was very excited about how much SAS could help me. As I learned more and moved to the real world of the employeed I needed more flexibility in my reporting - PROC PRINT had some and PROC MEANS and FREQ had basically none. And SUMMARY needed too much DATA STEP manipulation. What I needed was a marriage of all these with the flexibility to control what I wanted where and how! Thank the Gods for PROC TABULATE!! I was able to produce reports from massive amounts of data in practically any way I needed! The power of being able to simply rearrange a few variable names and change the complete look of the report was great. But then I also found a few things that were not so simple-like percentages proc step, proc tabulate, sas base, label statement, proc freq source 7
229 The URL-y Show: Using SAS LE and the URL Access Method to Retrieve Stock Quotes Ted Conway A brief SAS program and short macro are presented that illustrate ways that the SAS URL access method can be used to retrieve stock quotes from the Web. This technique, which can be used to retrieve all kinds of data from Intranet and Internet sites, may be of interest to anyone who uses SAS LE or Base SAS on the PC platform sample, macro definition source 2
230 The Use of Formats, Concatenate and Sum for Reporting on "Check All That Apply" Variables Lara K. Jungvig SAS software always offers more than one way to solve a problem. Using similar data collection instruments from several projects, I approached the problem of how to summarize/display "check all that apply" variables from several different directions. A check all that apply variable occurs when a survey question groups together a set of items with check boxes, instead of asking separate yes/no questions for each item. So, I read in the data as separate variables and produced a frequency of each variable. I concatenated the separate variables into one new variable using a formatted put statement, and then I ran one frequency. Finally, I tried creating a new variable by using a patterned numeric string, formatting that pattern and running a frequency on the new variable. This presentation will utilize basic SAS techniques, in a side-by-side visual proc freq, put statement, input statement source 2
231 The Use of Geographic Information Systems to Investigate Environmental Pollutants in Relationship to Medical Treatment Patricia B. Cerrito,
Robert Forbes,
George R. Barnes
The purpose of this paper is to examine the use of geographic information systems (GIS) together with data mining techniques to examine the relationship between environmental exposure and the need to treat asthma in an emergency room setting. Patient data for those who were treated for asthma were collected in a database. This database contained approximately 1200 records including patient addresses. The addresses were mapped into GIS to compare to environmental hazards listed in the GIS database. In addition, address information from a lung cancer screening study was used to examine the relationship between geographic location and self-reporting of exposure to environmental hazards. Clustering, rule induction, and kernel density estimation were used to examine the data. It was found that African Americans represent 37% of the emergency room use while representing only 13% of the local population neural network, odds ratio, data mining, association rules, confidence interval, logistic regression, predictor variable, logistic distribution, regression analysis, sample source 6
232 The Use of Scripting Languages, Database Technology, and SAS/IntrNet to Revolutionize the Research Process Kristin M. Rankin The Internet has not been utilized to its fullest potential in the research arena, where the organization, quick communication, and security that it provides are crucial to the advancement of scientific knowledge. The model suggested here greatly improves the efficiency of the research process. The University of Illinois at Chicago, Center for the Advancement of Distance Education has developed a Research Survey Composer that allows you to create a data entry form that displays on a web page and stores data in database. SAS/ODBC allows for the extraction of data from the database into SAS software. Then, you can create a web page form that prompts the user to enter a query of the data. The SAS/INTRNET broker is called when the web form is submitted, prompting existing SAS macros to perform analyses on the data. The Output Delivery System (ODS) can be used to format output in any way you desire, including finished tables, reports, or graphs on the web dataset, data cleaning source 2
233 The Value of ETL and Data Quality Tho H. Nguyen The adage "garbage in, garbage out" becomes an unfortunate reality when data quality is not addressed. This is the information age and we base our decisions on insights gained from data. If inaccurate data is entered without subsequent data quality checks, only inaccurate information will prevail. Bad data can affect businesses in varying degrees, ranging from simple misrepresentation of information to multimillion-dollar mistakes. In fact, numerous research and studies have concluded that data quality is the culprit cause of many failed data warehousing or Customer Relationship Management (CRM) projects. With the large price tags on these high-profile initiatives and the importance of accurate information to business intelligence, improving data quality has become a top management priority. By integrating ETL and data quality, a consistent, reliable view of your organization ensures that critical decisions are based only on accurate information data cleaning, data warehouse source 3
234 Tinker, Tailor, Soldier, Spy: The Many Roles of the SAS Consultant Richard H. Phillips,
Mark L. Jordan
Unlike many software packages, the user base for SAS doesn't fit neatly into either a Systems Development or End-User tool. Users span organisations from corporate development to ad-hoc reporting. Not only do the users have different skills and requirements from the software, but they place varied demands on SAS support personnel. We'll explore the many 'hats' a SAS consultant should be prepared to wear while supporting the SAS community. The model we foster is horizontal skills-based vice vertical project-based - a somewhat unfashionable model with major arguments in its favour. We'll examine two large SAS-using organisations, highlighting the commonalties and differences between their SAS communities, and leverage some broadly understandable sketches to explain the roles necessary to any thriving SAS community sas consultant, business intelligence source 5
235 Tips for Manipulating Data Marge Scerbo As a beginning SAS programmer, you could be easily overwhelmed with the sheer size of the language. It is not easy to learn the best way to complete a task, if a best way actually exists. Does one method actually work better than another does? For example: When working with a large number of variables, does it really make a difference to DROP or KEEP variables? If so, is one better than the other? What is a DATA STEP statement? And what is a data set option? Are they the same? * What is the best way to subset the data, IF or proc step, if-then-else, proc append, drop statement, keep statement, where statement source 10
236 Tips from the Hood: Challenging Problems and Tips from SAS-L William W. Viergever Ever have one of those days where you just can't find the solution to a problem? SAS-L is the electronic user group where you can get help for your SAS problems from other SAS users. However, even the experts of SAS-L sometimes need help or stumble over a question. This paper will cover some examples from SAS-L that challenged the experts in recent months as well as offered a few tips that you might not know. The author reads SAS-L many times a day and is a frequent SAS-L poster, although he admits that not all his posts are serious answers! <g> Intended audience: basically - a good knowledge of Base SAS. This paper will cover several topics so attendees may find some examples more challenging than others proc step, call execute, point= option, data step, proc sql, dataset source 6
237 Transactional Records Access Clearinghouse: SAS Based Warehouse and Mining Tools Keeps Tabs on U.S. Government Susan B. Long,
Linda Roberge,
Jeffrey T. Lamicela
Transactional Records Access Clearinghouse (TRAC), a research center at Syracuse University's School of Management, has developed a subscription website that allows many different types of users to access transactional data from the U.S. federal government. Subscribers include journalists, lawyers, judges, congressional staffers, public interest groups, and scholars. TRAC's end-users often lack experience with performing statistical or data analyses. Our challenge has been to develop a "point-and-click" interface that allows users to specify what information they would like, without the necessity of knowing how the data are organized or how the statistics are generated. The power of TRAC's application lies in the combination of the data warehouse and data mining tools. Both of these are SAS-based using a variety of SAS Products including data mining, time series analysis, data warehouse source 6
238 Understanding SAS/Warehouse Administrator Timothy D. Brown Some firms have l ooked at SAS/ Warehouse Administrator and decided to continue developing applications in the traditional way. Why? Reasons include high investment cost, difficulty of incorporating legacy code, and the awkwardness of using terminal emulators when running SAS/WAREHOUSE Administrator on a server located in a "glass room" or other remote location. However, if one can overcome these objections and let SAS/WAREHOUSE Administra tor write the required data warehouse, data mart, sas base, proc sql, dataset source 10
239 Undocumented and Hard-to-find SQL Features Kirk Paul Lafler The SQL Procedure contains many powerful and elegant language features for advanced SQL users. This paper presents SQL topics that will help programmers unlock the many hidden features, options, and other hard-to-find gems found in the SQL universe. Topics include CASE logic; the COALESCE function; SQL statement options _METHOD, _TREE, and other useful options; dictionary tables; automatic macro variables; and performance issues. Finding the First Non-Missing Value The SQL procedure provides a way to find the first non-missing value in a column or list. Specified in a SELECT statement, the COALESCE function inspects a column, or in the case of a list scans the arguments from left to right, and returns the first non-missing or non-NULL value. If all values are missing, the result is missing. When coding the COALESCE function, all arguments must be of the same data type. The example shows one approach on computing the total number of minutes in the MOVIES table proc sql, proc step, macro variable, sas library, macro definition source 6
240 UNIX Meet PC: Version 8 to the Rescue Yadong Zhang In this information age, options often seem to be unlimited. You often need to make some tough decisions: Should I develop it on UNIX or PC? Should I deliver it through Web or Microsoft? Fortunately some techniques available in SAS V8 can help us to ease the pain of choosing. This paper shows how to use such techniques like ODS, FTP Access Method, Socket Access excel, output delivery system source 3
241 UNLOADing Data from Informix John E. Bentley,
Bala Peddi
The SAS/ACCESS Interface to Informix provides the ability to run native Informix stored-programs and SQL commands in SAS and thereby let programmers to take advantage of the power of the database engine itself. When working with a parallel database in a data warehouse or data mart environment, this is approach is almost mandatory for getting reasonable query performance. The issue, though, then becomes landing the results set as a SAS data set. Streaming millions of records from numerous database nodes back to the SAS node for sequential writing to disk is a slow process. Performance is degraded further when there are other users doing the same thing. To solve this problem, we can use a SAS macro that takes advantage of Informix's Pload utility to first land the data in parallel as a set of flat files and then input them into SAS. The result is a performance boost that cuts the clock time for creating a SAS data set by 30% or more dataset, flat file source 6
242 Usage Statistics for Your Web Site: Leveraging the Flexibility of SAS and Webhound Lynn Rohrs,
Carol L. Markowitz
Within our university, we have a variety of web sites for which we needed to obtain usage data, from the general (number of unique visitors to our site) to the specific (how many visitors viewing particular course descriptions went on to register for those courses). Using WebHound, we were quickly able to see answers to many of our general questions through the out-of-the-box setup and reports. But the real payoff came when we utilized the underlying power and flexibility of SAS to create multiple "webmarts" and accompanying reports specific to several groups within our institution. In this paper, we will explain our reasons for choosing WebHound over competing products, describe the experience of using WebHound for both novice and experienced SAS users, and detail some of the customizations we have applied in order to meet our specific needs. No previous knowledge of WebHound or SAS is required to understand this paper sas log, binary variable source 4
243 Using a Dynamic SAS/IntrNet Application to Create Statistical Comparison Reports and Download as SAS Data Sets John K. Owusu-Djamboe As part of an internal review process by analysts working on the American Community Survey at the US Census Bureau, current year sample estimate values are compared to previous year estimate values to test the difference in proportions between two independent samples and their statistical significance in a distribution. Detailed and summary comparison statistical reports are created and further analysis done. Since these reports are calculated using various complex statistical tests, analysts want to be able to download the reports as SAS datasets and perform further analysis by running SAS programs against these reports. Dynamic SAS/INTRNET Application provides this capability. It also allows the user to select multiple parameters and multiple values within a parameter concurrently dataset, macro variable, proc sql, %if-%then-%else, macro loop, proc step source 5
244 Using a HOLAP Solution to Analyze Large Volumes of Data via the Web Chris Peterson,
Stuart B. Levine
This paper focuses on the challenges met by implementing a HOLAP solution on large amounts of data on an AIX platform using SAS MDDB Report Viewer. The base tables have approximately 310 million records. The OLAP solution contains approximately 200 GB of data. Query response time is approximately 20-40 seconds per average query dimension table, proc step, proc sql source 4
245 Using a SAS Macro to Document the Database William C. Murphy Creating the database for your client was straightforward, but now you have to document its structure by listing all of the data sets contained in the database, along with variable lists and sample contents. You could just run a PROC CONTENTS on _ALL_ members of the library to generate a list of the component data sets and the associated variable lists, followed by several PROC PRINTs to generate sample outputs. The client, however, wants the variable list interleaved with the sample printouts from each data set, along with descriptive titles. You can easily accomplish this by alternating the PROC CONTENTS with PROC PRINT, along with appropriate TITLE statements for each data set in the library. However, to do this every time you must report on a database could be an onerous programming task. But by using ODS, PROC DATASETS, and a %DO loop, you can create a macro to handle your variable and data set documentation needs for any database proc step, proc contents, proc print, macro variable, sample, macro loop, do loop, variable list source 4
246 Using AppDev Studio and Integration Technologies for an Easy and Seamless Interface Between Java and Server-Side SAS Barry R. Cohen The application landscape has changed substantially for SAS application developers. Today's landscape uses a distributed-object, component-based architecture that integrates SAS server capabilities into enterprise-wide applications that are n-tiered, Web- enabled, and thin-client. SAS has developed new products to help you build SAS applications in this landscape. These include the AppDev Studio product suite including especially webAF within it, and Integration Technologies. You will likely want to leverage a few key features of these products as you build Web-enabled SAS applications. From AppDev Studio, these features are SAS-aware Java classes for Java programs, SAS Custom Tags for JavaServer Pages, and SAS Components for applets. From Integration Technologies, the feature is the Application Facility. These product features allow an easy and seamless interface between your client- or server-side Java applications and your server-side SAS programs and data proc step, dataset, sas base source 10
247 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 dealing with date values. This tutorial initially takes a look at several proc sql, date variable, libname statement, proc step, data warehouse, dataset, macro variable, create table source 6
248 Using Formats and Other Techniques to Complete PROC REPORT Tables David D. Chapman Calculating the totals correctly is not the end of a PROC REPORT project, it is the beginning of the end. A key part of completing a table is to decide how to present the numbers. This paper discusses two parts of a table: cells and footnotes. Displaying cells with only numbers, with only symbols, and with both numbers and symbols is discussed separately. The use of standard SAS formats and user defined formats to display standard numbers and numbers truncated, rounded, and expressed to two significant digits is demonstrated. Compute statements are used to illustrate how to display table results to two significant digits and to add warning flags. When numbers are not enough, cell notes are needed. Cell notes are numbers or symbols that replace or supplement numbers in a cell. Examples of cell notes are symbols to represent missing data (NA), and values suppressed to prevent disclosure (D) proc report, proc step, missing value, proc format, proc tabulate, dataset, format statement, data step source 6
249 Using Information Effectively to Make More Profitable Decisions: The Ten Letter Solution for Finance Frederick D. Busche,
Tom Everly,
Kirk Boothe
customer profitability, data mining, data warehouse, credit card, product profitability source
250 Using IOM and Visual Basic in SAS Program Development Greg Silva When SAS Institute added the Integrated Object Model (IOM) to the SAS System's base product in version 8, they opened the door to SAS applications development using Visual Basic (VB). Data set manipulation, SAS code execution, and data binding are now part of the tool set available to the SAS/VB programmer. This paper will describe some of the features of SAS that are available through the use of IOM, and show some applications that use IOM with VB source 4
251 Using SAS Catalogs to Develop and Manage DATA Step Programs David D. Chapman A key concept in program management is to develop the code in one place, make changes at one location, move the code to where it is needed for testing or use, and when making changes make sure they work before changing production code. SAS catalogs are ideal for developing, testing, and managing DATA STEP programs. This paper reviews SAS catalogs and the different kinds of elements they contain. It discusses Source, LOG, OUTPUT, Macro, Format, and CATAMS elements. For each it gives an example of how to put it into a catalog and then how to retrieve if from the catalog and use it. It also discusses how to manage and sequence code coming out of the catalog to make up your DATA STEP and procedure programs. The use of PROC CATALOG to view catalog contents and copy elements to another location, and PROC UPLOAD and PROC DOWNLOAD to move the SAS catalogs to a production location on a different computer are discussed proc step, catalog, catalog entry, data step, proc catalog, cpu time, proc format, proc upload, proc download, proc printto source 4
252 Using SAS Software and Visual Basic for Applications to Produce Microsoft Graph Charts Lori S. Parsons While SAS/GRAPH software produces high quality graphs for presentations, it is often desirable to provide Microsoft Graph charts. An analyst often produces statistics and graphs for an investigator. The investigator writes up the dataset, logistic distribution, proc step, proc logistic, macro definition, macro variable, logistic regression, proc freq, predictor variable, regression analysis, confidence interval, macro call, insurance risk score, txt, roc curve source 10
253 Using SAS Software to Analyze Web Logs Peter Parker SAS software macros provide the flexibility to perform advanced programming techniques such as processing real-time user-entered parameters to determine which blocks of code will run and how often. In my previous paper (Part I), I described how to use these techniques to write more elegant code. In this paper, I will show how to apply these techniques to read multiple external files based on a user query. Specifically, I will use a real life application and show how it was implemented, using a tightly written program comprised of macros. I needed to determine how often the public accessed the files on my web server. Through iterations of programs that were the evolution of a thought process, I have developed SAS programs that read the web server's log files based on the time periods requested in an interactive SAS macro window. These programs can generate a summarized report of web usage macro definition, txt source 7
254 Using SAS Strategically: A Case Study Timothy D. Brown Quaker Chemical Corporation is a leader in the application of SAS products to meet global, strategic business goals. This paper will discuss at a high level how Quaker applies a wide-range of SAS software including Strategic Performance Management, Total Financial Management, Human Capital Management, AppDev Studio, and Warehouse Manager. The timeframe for this review will include past and current efforts, as well Quaker's plans for the future business intelligence, sas base, data mart, data warehouse, excel source 7
255 Using SAS to Automatically Generate Reports in Any Special Formats Quan Ren SAS can be used to calculate statistics and display the data cleaning, dataset, standard deviation source 4
256 Using the SAS System to Construct and Operate Control Charts with Randomized Control Limits Peter S. Wludyka Attribute control charts (e.g., charts for counts and proportions) have discrete jumps in the quantities plotted on the charts, which means that the chart designer has only a discrete set of unique control limits to choose from when designing a chart. These charts have a small set of in-control Average Run Lengths (ARLs) from which to determine the appropriate control scheme. In a chart with randomized control limits the operational control limit in an epoch is determined by a random choice from among a set of control limits. The resulting control chart will then have a predetermined in-control ARL. These charts can be thought of as ones with optimal ARL properties. SAS programs for designing and operating these charts will be provided sample, binomial distribution, randomization source 7
257 Using the SAS V9 Application Response Measurement System to Provide Metrics to HP-UX Workload Manager James M. Coffey There are two main problems that a system administrator faces when configuring goal-based resource management software: 1. Determining the priority of each workload running on the system 2. Collecting useful performance data from each workload Determining the priority of each workload can be resolved by investigating the importance of the workload to the organization and the expected performance of that workload. The next obstacle, collecting the performance data, is going to be different for each workload running on the system. For SAS jobs, the Application Response Measurement (ARM) specification can be used to provide the necessary data. Using the SAS ARM system and the HP-UX GlancePlus library, HP-UX Workload Manager (WLM) can extract the appropriate data for determining the performance of SAS software proc step, elapsed time, sample source 4
258 Web Communication Effectiveness: Design and Methods to Get the Best Out of ODS, SAS, and SAS/GRAPH LeRoy Bessler proc step, output delivery system, macro loop, sample, macro definition, %if-%then-%else, ods listing, ods html, proc template source
259 Web Enabling Your Graphs with HTML, ActiveX, and Java Using SAS/GRAPH and the Output Delivery System Curtis A. Smith output delivery system, proc freq, scatter plot, numeric variable, ods html source
260 Web-Enable Your SAS Applications Teresia L. Arthur,
Mary Jafri
data validation rules, sample, proc step, proc sql source
261 What's In A Map? A Macro-Driven Drill-Down Geo-Graphical Representation System Louise S. Hadden This paper presents a macro-driven system to create drill-down maps and present them on intranets or the internet, using BASE proc step, output delivery system, proc contents, proc print, macro definition source 7
262 What's In A Map? A Macro-Driven Drill-Down Geo-Graphical Representation System Louise S. Hadden This paper presents a macro-driven system to create drill-down maps and present them on intranets or the internet, using BASE proc step, output delivery system, proc contents, proc print, macro definition source 7
263 Where to Go from Here: Learning More about SAS Helen D. Carey,
Ginger Carey
The vast amount of information on the SAS System, particularly that available through the Web, can be overwhelming. You can save time by knowing where to find the information you need. This paper is about the variety of information and media available and describes where to go to learn more about SAS output delivery system, proc step source 9
264 Why Data _Null_ When You Can RTF Faster? Dante Di Tommaso I have yet to work with a statistician or epidemiologist that enjoys reviewing pages of raw SAS output. I hope I never meet a programmer willing to hand enter results into someone's spreadsheet or document. Therefore, results management, a data manipulation task particularly relevant to SAS report generation, is a common effort that too often results in dull fixed- font DATA _NULL_, PROC REPORT or similar tables. I present a macro I have developed that instead produces customized RTF tables with less effort than analogous fixed-font programming. The macro and examples described below are available at the website listed in proc step, proc report source 6
265 Why SAS is the Best Place to Put Your Clinical Data Steven A. Wilson The SAS System contains an incredible amount of functionality for managing your data files as a database. In most respects, including data storage, data access, and data management, SAS can be considered a database. This paper will review the database functionality available within the SAS System and how this relates to the task of clinical trails data management. Sample code, which illustrates many of these database techniques, is provided audit trail, constraint, key, foreign key, proc step, data integrity, dataset, missing value, proc sql, proc datasets, clinical data, proc print, clinical database source 6
266 Working with RGB and HLS Color Coding Systems in SAS Software Perry Watts Full-color displays have become commonplace with the advent of the Web. Typically they are rendered from desk- top computers equipped with 16-bit color palettes capable of generating 65K unique colors. Thus a chart or scale is needed for making informed color selections for graphics applications. In SAS, the programmer has access to both the RGB (red/green/bl ue) and HLS (hue/light/saturation) coding systems. However, di fferent algorithms are re- quired for building charts and scales in the two systems. Before the technical aspects of chart and scale construc- tion are presented in the paper , color spaces are defined to show how the full gamut of codes is mapped in both coding systems. For RGB, codes map to a cube, and a double-ended cone accommodates the Tektronix HLS system. With the color spaces as a foundation, instructions are then provided for building color charts with ODS and scales from PROC GPLOT proc report, proc step, macro function, macro variable, output delivery system, macro definition source 10
267 Working with RGB and HLS Color Coding Systems in SAS Software Perry Watts Full-color displays have become commonplace with the advent of the Web. Typically they are rendered from desk- top computers equipped with 16-bit color palettes capable of generating 65K unique colors. Thus a chart or scale is needed for making informed color selections for graphics applications. In SAS, the programmer has access to both the RGB (red/green/bl ue) and HLS (hue/light/saturation) coding systems. However, di fferent algorithms are re- quired for building charts and scales in the two systems. Before the technical aspects of chart and scale construc- tion are presented in the paper , color spaces are defined to show how the full gamut of codes is mapped in both coding systems. For RGB, codes map to a cube, and a double-ended cone accommodates the Tektronix HLS system. With the color spaces as a foundation, instructions are then provided for building color charts with ODS and scales from PROC GPLOT proc report, proc step, macro function, macro variable, output delivery system, macro definition source 10
268 XML in the DATA Step Michael C. Palmer This paper discusses a DATA-step method to import, export, and transform user-defined XML vocabularies. It contrasts with SAS Institute (SI) XML tools in that it uses a single, uniform methodology to import, export, and transform a broad class of user-defined XML vocabularies. This gives more control to SAS users than the SI tools offer. From the point of view of a SAS user, XML is trouble for three reasons: it's hierarchical, it's all text, and all content is explicitly named. A DATA-step methodology for working with XML should (1) flatten the hierarchical XML into the rows-and-columns of SAS datasets without losing the information needed to recreate the hierarchy and (2) replace with numbers the unpredictably long and complex text strings that describe paths to data in XML. A straightforward algorithm for numbering levels of depth in an XML hierarchy and for numbering siblings at a level satisfies these conditions but has a problem dataset, sas base source 5
269 XML Primer for SAS Programmers Jack N. Shoemaker,
Gregory S. Barnes Nelson
XML is an SGML variant, which is an excellent messaging mechanism for passing data back and forth among applications. In this workshop, we discuss XML in the context of SAS applications and how XML can be used in the preparation and presentation of data. We explore some of the features of XML that make it a good partner for applications that are based on SAS. This workshop focuses on the tools that SAS provides for parsing XML documents so that the full power of SAS can be brought to bear on the manipulation and analysis of XML- encoded data. After a brief introduction to XML syntax, the workshop will demonstrate how to use the ever evolving XML library engine to make XML data available to SAS. Particular attention will be paid to the XMLMAP option, which provides the programmer with great control over how a particular XML document will appear to SAS in terms of the number of tables and units of observation of those tables dataset, libname engine, file statement, libname statement, proc step, ods xml, output delivery system, data step, sas output source 6
270 XML? We do that! Anthony Friebel This paper is a tour of what's new in the development arenas for libname statement, sas 9, sas base, sample, ods xml source 6

Back to Conf go 2004 go 2002

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.