HOME QUICK SEARCH AUTHORS KEYWORDS HELP BUGS

SESUG 2005 Papers - Index

89 papers. Source: SESUG (SouthEast SAS Users Group) conference proceedings.

# Title
×
Authors
×
Abstract
×
Keywords
×
Extras Pages
1 %CHECKDATA: An Enhanced Data Diagnostic Macro John Stanmeyer Often when receiving a large dataset from a client it is useful to perform a review of the proc step, missing value, proc freq, proc means, character variable, numeric variable source 8
2 _05 1 companyName streetAddress cityName stateAbbr ZIPCode Brewers Den This paper provides a quick and easy way to generate address labels or other data-driven documents from your SAS data. The first step is to use the SAS Output Delivery System (ODS) to convert your data into a format that Microsoft Word can import. Then you use Word's Mail Merge Wizard to guide you through the steps to create your document. The technique is easy, requires only Base SAS version 8 or later, and will work on any platform where SAS is installed (even if SAS is installed on a mainframe). This technique can also be used with SAS version 6 by using the SAS HTML Formatting Tools instead of ODS dataset, sample source 5
3 _05 Managing a Many to Many Merge using Formats, Direct Access, and Implied Hashing Managing a many to many merge in SAS and most other languages has always been the bane of programmers everywhere. The SAS MERGE statement can handle one-to-many and many-to-one merges, but was never designed to meet the intricacies and variations of a many-to-many merge. True, there are other options available to the programmer, like PROC SQL or arrays but these either require extensive disk resources or code that is often times confusing and elusive. The Bureau recently needed an application to apply missing geography to approximately 11 million records based on 27 million eligible ZIP codes. Since this was a time sensitive project, not only speed of execution but also available space was a critical consideration when design was considered. This paper is the collaboration of two programmers who independently came up with similar techniques lookup, imputation, merge statement, proc sql, unique key, proc step source 8
4 _05 Producing a Nonrefereed Professional Publication for SESUG or SUGI * Philip J. d'Almada Many papers are prepared with high levels of product knowledge but with a wide range of style. This pa per appeals to authors of papers on the use of the SAS System to include a high level of professionalism in the preparation of a paper for publication. The paper will focus on an array of much misused points of grammar and expression that are recurrent i n the SAS user community. Elements of this array include construction of headings, simple and frequent grammar oversights, verb inflection, applicable sections within a paper, and published appearance of the final paper. While strong, in -depth and lengthy sources are available to assist a potential author, the reader of this paper will be exposed to a short account for producing a SAS paper while paying attention to those elements that many authors have easily and frequently overlooked source 5
5 _05 Renaming SAS Variables Imelda C. Go This paper discusses a number of ways to rename variables. Its topics include the RENAME statement used in DATA steps, the RENAME= data set option, the AS keyword for PROC SQL, using macros, and using the DATA _NULL_ step. A "quick and dirty" way to change the name of a variable is shown below. The variable x is assigned to variable y and x is dropped from the data set. This is not really renaming a variable because it involv es creating a copy of the variable to be renamed and the copy has the desired new name. This practice, although it achieves the desired result, is not optimal. data two; set one; y=x; drop x; Changing a variable name is an inevitable fact of programming. There are several ways to accomplish this depending on the types of SAS statements involved. Consider the following SAS code proc step, proc contents, rename statement, proc sql, proc freq source 6
6 _05 Robustness in Meta-analysis: A Macro for Computing Point Estimates and Confidence Intervals for Standardized Mean Differences,
Cliff's Delta,
Kristine Y. Hogarty,
Jeffrey D. Kromrey,
John M. Ferron
This paper describes a SAS macro that provides three approaches to estimating mean population effect sizes and confidence intervals for meta-analysis. The program calculates point estimates of the standardized mean difference (Cohen's d and Hedges' g) and the ordinal index Cliff's Delta. Further, the program computes a series of confidence bands around each estimated value of the e ffect size. These confidence intervals are calculated using the estimated variance of the mean effect size and the critical z value (1- α ). T he paper presents a demonstration of the SAS/IML code employed in a macro entitled METACOMP, and provides a table with the resulting output effect size, sample, sample size, confidence interval source 10
7 _05 Using MS-ACCESS Metadata to Drive Automated SAS Data Gary N. Weeks This paper describes the automation of data processing for complex survey data using metadata in a MS Access database. The Pregnancy Risk Assessment Monitoring System (PRAMS) run by CDC Division of Reproductive Health in conjunction with state health agencies uses mail and phone questionnaires to collect pregnancy and birth outcome data to identify pregnancy risk. PRAMS has grown from three participating states in 1988 to 32 participating agencies in 2004 and continues to grow. When the number of participating states was small data were processed with 10 manually run SAS programs for each state then manually cleaned. As the PRAMS expanded an automated macro driven SAS data processing system was implemented that effectively reduced the processing time but did not address data cleaning which was still labor intensive constraint, dataset, data wrangling, flat file, proc step, data step, missing value, put statement source 3
8 A Gentle Introduction to Enterprise Guide 3.0 Ben Cochran The power and flexibility of the SAS system is available to the end user through the point and click environment of the Enterprise Guide product. T his hands-on w orkshop will introduce the attendee to some of the power that is easily available through Enterprise Guide. After a quick overview of this product, the student w ill see how to take virtually any kind of data and process it to creat e different kinds of graphic and summary reports. Finally , instruction w ill be given on how to take these reports and send them to different destinations such as HTML and PDF files sas enterprise guide, bar chart source 8
9 A Gentle Introduction to the Powerful REPORT Procedure Ben Cochran When the REPORT Procedure was first introduced by SAS with the advent of Version 6, most of the SAS world was mainframe users. This new procedure brought with it a great deal of power and flexibility that added much strength to SAS' arsenal of report generating procedures. It had powerful formatting, summarizing, and analysis capabilities that made it easier to create anything from a simple listing to a very complex report. However, some critics have stated that, while it has awesome features, it looks like a mainframe report. That was true until SAS released the Output Delivery System (ODS) experimentally in Version 7, and in production mode in Version 8. If the REPORT procedure was a cake, then ODS delivers the icing to generate truly beautiful reports. This paper offers a quick overview of the types of reports that can be generated with PROC REPORT, and how to add some of the ODS features to deliver stunning reports proc report, proc step, output delivery system source 12
10 A Quick Tour of SAS ETL Studio to Build a Data Mart Kari Richardson This hands-on workshop will give users a basic tour through the functionality of SAS ETL Studio to help build a small data mart. The participants in this workshop will use SAS ETL Studio to define necessary library definitions, in addition to source and target tables definitions. Partici pants will create a process flow diagram using a simple transformation and load the target table. In the last step, participants will create two reports using the target table data mart, proc freq, data merging, proc sql source 20
11 A SASautos Companion: Reusing Macros Ronald J. Fehd Reusable SAS R⃝ programs come in two forms: macros or %includes. This paper reviews the stan- dard SAS environment and examines the options used to customize a session or batch program for reuse of macros stored in the project directory . Expected audience is intermediate to advanced pro- grammers and macro users. Keywords: autocall compile macro masking MautoSource mStored program reuse SASautos SASmStore source store. When viewing with Adobe Acrobat Press Here to View: Fit Width Contents stored macro, macro quoting function source 12
12 A Snazzy Graph Featuring Five Variables, Axis Breaks, and Good Resolution Rachel A. Baker,
Savannah River
Monitoring groundwater contamination is of great concern at operational sites in the United States Department of Energy (DOE) complex. The Savannah River Site (SRS) in Aiken, South Carolina is one such site. Elevated measurements of radium -226 and radium -228 were recently observed in numerous monitoring wells at the SRS Sanitary Landfill (SLF). The issue at hand was whether these elevated data are consistent with groundwater impacted by SRS operations or whether they are typical of natural conditions. Graphical data displays are important tools for gaining an understanding of the data and of relationships between various parameters. SAS software was used to develop graphs of the radium isotopes versus other analytes, including field pH, for the SLF wells. Five variables were depicted in each well plot: analyte, time, measurement, lab, and detection. Two different result axes were required, in addition to breaks on the pH axis sample, data visualization source 4
13 A Tour of the SAS Reporting Toolbox Frank C. DiIorio One of the most intriguing aspects of SAS programming is the variety of solutions that it allows for even the simplest tasks. Ask "n" programmers to add a column of numbers, and you'll get at least "n" solutions that are as valid as they are different. Nowhere is this celebration of diversity more dramatic than communicating results, a/k/a "reporting." Be it a simple listing, statistical analysis, or graphic display of an analysis, the choice of tools available can be overwhelming to even seasoned SAS programmers. This paper gives an overview of the more common reporting tools in Base SAS and SAS/GRAPH. We ignore products such as SAS/ASSIST and SAS/INSIGHT. These and similar inherently interactive tools ultimately have functionality limitations when applied to highly- formatted Real World reports requiring extensive data manipulation. It's best to just jump in and get your hands dirty with the DATA STEP et al., because that's where you're likely to end up in the long run proc step, proc report, file statement, class variable, macro facility, macro variable, missing value, by group processing, sas programmer, txt, proc sql, proc print, sas log, output delivery system, macro parameter, sas output, sas programming, proc sort, proc means, options statement, macro loop, macro definition, %if-%then-%else source 20
14 Adding Web-Enabled Buttons to the SAS Tool Bar John E. Bentley sas log, data mart source 9
15 An Animated Guide: The Data Step Debugger Russell M. Lavery Use of the DATA STEP Debugger (DSD) simplifies debugging code and, while the DATA STEP debugger (DSD) was introduced in SAS version 6.11, it is not widely known. It is a powerful tool for finding logical errors in the DATA STEP. It gives you control over execution of "DATA STEP" code and allows you to watch your program execute- line by line. The DSD allows you to watch if-else statements execute to check if the code is correct while the code is running, rather than checking for correctness by writing PROC PRINT statements after the DATA STEP has finished. The DSD allows you to not only watch code execute, but will allow you to MANUALLY CHANGE the values in the program data vector as your job is running. The DSD does not issue any error messages as you use it. The programmer mentally compares what s/he sees, in the Program Data Vector (PDV), with what s/he expected to see. Critical to use of the DSD is an understanding of the PDV and the DSD is an excellent way to learn the data step, do loop, if-then-else, sas log source 22
16 An Introduction to ODS for Statistical Graphics in SAS 9.1 Robert N. Rodriguez In SAS 9.1, over two dozen SAS/ST A T and SAS/ETS procedures have been modified to use an experimen- tal extension to the Output Delivery System (ODS) that enables them to create statistical graphics as auto- matically as tables are currently created. This extension, referred to as ODS for Statistical Graphics (ODS Graphics for short ), provides commonly used displays, including scatter plots, histograms, box-and-whisker plots, and contour plots, in ODS output. Many ODS features for tables, such as destination statements, apply equally to graphics. ODS styles control the appearance and consistency of all graphs, whereas ODS templates control the layout and details of individual graphs. This paper introduces statistical users and other SAS programmers to ODS Graphics. Examples illustrate basic functionality , which requires minimal syntax, and typical graph management tasks. Familiarity with ODS for tables is assumed output delivery system, graph template language, ods graphics, qq plot, proc step, proc mixed, scatter plot, proc sgplot, histogram, logistic distribution, regression analysis, box plot, proc template, proc reg, proc ucm source 27
17 An Introduction to the Simplicity and Power of SAS/GRAPH Daniel E. Bruns bar chart, proc freq, vertical bar chart, proc step, proc gchart, proc gplot source 19
18 Automated Excel-lent Validation Janet E. Stuelpner During the clinical trials process, the raw data is entered into a database, cleansed, manipulated and then analyzed. Prior to tables and listings, anal ysis datasets are created that include both raw data and derived data. A great de al of documentation is required to make sure that all of the algorithms are specified and implemented correctl y. Most often, the documentation for these analysis datasets is in the form of an EXCEL spr eadsheet that states the variable names, labels, variable type, length of value, algorithm for derivati on, dataset of origination, whether the variable is raw data or derived, etc. Once the data spec ifications are complete, the analysis dataset is created. At this point, before further manipulati on takes place, there must be a validation process to insure that the data is correct and reliable. This paper shows an automated method to compare the EXCEL spreadsheet that contains the data specifications and compares it to the actual analysis dataset adam dataset, proc step, dataset, adverse events, excel, raw data, proc sql, data cleaning, proc compare source 9
19 Building Web Applications with SAS AppDev Studio 3.0 Frederick E. Pratter source 9
20 Clustering Analysis of Micro Array Data John Schwarz One such area of genetics research that has developed a great deal in the past several years has been micro arrays. Advancements in genetic research have often led to increased amounts of data but without efficient analyses techniques. The purpose of this project is to provide some examples of statistical methodology that can be used to analyze data from micro array experimentation. The data gathered from the micro array experimentation is contained in a 12,489 by 42 sized table. There are several different clustering techniques available to analyze the data. Kernel density estimation was used to compare the densities of different genes. Clustering methods used include hierarchical and least squares methods. With the hierarchical models, different distance parameters are determined and the results compared. The least squares method attempts to reduce the time it takes to cluster the data proc cluster, proc step, sample, data mining, proc freq, hierarchical clustering, correlation, outlier, sample size source 12
21 COPYGRID: Tracking Multi-Developer (and - Machine) Programs from Development to Production Lawrence W. Altmayer The Standard Economic Processing System (StEPS) is a batc h and SAS/AF system developed by the U.S. Cen sus Bureau for p rocessing data from its econo mic surveys. Several developers requiring edit access to its files of pro gram code maintain it. Much of its prog ram code is contained in a multitude of catalogs. Additionally, development and testing are done on one set of machine s, while p roduction programs a re kept on another set of m achines. Thi s paper describes a system, COPYGRID, d eveloped fo r tracking program code copying between machines for StEPS catalog entry, sample source 9
22 Creating a Map within a Map with SAS/GRAPH Barbara B. Okerson Quality Improvement Organizations (QIOs) are tasked with assisting healthcare providers in making changes to healthcare delivery that improve patient outcomes. As we try to maximize available resources to improve healthcare for multiple concurrent national clinical priorities, geographic analyses are used to identify variations in performance (especially areas of poor compliance) at both national and statewide levels. To do this, it is advantageous to look at multiple levels of detail simultaneously, using the larger geographic area as reference. While SAS does not provide a procedure to do this directly, SAS/GRAPH GMAP, in combination with the SAS Annotate facility, provides the functionality to create this type of map. This presentation details this process as part of national and statewide physician office campaigns. The first example shows national rate of compliance for diabetes lipid profile rates, while simultaneously displaying the same rates by county for the state of concern advanced sas, proc gmap source 4
23 Data Mining Methods to Examine Thousands of Possibilities in Categorical Data Patricia B. Cerrito Categorical data are difficult to analyze when there are hundreds and thousands of possible values. Traditional statistical methods are inadequate. One way to reduce the number of values is to classify them into larger, broader categories using domain knowledge. Automatic reduction can be performed using SAS Text Miner. It is the purpose of this paper to provide several examples of category reduction using Text Miner, and to show how this reduction can aid in the analysis of data. There are several possible ways to examine relationships in the categories when they are related to customer purchases. The first is to use PROC TRANSPOSE and CONCAT to link all purchases into one text string for each individual customer. This can be done including a Time ID as well. After the text strings are created, they can be analyzed using Text Miner association rules, data mining, macro variable, market basket analysis, proc step source 13
24 DATALINES and Sequential Files and CSV and HTML and More - Using INFILE and INPUT to Introduce External Data into the SAS System Andrew T. Kuligowski The SAS System has numerous capabilities to store, analyze, repo rt, and present data. However, those features are useless unless that data is stored in, or can be access ed by, the SAS System. This presentation includes an introduction to the INPUT and INFILE statem ents, which combine to provide a simple, yet powerful, method to pass data into the SAS System. Matters to be a ddressed are reading fixed and variable length files, .CSV files, in-stream data, informats, and more input statement, infile statement, proc step, character variable, proc copy, dataset, proc sql, libname statement, filename statement, length statement, column input, list input, variable, named input source 10
25 Emailing a SAS Report to Excel C. Royce Claytor Your database is on the mainframe. Your client is on the PC. You have the batch report developed, but the client wants a spreadsheet. To top it off, the client wants the spreadsheet emailed to multiple people. To be sure there are a number of ways to accomplish these requirements, but you want something clean and efficient-pr eferably one step. This paper shows how to create a report using ODS on the mainframe, write it to an HTML data set, and send it as a EXCEL attachment to an email in one step with SAS software excel, proc print, proc step, batch job, ods html source 6
26 Everyone Trying to Update at the Same Time? Let's Try the Source Control Manager! (SAS/AF Development Tool) Everyone Trying The SAS/AF developm ent tool sour ce control manager (SCM) is a source file management facility featuring SAS file check-out/check-in capability. This feature allows several developers to have edit access to the same files, while ensuring that no one makes changes to a program while another deve loper i s ma king ch anges to the sam e prog ram. It is de signed t o be u sed with catalog entry, dataset source 11
27 Extracting Data from PDF Files Nat H. Wooding Jr. The Adobe Portable Document File (PDF) format has become a popular means of producing documents for use on other computers when the author cannot be certain of the software available on the other machines. However, once a document is stored in this format, it may generally be considered to be "read only" and the Adobe Acrobat Reader software does not offer a text extraction tool. This paper discusses third-party software that can translate a PDF to ASCII and shows how to automate the process using SAS excel, macro call source 5
28 Five Ways to Create Macro Variables: A Short Introduction to the Macro Language Arthur L. Carpenter The macro language is both powerful and flexible. With this power, however comes complexity, and this complexity often makes the language more difficult to learn and use. Fortunatel y one of the key elements of the macro language is its use of macro variables, and these are easy to learn and easy to use. Macro variables can be created using a number of different te chniques and statements. However the five most commonly methods are not only the most useful, but also among the easie st to master. Since macro variables are used in so many ways within the macro language, learning how they are created can also serve as an excellent introduction to the language itself. These methods include: %LET statement macro parameters (named and positional) iterative %DO statement using the INTO in PROC SQL * using the CALL SYMPUT routine macro variable, macro facility, macro put, macro loop, proc sql, put statement, proc step, do loop, macro call, missing value, macro definition, macro parameter, %macro parameters, call symput, automatic macro variable, symbol table, keyword parameter, select source 12
29 Formats, Informats and How to Program with Them H. Ian Whitlock Formats tell how to display stored data and informats how to read them. In other words, they allow the separation of data from the values one works with. While most programming languages provide some sort of formatting capability, SAS provides an extensive system that comes to dominate how one works with SAS. This talk will review some of the supplied formats, show you how to make your own with code or data, and then supply programming examples for how to get the best use of this system proc format, proc step, character variable, format statement, proc freq, dataset, sysdate9 source 15
30 Fun With Functions Marje Fecht Functions can be fun (and useful) if you know when, how, and why to use them. Functions can be frustrating if you do not know the tricks behind them. In this presentation, we will explore the most commonly used functions to streamline data processing and reduce your programming effort. You will learn how to use summary functions, string functions, conversion functions, and date functions. We will also explore some of the 60 functions added to SAS 9. This presentation will also help you understand WHERE to use functions, since they are not "just for the DATA STEP" sas 9, missing value, proc step, character functions source 5
31 Funky Formats Funky Formats I will review a PROC TABULATE or PROC PRINT etc. and get a little fancy with ODS and PROC FORMAT adding HTML to it allow links to the EXCEL output which is also generated from this code. This gives a drill down effect and a quick way to allow end users to go thru lots of data in an easier way proc format, proc step, excel source 12
32 Getting from What, to How, and Back to What - Recognizing and Measuring Professional Diversity. Or: The Other Side Of The SAS / IT Shop Alan R. Mann proof of concept, batch processing source 6
33 Getting Started with SAS/Access for Oracle F. Joseph Kelley proc sql, proc step, sql pass-through, sysdate9, proc print, sample, create table, sas library, date variable, anova source 19
34 HIRE POWER Neil H. Howard "The best thing you can do for your competition is to select poor quality staff." VP Recruitment, Microsoft You are interviewing a candidate in a sharp navy suit, with an im pressive resume and ten years of SAS experience. But, how do you tell if this ten years of experience is really ten years, or the same year over and over again? If, indeed, past behavior or past job performance is the best indicator of future performance, how is the SAS community probi ng for the facts? What are our assessment criteria? The author developed a survey tool adminis tered to selected SAS programmers, analys ts, trainers, human resource experts, and managers as a reality check into our per formance as interviewers and our experienc e as interviewees sas programmer, data cleaning source 11
35 How Do I Look it Up If I Cannot Spell It: An Introduction to SAS Dictionary Tables Peter W. Eberhardt SAS maintains a wealth of information about the active SAS session, including information on libraries, tables, files and system options; this information is contained in the Dictionary Tables. Understanding and using these tables will help you build interactive and dynamic applications. Unfortunately, Dictionary Tables are often considered an 'Advanced' topic to SAS programmers. This paper will help novice and intermediate SAS programmers get started with their mastery of the Dictionary tables. Ever needed a list of the tables (datasets) in a library? How about the columns (variables) in a table? Need to make sure you reset any titles after you run a report? Got some pesky warning messages in your SAS log you would like to clean up? Sure, you can look them up in the table and column properties in the explorer window. Or you can run a PROC CONTENTS and check the listing. And of course you can ignore the warnings and errors in the SAS log since they 'almost always appear' dictionary tables, proc sql, proc step, sas log, sas programmer source 11
36 How SAS Thinks Neil H. Howard The DATA STEP is the most powerful tool in the SAS sy stem. Understanding the internals of DATA STEP processing, what is happening and why, is crucial in mastering code and output. Concepts covered: Logical Program Data Vector (LPDV or PDV), automatic SAS variables and how they are used, the importance of understanding the internals of DATA STEP processing, what happens at program compile time, what's happening at execution time, how variable attributes are captured and stored, and * handling processing defaults, data conversions, and missing values. This workshop focuses on techniques that capitalize on the power of the DATA STEP and working with (and around) the default actions. By understanding DATA STEP processing, you can debug your programs and interpret your dataset, missing value, proc step, automatic variable, retain, input statement, set statement, by group processing, merge statement, proc print, proc contents, character functions source 19
37 Is There an Art Historian in the County? Keith J. Brown Have you ever been intrigued by a table, a chart, or a map and wanted to explore deeper into the data behind it? Have you ever produced a table, a chart, or a map, and then been asked for another just like it, but with changes - looking at a different population, subpopulation, or geographic area? If you're working in a hard-copy environment, you can either modify the program to handle each new request for additional information, or you can proactively produce a report for every possible level of the data. If there are numerous requests, the former course of action wastes your time; if there's little interest in delving deeper into the data for a particular subcategory, then taking the latter course wastes a great deal of resources. As programming becomes increasingly web-oriented, a third option opens up: adding exploratory capabilities to programs and output if-then-else, character variable source 9
38 Laziness, Impatience, Hubris: Personality Traits of a Great Programmer John E. Bentley Not everyone can be a great computer programmer. Many don't really have the desire, some lack a higher-level technical aptitude, and still others don't have the personality needed to be great. Wait, you say. What's personality got to do with it? Well, most programmers don't have a colleague who isn't intelligent enough to do the work, but most do know someone who isn't exactly temperamentally suited to the job. To help explain the impact of personality on success as a programmer, this paper will present some of the traits that can be indicators of professional success or failure in the field. For one, a sense of humor is important because the computer "doth make fools of us all." data mart, set statement source 9
39 Looking for a Date? A Tutorial on Using SAS Dates and Times Arthur L. Carpenter What are SAS date and time values? How are they used and why do we care? What are some of the more important of the many functions, formats, and tools that have been developed that work with these crucial elements of the SAS System? This tutorial will answer these questions and many more. Starting with date and time constants and their representation in SAS and then expanding to functions and formats, the basics of the use of dates and times will be integrated with their use as part of both data tables and data displays. The discussion will include functions and formats that are new to Version 8 and SAS 9. Also covered are picture formats and date directives, date scaling in SAS/GRAPH, shift operators in the INTNX and INTCK functions, and the use of the %SYSFUNC macro function sysdate9, datepart, date variable, options statement, macro facility, macro function, macro variable, macro definition source 13
40 Macro Architecture in Pictures Mark Tabladillo The qualities which SAS macros share with object-oriented languages account for the power of macro programming. This picture guide will graphically model and introduce how SAS macros are best built, and use these graphics to illustrate how macros share some qualities of object-oriented programming (defined as encapsulation, polymorphism, and inheritance) macro definition, macro facility, macro variable, sas base, txt source 10
41 Macro Bugs - How to Create, Avoid, and Destroy Them H. Ian Whitlock The central theme of this paper is the macro debugging process. However, a great many bugs are simply due to not understanding how macro processing works. Therefore, some time will be spent on understanding this process. One has to be able to locate bugs before they can be fixed, so time will also be spent on design features as they impinge on the search for bugs. Then, of course, some time will be spent on the traditionally supplied tools for debugging. The reader may be relatively new to writing macros, but he/she should bring some SAS and some macro experience to the lecture, for it is hard to pick up all the background even when all terms are explained. The material discussed was developed under Windows, and all logs come from the execution of SAS version 9.2. Unless noted everything is probably appropriate to all operating systems and available versions of SAS macro facility, macro variable, macro put, call execute, put statement, if-then-else, %if-%then-%else, call symput, run, proc step, macro loop, error message, do loop, proc sql, mfile, macro definition, proc print, title statement, macro call, mprint, missing value, error, macro quoting function, select source 20
42 Manipulating Data: Elements of the DATA Step Language Paul M. Dorfman In the SAS DATA STEP, you can manipulate data by instructing SAS what to do. However, SAS understands only instructions given in its own tongue. The DATA STEP language (SAS DSL) is simple and powerful, its syntax is crisp and highly readable, and it is easy to learn. In this presentation, we will try to introduce the basics of speaking SAS. Just like in any language, a valid SAS phrase contains meaningful expressions that follow an intelligible sequence. These two principal parts will be considered one at a time: 1. Expressions - basic blocks from which statements are built: Constants - Variables- Arrays- Assignment and Sum- Operators- Functions. 2. Control Flow - the order of execution of instructions: Conditional execution-Branching-Repetition. The presentation should provide an idea about the overall structure and main building blocks of the language used in the SAS DATA STEP numeric variable, sample, dataset, missing value, end, automatic variable, character constant, continue, _eof_, character variable, do loop, set statement, numeric constant, variable, output source 19
43 Mapping an Exclusive Regular Expression Strategy Mark Tabladillo In version 9, the SAS System introduces Perl regular expressions (sometimes known by the acronym PRX, the first three letters of these new functions or call routines). However, previous versions of SAS already had regular expressions (known by their acronym RX, the first two letters of these functions or call routines). This presentation will map specific functional and performance differences in these two exclusive regular expression strategies, and offer recommendations on when to use each strategy prxposn, macro definition source 10
44 MISSING VALUES: Everything You Ever Wanted to Know Malachy J. Foley Many people know about the 28 different missing values for SAS numerical data. However, few people know about the many different missing values for character data. This paper reviews all the different types of missing values, their sort order, the difficulties they can cause th e SAS programmer and how to avoid those difficulties. It also discusses the MISSING system option, and how to use the various missing values in input, output, comparisons, and in PROC FREQ missing value, proc step, options statement, proc freq, sas log, input statement, proc print, macro variable source 8
45 Moving Data and Analytical Results between SAS and Microsoft Office Vincent DelGobbo Transferring data between SAS and Microsoft Office can be difficult, especially when SAS is not installed on a Windows platform. This paper discusses using the HTML and XML support in Base SAS software to move data between SAS and Microsoft Office (versions 2002 and later). You can use the techniques described here regardless of the platform on which SAS software is installed excel, dataset, sas output, xls, ods html, ods xml, adverse events, macro definition, sample, proc template, proc step, sas base, libname engine, work library source 20
46 MXG DB2 - A Cookbook Approach Juliana Hughes proc sort, macro definition, proc step source 10
47 ODS LAYOUT is Like an Onion Rich Mays ODS LAYOUT is like an onion. They both make you cry? No! They both have layers! In version 9, the ODS LAYOUT feature is one of the best inventions since the Carmel Frappuccino. SAS now gives you a straightforward approach to placing graphs and tables on a page while eliminating the need for PROC GREPLAY and TEMPLATES. This paper demonstrates a method of using ODS LAYOUT capabilities to create PDF documents by creating a series of page "layers." It also demonstrates the use of macros to enhance the capabilities of ODS LAYOUT. Enhancements will include utilizing background colors/images, color graph borders with flexible line thickness, and flexible positioning of graphs on individual pages. A macro controlled system to determine available space on a page, and the subsequent placement of graphs/tables will be discussed. A good understanding of how to use macros is essential to understanding this paper. An understanding of ODS LAYOUT and PROC GREPLAY is helpful but not necessary proc greplay, proc step, ods pdf, proc sql source 16
48 Once Again on Efficiency and Base SAS Milorad Stojanovic Efficiency is a broad term. Different users of SAS Base software understand efficiency in quite different ways, from running programs faster to creating and maintaining application programs more easily and faster. Modifying existing programs by changing program logic requires more effort than other approaches to improving efficiency. The author's goal was to improve efficiency of SAS programs with a minimum of interference with existing program code. He discusses two SAS Base features - the COMPRESS option and the SASFILE statement. His goal was to present guidelines that were unavailable and unknown to him at the time of writing this paper about the types of data sets in terms of size and content for which these SAS Base features will improve efficiency. His goal ultimately was to produce a 'cook book' for these two SAS features. Also he points out when and why the options will not achieve any advantage and in fact will produce less efficient results dataset, sas base, cpu time, raw data source 6
49 Preemptive DATA CLEANING: Techniques Malachy J. Foley Data cleaning is a necessary evil... Or is it? Many techniques exist that prevent data errors at data gathering and/or at dat a i nput. The us e of t hese t echniques el iminates or minim izes the errors that actu ally g et in to yo ur computer files. One s uch technique is check digits. C heck digits can eliminate up to 99% of all tran scription and keying errors. Other techniques include proper form design, data monitoring, double keying, and hash totals. This tutorial examines these error-prevention techniques through examples and where applicable, it includes SAS code hash total, data wrangling, data cleaning, numeric variable source 13
50 Proc SQL Tips and Techniques - How to get the most out of your queries Kevin McGowan,
Brian Spruell
PROC SQL is a powerful part of SAS when you have to work with large amounts of data. PROC SQL is very useful when working with relational databases but it can be hard to learn as there are some common mistakes that are not obvious to new users. This paper provides examples of ways to use PROC SQL efficiently while avoiding mistakes that can make software run much slower than it needs to be. Topics covered include joins, table aliases, common PROC OPTIONS and simple statistics that can be calculated with PROC SQL without having to use other procs such as freq or means. When to use PROC SQL vs. other parts of SAS will also be covered proc sql, proc step, create table, data step, where statement, dataset, relational database, sas programmer, group by, order by, select, having source 11
51 Proc Transpose or How to Turn It Around Janet E. Stuelpner So many times we need to take our data and turn it arou nd. One of the reasons that this is done is that it is more efficient to store your data in a vertical format and processing the data is easier in a horizontal format. That means that we need to change the format of the data before we process or analyze it. There are many ways to accomplish this in a DATA STEP. Another way to change the data is to use a PROC TRANSPOSE. This paper will show you, step by step, how to change the format of the data. You will be taken from the easiest way of doing without any options to a more complex manner using a whole host of options proc transpose, proc step, out=, numeric variable, by group processing, character variable, proc print, sample, vital signs source 7
52 Pruning the SASLOG - Digging into the Roots of NOTEs, WARNINGs, and ERRORs Andrew T. Kuligowski You've sat through constant design meetings. You've endured countless requests for "just one more little change". You even managed to find a creative solution to that nagging technical problem. But, you persevered, and despite all of the obstacles, you've managed to eliminate the final syntax error in your newest SAS routine. Time to sit back and relax -- uh, not quite ... The primary focus of this presentation will be on techniques to ensure comprehension of your input data. We will look at several messages that are often found in the SASLOG, such as: NOTE: MERGE statement has more than one data set with repeats of BY values. that imply that there may be gaps in your knowledge of your data! Special emphasis will be placed on the use of ad-hoc queries to assist in finding data anomalies that can cause problems with your SAS code input statement, numeric variable, proc step, merge statement, out=, index, data cleaning, infile statement, proc means, dataset, e., sample, put statement source 10
53 Question: How do I find out what that _TYPE_ value is from my PROC MEANS? Answer: the FINDTYPE Macro! Daniel E. Bruns Have you ever been really confused by the _TYPE_ variable with PROC MEANS or PROC SUMMARY? Have you ever had trouble determining the values of _TYPE_? The FINDTYPE macro is your answer! Accepts variable names as parameters and returns the corresponding _TYPE_ value. A tip worth ten minutes of your valuable conference time! macro variable, macro loop, macro function, %if-%then-%else, macro definition, proc step, end, macro flow control source 4
54 SAS 9 Programming Enhancements Marje Fecht Performance improvements are the well-publicized enhancement to SAS 9, but what else has changed that impacts your "SAS programs"? This Hands On Workshop explores many new SAS 9 features including: § new functions that may eliminate the need for complex expressions § changes and additions to informats and formats § interface additions and improvements § new Export capabilities § procedure enhancements § and more. . . This workshop is beneficial for Version 8 SAS users who are getting started with SAS 9 sas 9, macro variable, character functions, proc step, excel source 5
55 SAS Certification: Is it for You? Sarbjit Rai The SAS Certified Professional Program was launched by SAS Institute, Inc. in 1999 to recognize users who can demonstrate an in-depth understanding of SAS software. The program consists of five certifications across a number of functional areas. There are several SAS courses which prepare users for the certification exams. To date many programmers have taken these courses, some experienced users just take the exams, and there are many other SAS savvy professionals who are experienced but not SAS certified! This paper will review the benefits and limitations of the Certification Program for new SAS users as well as those who are more experienced and investigate whether it meets the needs of the user community. Why get certified? What's in it for you? The impact of the Certification Program on SAS jobs and its importance in industry vs. work experience and other SAS training courses will also be explored from an end user's perspective data governance, sas programmer source 8
56 SAS Code to Select the Best Multiple Linear Regression Model for Multivariate Data Using Information Criteria Dennis J. Beal,
Oak Ridge
Multiple linear regression is a standard statistical tool that regresses p independent variables against a single dependent variable. The objective is to find a linear model that best predi cts the dependent variable from the independent variables. Information crit eria uses the covariance matrix and the number of parameters in a model to calculate a statistic that summarizes the inform ation represented by the model by balancing a trade-off between a lack of fit term and a penalty term. SAS calculates Akaike's Information Criteria (AIC) for every possible 2 p models for p ≤ 10 independent variables. AIC estimates a measure of the difference between a given model and the "true" mode l. The model with the smallest AIC among all competing models is deemed the best model. Th is paper provides SAS code that can be used to simultaneously evaluate up to 1024 models to determi ne the best subset of vari ables that minimizes the information criteria among all possible subsets predictor variable, regression analysis, stepwise selection, forward selection, backward selection, response variable, feature selection, multiple regression, proc reg, main effect, significance level source 6
57 SAS Dating Tips - A Beginner's Guide to SAS Dates Erik S. Larsen Do you want to be the life of the party at SESUG 2005? Being proficient at using SAS dates and times may not make you instantly popular, but it will make your programs work better and allow you to use the power of SAS dates to manipulate data and make your reports and graphs look more professional. We will explore the basics of how SAS stores dates and times internally and how you can use them to calculate values in terms of days, weeks and years. Finally, we will explore some date functions and formats to make your reports look so good you will never want to look at a Microsoft EXCEL spreadsheet again. The Basics First off, let's get down to basics. How are dates stored in SAS? Generally speaking, SAS has two types of variables it stores in its data sets: numeric and character sysdate9, date variable, datetime, time source 4
58 SAS Macro Design Patterns Mark Tabladillo The qualities which SAS macros share with object-oriented languages account for the structural power of macro programming. This paper illustrates some examples of specific design patterns which can be partially or fully implemented with the SAS macro language. The material is intermediate to advanced, and assumes knowledge of macros and macro variables. The goal is to systematically illustrate best practices for SAS macro programming macro facility, macro definition, sas base, macro variable, macro call, macro parameter, dataset source 11
59 SAS with Style: Creating your own ODS Style Template for RTF Output Lauren E. Haworth sample, proc step, proc template, ods rtf, footnote statement, proc report, title statement, output delivery system, options statement source 20
60 SER04_05 From Obscurity to Utility APP Functions APP functions is an (unofficial) collective abbreviation for the SAS functions ADDR, PEEK, PEEKC, the CALL POKE routine, and their so-called LONG 64-bit counterparts - SAS tools designed to directly read from and write to the physical memory in the DATA STEP and SQL Procedure. APP functions have long been a dark SAS horse. Firstly, the examples of APP usage in SAS documentation boil down to a few tidbits in a technical report, all intended for system programming tasks, with no hint how the functions could be used in plain data management SAS programming. Secondly, the note about the CALL POKE routine in the SAS documentation is so threatening in tone that many folk may have decided to avoid the potentially precarious route altogether numeric variable, character variable, sas programmer, temporary array, proc sql, length statement, data governance, variable list, dataset source 20
61 Simplify Existing Projects with Ideas from Data Warehousing Rick Aster data warehouse, raw data, data cleaning source 6
62 So You Want to Be a Manager? A Discussion On Issues to Consider Before Making a Career Move Lauren E. Haworth,
Stephen M. Noga,
Andrew T. Kuligowski
Are you thinking your next career move should be moving into a management position? Have you thought through all the pros and cons? This panel discussion will give you some things to think about before making that decision. The panelists have had different experiences. One panelist moved into management - and then moved out of management. Another juggles management responsibilities with coding responsibilities. The other panelist focuses on managing people and projects. The panelists will share their experiences and provide an opportunity for you to ask questions sas programmer, data step source 8
63 So, Your Data are in Excel! Edward Heaton You say your customer sent you the data in an EXCEL workbook. Well then, I guess you'll have to work with it. This paper will discuss some of the quirks you will find when your data are stored in an EXCEL workbook. It will cover such things as naming conventions, character length issues, numeric precision, date, time, and DATETIME values, mixed data types, and caching. This paper will demonstrate - through the Display Manager - SAS code and techniques to make your life with EXCEL more predictable and your work less prone to error. We will use the EXCEL engine that is available in SAS 9.1.3 when you license SAS/ACCESS for PC Files. The Basics of using EXCEL as a Database EXCEL is not a relational database; it's a spreadsheet. A relational database contains tables where each column holds the value for an attribute. Every value in that column holds the same attribute, but for a different entity. Each row holds the attributes for a single entity excel, libname statement, xls, name range list, sysdate9, character variable, label statement, relational database, missing value source 13
64 Speaking Klingon: A Translator's Guide to PROC TABULATE Dianne Louise Rhodes A frustrated colleague once complained to me that he couldn't understand the SAS Reference Manual for PROC TABULATE. "It's written in Klingon!" he exclaimed. I have found that the basics of Tabulate are easy to use if it is recognized as being a different set of constructs than used by other SAS Procedures. The Bureau of Labor Statistics Table Producing Language/Print Control Language (TPL/PCL ) has been used to produce vital statistics tables for many years. This paper introduces the TPL concepts that are the foundation of PROC TABULATE. These fundamentals are used to demonstrate how to build more complex tables, and how to exploit totals, percentages, and percentage bases (the percent denominator). New features in version 8 make it much easier to produce the statistics that you want. The paper demonstrates how to use formats and the PRELOADFMT option to produce classification levels in the order you want to see them class variable, proc step, proc tabulate, ods rtf, proc format, proc freq source 14
65 Statistical Shape Analysis with SAS Katherine Gerber The field of statistical shape analysis involves methods for studying the geometrical properties of random objects invariant under translation, scaling and rotation. It is often extremely useful to measure, compare and categorize the shape of objects in a wide variety of disciplines, ranging from code recognition to medicine, archaeology, and geology. Shape techniques are most often applied to the area of biology known as morphometrics, the statistical study of biological shape and shape changes. Utilities for data collection in pedagogical situations are widely available. With test data in hand, Base SAS, SAS/STAT, SAS/IML, and SAS/GRAPH are excellent tools for demonstrating the main ideas of shape analysis and performing statistical analysis on the shape data. An intermediate level of SAS programming is assumed; however, mathematically curious beginning level SAS programmers are likely to enjoy the material as well sample, proc princomp source 14
66 Summarizing Data with Base SAS PROCs Deborah B. Buck Base SAS provides a number of procedur es designed to aid the SAS user in dev eloping data summary reports. These procedures include MEANS, UNIVARIATE, FREQ, REPORT and TABU LATE. Additionally, PROC FORMAT is also available to modify the appearance of data values or combine values into desired categories within PROCs without changing actual data values or creating new variables. This presentation explores various common types of summary reports and what fa ctors you should consider in deciding which procedure is best suited to your reporting needs. It is not meant to be a detailed tu torial on PROC STEP programming code for all of these procedures, but rather a guide on how to decide which procedures fit the requirements for a given report. Summary reports generated using Base SAS PROCs are present ed along with the code produci ng these reports. These examples are valid with SAS Versions 6-9 proc step, proc report, proc print, sas base, proc format, proc freq, proc tabulate, proc means source 11
67 Systematic SAS Development, A Disciplined Approach John W. Davison Jr. This paper presents my systematic approach to SAS application design, based on nearly thirty years' experience in SAS development and maintenance. Without setting forth a rigid framework some broad guidelines are offered embodying the author's own rules that have served him well and may help others to develop their own. They represent a step toward formulation of a disciplined approach to more rapid development of more robust and maintainable applications and more reusable code proc step, sas enterprise guide, macro variable, sample source 8
68 Tabulating Fractional Observations Philip James Busby This paper presents an advanced coding technique to make PROC TABULATE display cross-tabulations of "partial" observations. Each observation has a numeric variable with a value between zero and one representing an employee's full-time equivalent (FTE) as a university employee. The HR user sees the total FTE count for all of the employees extracted by his selection criteria. The Application The Human Resources division of a major university in Chapel Hill, NC has implemented a tool to quickly generate and display cross-tabulations of students and/or employees. Using a SAS/INTRNET-generated web page, the user selects a maximum of two row and two column class variables from a predefined set of selection criteria, such as age range, sex, race, school, department, etc. The selection fields correspond to variables in the university's database that are used in a dynamically-generated WHERE clause proc tabulate, proc step, %if-%then-%else source 5
69 The BEST. Message in the SASLOG Andrew T. Kuligowski Your SAS routine has completed. It is appa rently a success - n o bad retu rn code s, no ERRO R or WARNING messages in the SASLOG, and a ni ce thick report filled with what appear to be valid results. Then, you notice something at the end of th e SASLOG that warns you that, s omewhere 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 revi ew an ad hoc that can be used to quickly identify numbers that are too large for your selected form at - certainly m uch qui cker an d effectively than attemptin g to eyeball a massive report! data cleaning, e., put statement source 3
70 The Birth of an Information Delivery Portal at Briggs & Stratton Sheryl Weise Information delivery portals have been around for years and yet there is still a considerable amount of confusion surrounding this technology and its potential. Briggs and Stratton has been a SAS customer for nearly 20 years, progressing from simple columnar reports to an interactive distribution vehicle, the Information Delivery Portal, developed in SAS v9.1.3. This paper presents the birth of the Information Delivery Portal at Briggs and Stratton from a programmer's point of view. Some of the topics include: Definition of the SAS Information Delivery Portal and terminology within. B&S current environment and goal for the information delivery portal. The SAS Management Console - this includes users, groups, security, and the SAS Stored Process Manager. Pages and portlets - loading templates vs. manual building, sharing types. * Portlet content - links, stored processes, and output sas management console, excel, sas enterprise guide, business intelligence source 21
71 The Functionality of Arithmetic SAS Functions for the CRO User Philip J. d'Almada,
Karen Graham
The Contract Research Organisation (CRO) industry requires precision and accuracy in the handling of data. One tool to a ddress this concern is the use of SAS functions. Arithmetic SAS functions are categorized, with other functions, by SAS into two categories entitled Truncation and Descriptive Statistics. The authors will discuss these types of functions in light of thei r application in the CRO industry and within the scope of the authors' experiences. This paper will illustrate the power of SAS functions as an option to arriving at the same result as some other SAS products, namely, SAS PROCEDUREs or PROCs. Advantages from the use of SAS functions are a cleaner SAS log and a reduction in debugging time missing value, sas function, do loop, sum, variable list, sas log, floor, truncation functions, date variable source 5
72 The Invisible Character Alt255 - Hidden Dragon Removing and Aligning Text in SAS Output Eugene Tsykalov,
Shi-Tao Yeh
Use of a special Invisible Character in SAS code is described to remove sometimes unnecessary text and help in text aligning and positioning in SAS output. The magic sequence of keys Alt-255 typed at numeric keypad places an Invisible Character symbol into text. This character looks like a blank space in the program code and SAS output but is processed and printed by many programs as a valid text character. Practical applications of Invisible Character Alt-255 - the Hidden Dragon which eats out undesirable text and guards SAS output text aligning are presented: removing unnecessary column names from PROC REPORT output, suppressing the name of a Pageby variable in page headers, aligning text in titles, footnotes and columns, preserving the original text layout in SAS ODS output in PDF format. Also discussed are differences in displaying of the Invisible Character in Windows and UNIX based programs proc report, proc step, sas output, character variable source 8
73 The Missing Link: Data Analysis with Missing Information Venita DePuy How do you handle missing data? Deletion of those subjects frequently leads to biased outcomes. Mean imputation assumes that non-responders are no different than responders, and can bias variances toward zero. Last observation carried forward methods, while still often used, can cause bias and even induce an apparent treatment effect. Multiple imputation is an improved method to deal with these issues. This paper will focus on the Markov chain - Monte Carlo based method of multiple imputation using SAS's PROCs MI and MIANALYZE imputation, missing value, multiple imputation, proc mi, proc calis, proc step, regression analysis, sample, mean imputation, missing completely at random, estimate, degrees of freedom, proc mianalyze, markov chain, median imputation, propensity score, sample size, covariance, likelihood function, last observation carried forward source 9
74 The Power of PROC FORMAT Jonas V. Bilenas The FORMAT procedure in SAS is a very powerful and productive tool, yet many beginning programmers rarely make use of it. The FORMAT procedure provides a convenient way to do a table lookup in SAS. User generated Formats can be used to assign descriptive labels to data vales, create new variables and find unexpected values. PROC FORMAT can also be used to generate data extracts and to merge data sets. This paper will provide an introductory look at PROC FORMAT for the beginning user and provide sample code that will illustrate the power of PROC FORMAT in a number of applications proc format, proc step, proc freq, missing value, proc tabulate, dataset, flat file, format statement source 8
75 The Program Data Vector As an Aid to DATA step Reasoning Marianne L. Whitlock The SAS DATA STEP is easy enough for beginners to produce results quickly. You can use a model from a manual or a colleague's program, and adapt it to your problems. Typically, you code a "SET" or "INPUT" statement and proceed with assignment statements etc. to produce a new file from a previous one. You can easily print the results, or put the data into a statistical procedure, without ever troubling yourself with the Program Data Vector (PDV). When you want to accomplish something more complex though, you find that familiarity with the typical DATA STEP pattern is not enough, and if you have not internalized the concept of the PDV, you are not well equipped to tell SAS what you want. Using increasingly complex problems, this talk will step through code from the PDV point of view. The goal will be to give confidence to try more manipulative programming put statement, input statement, set statement, _eof_, by group processing, dataset, output, subsetting if, temporary array, update statement, keep statement, do loop, automatic variable, retain source 14
76 The SAS Data Step: Where Your Input Matters Peter W. Eberhardt Before the warehouse is stocked, before the stats are computed and the reports run, before all the fun things we do with SAS can be done, the data need to be read into SAS. A simple statement, INPUT, and its close cousins FILENAME and INFILE, do a lot. This paper will show you how to define your input file and how to read through it, whether you have a simple flat file or a more complex formatted file input statement, infile statement, raw data, data step, sample, date variable, character variable, sas log, cpu time, delimited file, dataset source 17
77 The SQL Optimizer Project: _Method and _Tree in SAS 9.1 Russell M. Lavery This paper discusses two little known options of SAS PROC SQL: _method and _tree. The main body of information,and the major opportunity to learn about the topics, exists in the heavily annotated appendix. Efficient use of thismaterial might involve reading, and printing, this paper then working through the appendix. This paper will alsoattempt to describe some of the logic that the Optimizer employs.PROC SQL has a powerful subroutine, the SQL Optimizer, that examines submitted SQL code and the state of thesystem (file size, index presence, buffersize, sort order etc ). The SQL Optimizer creates a run plan for optimallyrunning the query. Run plans describe executable programs that the Optimizer will create to produce the desiredoutput. These executable programs can be quite complicated and often involve the creating, sorting and merging ofmany temporary files proc sql, inner join, proc step, create table, where statement, hash table, right join, full join, order by, proc sort, group by, left join, proc means, having, data step, cpu time, unique key, select, index source 57
78 Tips and Tricks: Using SAS/GRAPH Effectively A. Darrell Massengill SAS/GRAPH is a powerful data visualization tool. This paper examines the powerful components of SAS/GRAPH and highlights techniques for harnessing that power to create effective and attention-grabbing graphs. The components examined include the SAS/GRAPH procedures, gr aphical global statements, the Output Delivery System (ODS), graph styles, client-rendered graphs, and the Annotate facility. Complete programs using these components and techniques are provided and examined in detail proc step, proc gplot, catalog entry, proc gchart, output delivery system source 15
79 Tuning SAS 9 for Multiuser ETL Environments Frank M. Bartucca Whether it is economic conditions forcing a rediscovery of economy of scale or the pressure on IT shops under tight budgets to provide servers that support increasing levels of data heavy lifting, a clear trend has emerged towards server and workload consolidation onto larger servers. As a consequence large volumes of data are being processed by SAS programs these days in large multiuser ETL environments. We have found that performance in these environments greatly depends on the tuning and optimization of server I/O subsystems and application I/O options. We describe our methodology and process as we tune a specific SAS workload to be less disruptive of the overall performance of a multiuser system cpu time, sas log, proc sort, proc step, dataset, performance tuning source 12
80 Use a SAS Database Search Engine Instead of Writing a Program Eugene Yeh We developed a search engine to scan all the variables from multiple SAS ? data sets locat ed in different directories. It produces a summary report of data values and names of data structure elements (e.g. variable names and labels) from multiple data sets that match your search parameter. The report can hyperlink to a subset of the source da ta sets, consisting only of observations that match your search criteria. You can also restrict the names of variables and data sets scanned and therefore it can filter data just like the SAS Viewer. This paper describes the use of the SAS database searc h engine in pe rforming different tasks. These tasks involve scanning many data locations, where the approach of using a search engine is more practical a nd efficient than writing a SAS program and analyzing its results . A wide range of personnel can use this application since programming knowledge is not required numeric variable, excel, data cleaning, type i error, raw data source 10
81 Using Dictionary Tables: An Introduction to SAS Metadata Frank C. DiIorio SAS system metadata (aka "dictionary tables") can be used in an almost limitless number and range of applications. Despite being in Base SAS software since Version 6, references to them in conference proceedings and other sources is curiously sparse. Among the goals of this workshop is to raise awareness of this fertile (and free!) data source and have attendees begin to consider how to use the tables in their everyday programming. The more tangible objectives are: Describe the nature and contents of the tables Show how they are maintained * Demonstrate their use in some simple, generalizable applications One of the most common uses of the metadata is in general-purpose utility programs. Since these programs are best written as macros and the tables are best accessed through PROC SQL, attendees should have a working knowledge of SQL and the macro language. Organization The planned organization of the workshop follows macro facility, proc sql source 2
82 Using ODS to Perform Simulations on Statistics from SAS Procedures Andrew A. Kramer The Output Delivery System (ODS) is SAS' mechanism for exporting output from procedures to a variety of format destinations. One of the format destinations is a SAS data set. Thus the statistics of interest from a SAS procedure such as PROC LOGISTIC can be captured. If the SAS procedure is repeated many times then a SAS data set containing the results from that procedure can be iteratively built. With the use of a few macro variables and a single ODS statement simulation studies of output statistics can be developed. An example is given here using PROC LOGISTIC to perform a simulation study of the behavior of the Hosmer-Lemeshow GOF statistic (HL-GOF) when large data sets are used. A logistic regression of 50,000 observations was run 1,000 times with the HL-GOF statistic being saved in a data set. A test of the distribution of the 1,000 HL-GOF statistics confirms that this statistic is distributed as a Chi square variable with 8 degrees of freedom dataset, logistic distribution, proc step, proc logistic, logistic regression, binary variable, interval variable, regression analysis, output delivery system source 4
83 Using PROC GENMOD for Loglinear Smoothing Tim Moses,
Alina A. von Davier
proc freq, proc genmod, covariance, proc step, degrees of freedom, sample, poisson distribution, likelihood function, frequency analysis, sample size source 21
84 Using SAS Enterprise ETL Server to Build a Data Warehouse: Focus on Student Enrollment Data Evangeline Collado There is a continued demand across the higher education sector for increased extraction and analysis of university data to facilitate strategic decision-making and management of university programs and activities. Using the SAS Enterprise ETL Server, the University of Central Florida's Office of Institutional Research has merged more than 10 years and 5.5 million rows of student enrollment data from both legacy file structures and ERP-system file structures, as part of our data warehouse reporting solution. This paper will present the design concepts, ETL coding, data cleansing, metadata and final table structure of the student enrollment data tables. Once complete the full data warehouse will provide data integrity and integration for a breadth of information applications; improve reporting efficiency and consistency for a community of independent users; while allowing a shift from simple reporting to strategic performance measurement, evaluation, forecasting and decision-making oracle, raw data, dimension table, dataset source 6
85 Using SAS to Process Repeated Measures Data Terry Fain Data that contain multiple observations per case are called "repeated measures data." Common examples are medical records, credit card charges, and airline travel history. This tutorial will discuss ways to use the SAS DATA STEP to handle repeated measures data, in order to generate summary data for reports or for submission to analytic techniques (e.g., regression). We will address both horizontal repeated measures (using arrays) and vertical repeated measures (using RETAIN, FIRST., LAST., OUTPUT, and other SAS statements and options), as well as how to convert horizontally structured data to vertically structured data and vice versa repeated measures, longitudinal data, proc step, output, credit card, by group processing, proc print, sample, array, retain, do loop, format statement, proc contents, proc freq source 10
86 Using SAS/GRAPH GMAP to Enhance a Diabetes Wellness Campaign Barbara B. Okerson The role of a quality improvement organization (QIO) is to assist healthcare providers in making successful and meaningful changes in the way care is delivered and in improving outcomes of that care. The ability to identify spatial differences in indicator rates, demographics, medical shortages, and technologies can help improve the efficiency of information delivery to and by healthcare providers. Geographical data analysis and display can be used to summarize spatial data, identify variations in performance by regions and providers and show performance trends over time through both static and interactive displays. This analysis can also be used to focus culturally sensitive and technologically delivered materials as well as assist in proposed solutions for identified unmet needs. SAS provides a comprehensive mapping tool through the SAS/GRAPH GMAP procedure for both geographic and non-geographic spatial displays proc step, proc gmap, dataset source 7
87 Using WEB Tools to Enhance Population Identification Carol A. Martell In social science research, a study population is often extracted from a large public or limited-access database. The database may not be designed for the purpose of data exploration, but rather tuned, and rightfully so, to carry out some required business task, such as keeping track of licensed drivers. The accurate identification of a study population, exclusively and inclusively, is crucial for the researcher. If manual review is required for case selection, the process of identifying the study population becomes laborious or infeasible. This paper gives an example of using SAS/INTRNET software and HTML to leverage existing data exploration and collection tools into an efficient environment for case-by-case manual review. This customized tool provides, in a single web page, the ability to investigate potential population candidates and build a table of those cases that would algorithmically be left out of the identified population dataset, proc sql source 9
88 Ways to Store Macro Source Codes and How to Retrieve Them Mirjana Stojanovic,
Donna Hollis
This paper will focus on different ways to store macro programs. Pr ograms developed in a multi-user clinical data management environment often experience refinement and re-programming in their lifetime, so a shared storage and usage location is valu able. This paper will present several different methods available to choose from to save macro programs. The advantages and disadvantages of each method will be expl ained in detail so that users will be able to chose which method best fits their needs. %INCLUDE, AUTOCALL LIBRARY or STORED COMPILED MACRO FACILITY will be explained step by step, and examples will simplify the process of how to use these methods. Detailed explanation and examination should provide a solid understanding of the current SAS 9.1 environment and what this version can offer for macro usage. This presentation will explore a program developer's choices through examples and will be particularly oriented to the Windows network environment stored macro, autocall macro, macro facility, macro definition, options statement, macro variable, proc sort, proc step, macro catalog, libname statement, proc sql source 9
89 What Do You Mean You Don't Have SAS!!!?? Using the Power of the SAS Data Step to Create Cluster Scoring Code That Is Not Platform Dependent Bill Hartley When transferring code, we can't assume all clients have access to SAS. Some of the statistical procedures that are easily accessible in SAS/STAT can't be used in all environments. Statistical procedures, such as mean, standard deviation, minimums, maximums, etc. are found in many software platforms. Even regression is not difficult to code since it is a linear function. Cluster analysis is more difficult to code for outside platforms. This paper demonstrates how the DATA STEP can be utilized to create scoring code for cluster analysis, which can be transferred to software independent environments euclidean distance, proc corr, proc step, proc stdize source 5

Back to Conf go 2006 go 2004

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.