HOME QUICK SEARCH AUTHORS KEYWORDS HELP BUGS

WUSS 2007 Papers - Index

105 papers. Source: WUSS (Western Users of SAS Software) conference proceedings.

# Title
×
Authors
×
Abstract
×
Keywords
×
Extras Pages
1 "Govern the Clock": Adding the Run Date and Time of a SAS Program to Your LOG, LST, and RTF Output Eric P. Elkin This presentation will focus on solutions for automatically documenting the actual time and date of program submission in the SAS log, listing, and RTF output. Three related problems will be addressed. First, the default date and time printed to the SAS output is the date and time that the SAS session was started, not the time that the program was actually run. Secondly, the date and time are not printed in the log. Finally, there are issues with the date and time that appear in the RTF file when it is created using the default SAS date and time output. The solution presented here involves the global OPTIONS statement and macro variables whose values are assigned using CALL sas log, macro variable, ods rtf, call symput, options statement source 2
2 A "SAS Programmer's" Guide to SAS Enterprise Guide Marje Fecht You have been programming in SAS for a while….. You hav e been told "we are moving to Enterprise Guide" and removing Display Manager". You say …… I can program everything just fine myself, thank - you! OR What am I supposed to do with all these windows? This presentation will demonstrate how SAS programmers can use SAS Enterprise Guide as their primary interface to the SAS system while maintaining the flexibility of writing their own customized code. We will look at how to navigate the views and menus how SAS Enterprise Guide can be used as your primary SAS Editor * how you can leverage the more complex built-in capabilit ies available in SAS Enterprise Guide to further enhance the information you deliver. Enterprise Guide version 4.1 will be used. sas enterprise guide, bar chart, sas programmer, proc step, sas log, dataset, proc sql source 20
3 A Datum to Remember: Using the RETAIN Statement Jeanina M. Worden,
Chunmei Yang
As PROC TRANSPOSE and PROC SQL are becoming more and more popular, are you sometimes wondering if the long list of variables transposed by PROC TRANSPOSE can be shrunk, or are you confused by ID variables, BY variables along with many of the to-be-transposed variables? Or do you often need to calculate summary information of variables but are stuck with the calculation of running totals or comparison of values across observations using PROC SQL? Don't forget one of the most useful DATA STEP tools - RETAIN statement. It can be used to carry forward values across observations, create constant subject level variables, count number of events per subject, transpose data from tall and thin to short and fat, re-order variables in analysis databases, and do other data manipulation across observations. retain, proc step, proc sql, proc print, proc transpose, missing value, sas output, proc sort source 10
4 A Guided Tour Through the SAS Windowing Environment Casey Cantrell The SAS system running in the Microsoft Windows environment contains a multitude of tools that can make the process of learning, and using SAS much easier. The interface simplifies communication with the operating system and provides us immediate and familiar access to our data. The programmer may perform common data management tasks with the click of a mouse, customize the working environment and use a variety of tools common to other Windows applications. This workshop will provide an orientation to the SAS windowing environment, and will demonstrate how to edit and submit programs, manage output, and build and save SAS system files. sas output, proc step, sas library, work library, proc freq, sas log source 19
5 A Hands-on Tour Inside the World of PROC SQL Kirk Paul Lafler Structured Query Language (PROC SQL) is a database language found in the base -SAS software. It enables access to data stored in SAS data sets or tables using a powerful assortment of statements, clauses, options, functions, and other language features. This hands -on workshop presents core concepts of this powerful language as well as its many applications, and is intended for SAS users who desire a n overview of the capabilities of this exciting procedure. Attendees will explore the construction of simple SQL queries, ordering and grouping data, the application of case logic for data reclassification, the creation and use of views, and the constructi on of simple inner and outer joins. proc sql, where statement, proc step, select, inner join, index, order by, view, data merging, right join source 13
6 A Macro for Saving Output as a Genuine Excel Workbook James J. Van Campen Do you like creating EXCEL output using ODS? Do you not like manually opening and saving the output files as true EXCEL files because they are really HTML or XML disguised with XLS file extensions? In this paper a SAS macro is presented which opens and saves your output as genuine EXCEL files using the x command and DDE. This macro was developed with SAS 9.1 for Windows and requires EXCEL version 2002 or later. excel, xls source 1
7 A One-Page Many-Survey Report using Metadata and PROC REPORT Patrick Thornton The purpose of this paper is to present syntax to create concise PROC REPORT output that displays results from multiple data sets. User-defined metadata controls SQL and DATA STEP syntax to produce a data set of results, and PROC REPORT and ODS are used to display the results in PDF with SAS 9.1 on a Windows operating system. The syntax was developed for use in survey research, however a more generic example is shown. The REPORT procedure lists for each data set the total observations, a count of observations by time period (e.g. Fall 07), count of unique ID by time period, and count of unique IDs in each time period that is matched to the first period. Traffic lighting is employed to shade cells where data is received and not expected and expected and not received. This paper is designed for the intermediate to advanced user of SAS. proc report, proc step source 3
8 A SAS Algorithm for Block Randomization Jimmy Thomas Efird,
Miki Hong,
Pollie Bith-Melander,
Chieko Kimata,
Caroline Jiang,
Kathleen Baker
By chance, a simple random allocation scheme may yield an unbalanced assignment of treatments in a clinical trial, especially when the sample size is small. In this paper, we compare different randomization schemes and present the SAS code for conducting blocked randomization. A clinical trial example is presented to illustrate the potential pitfalls that may be encountered when failing to use blocked randomization. randomization, clinical trial, sample size, treatment arm, sample, proc step source 4
9 A SAS Algorithm for Separating Multiple Variable Fields Pollie Bith-Melander,
Kavitha Alimineti,
Chieko Kimata,
Natalie Hiratsuka,
Miki Hong,
Jimmy Thomas Efird,
Kathleen Baker
This paper describes an algorithm for separating multiple variable fields into single variable columns. FileMaker Pro 7, a database application, is used to initially create the database. Using SAS 9.1.3, the database is then converted for analysis. FileMaker Pro 7 is an easy and simple computer software application to use to get the data in; however, the problem is that it is difficult to get the data out. Using both FileMaker 5 and SAS 9.1.3 applications basically eliminates this problem. An example of a patient database is used in this paper to demonstrate the usefulness of these two applications. excel, dataset, proc step source 3
10 A Scattered Approach to Quality Control Christina Schmunk,
Komal Sunak
As analysts increase the amount of data being stored to files, how do they provide dependable results? Quality control is one of the key aspects of data analysis and is important for the outcome of any project. In this paper we will examine methods of efficient graphical interpretation of data that can be incorporated into SAS syntax to assess the information's validity. This paper will explore these techniques in Base SAS 9.1.3 on a Z/OS environment. sample, bar chart, random sampling, sample size, parameter, proc step, horizontal bar chart, vertical bar chart, quality control, statistic, numeric variable, proc surveyselect source 10
11 A Simple Way to Create a Running Total David Fickbohm This paper will explain how to create a running total. The paper will explain how the author used multiple arrays, how the author also used the end = finished method to determine when to stop outputting detail lines and output a total line. This poster is oriented towards beginning SAS programmers macro variable, do loop, missing value, cpu time source 7
12 Abbreviations are Your Friends, Use a Template Method to Code! Elizabeth Ceranowski Often, coders find themselves using the same procedures or sequence of procedures over and over again. It would be very useful to create a "shell" of a procedure or program that can be used to cut down on repetitive typing. (For example, to submit the generic code "PROC PRINT;run;"). This quick demonstration will show how to create/edit/use proc step, proc report, tranwrd function source 6
13 Adding the Feature of Age Adjustment for the Survey-related Procedures of SAS - Age Adjusting Prevalence Estimates from Population Based Survey Datasets Zhiwei Zeng Estimating the prevalence of health conditions from population based surveys is very common and useful in health surveillance. However, as many medical conditions are strongly associated with age, comparisons can not be made about the relative health of population groups or change over time without age adjustments, which involves age grouping, population standardizing and some calculations. While age adjustment for survey data analysis is so useful and highly utilized in practice, there is no such feature available at all current survey-related procedures in SAS (version 9). This paper describes how to use SAS Macro and SQL to generate the age-adjusted prevalence estimation and 95% confidence intervals directly from a population based survey dataset, providing a useful and practical tool for age adjustment. The SAS codes developed in this paper is easy for implementing, and can be modified and applied for other similar adjustments such as race and gender. confidence interval, data science, macro definition, proc sql source 6
14 Advanced PROC REPORT: Doing More in the Compute Block Arthur L. Carpenter One of the unique features of the REPORT procedure is the Compute Block. This PROC STEP tool allows the use of most DATA STEP statements, logic, and functions, and through the use of the compute block you can modify existing columns, create new columns, write text, and more! This provides the SAS programmer a level of control and flexibility that is unavailable in virtually all other procedures. Along with this flexibility comes complexity and this complexity often thwarts us as we try to write increasingly interesting compute blocks. The complexity of the compute block includes a number of column identification and timing issues that can confound the PROC REPORT user. Of course to make matters even more interesting, there can be multiple compute blocks that can interact with each other and these can execute for different portions of the report table. proc step, proc report, character variable, class variable, proc format, missing value, put statement, do loop source 23
15 Advanced PROC REPORT: Getting Your Tables Connected Using Links Arthur L. Carpenter Gone are the days of strictly paper reports. Increasingly we are being asked to render our tables and reports using a variety of electronic file types that can be browsed and read using our computers. Besides the cost savings associated with the purchase of paper, paperless reports also minimize the costs associated with the printing and distribution of the reports. Another, often overlooked and potentially more important, side benefit of the paperless report is the increased availability of linked graphs, reports and tables. Navigation of the paper report is dependent on the table of contents, a strong index, and visual aids such as captions and footnotes; however in paperless reports we can easily jump from one table to its supporting and dependent tables with the click of a mouse. Easily that is if we have created the necessary links. proc report, proc step, output delivery system, macro variable, macro loop, do loop, macro facility, footnote statement, ods pdf, macro definition, proc sql source 21
16 Advanced techniques for processing large datasets (Parallel Programming) Victor de Leon Over four years ago, I submitted a WUSS paper on a utility I wrote to submit and manage multiple parallel SAS programs. Today, I find that many users are still challenged with: -SQL queries that run over 24 hours -Reading files that span 60 tapes -Processing a 2TB SAS file for a time sensitive month-end close Using advanced coding techniques and developing a scheduling utility, processing large files becomes more manageable and efficient. proc step, proc sort source 6
17 Adventures in Arrays Jane Stroupe Do you need to perform repetitive calculati ons on a group of variables create many variables with the same attributes restructure your data perform a table lookup with one or more factors? If your answer is "YES" to any of these questions, you should consider using an array in your DATA STEP. array, do loop, dataset, lookup, numeric variable, array bounds, variable list, length statement source 12
18 AN ADAPTIVE ALGORITHM TO COMPUTE POWER FOR THE HOCHBERG SEQUENTIAL REJECTIVE PROCEDURE: A CORRELATED DATA EXAMPLE Jimmy Thomas Efird,
Susan Searles Nielsen
This paper presents an IML-based SAS MACRO for computing power for the Hochberg sequential rejective procedure. A simple adaptation of the algorithm also allows for the computation of restricted conditional power. A correlated data example involving 2 active formulations of a new investigational drug versus placebo is presented. Significantly increased study power is observed for the Hochberg procedure when treatment arms versus control are positively correlated. null hypothesis, sample, covariance, conditional power, student t distribution, treatment arm source 6
19 An Example of SAS Application in Public Health Research --- Predicting Smoking Behavior in Changqiao District, Shanghai, China Ding Ding Finding predictors of health-related behaviors is an important step in public health research. According to the Behavioral Ecological Model (BEM), people behave in certain ways because physical and social contingencies have reinforced this behavior (Hovell, Wahlgren, Gehrman, 2002). So far the BEM has still not been applied to study the smoking epidemic in China. To fill the gap of previous research, a multiple logistic model, which contained a hierarchy of variables on different levels of matecontingencies, was constructed with the help of SAS out of a sample from Changqiao District, Shanghai, China. logistic regression, logistic distribution, regression analysis, bivariate analysis, predictor variable, proc step, proc logistic, significance level, nominal variable, response variable, proc freq source 8
20 An Introduction to SAS Character Functions (Including Some SAS 9 Functions) Ronald P. Cody character variable, substr function, compress function, length statement, character functions, input statement, verify source 17
21 An Introduction to SAS Stat Studio: A Programmable Successor to SAS/INSIGHT Rick Wicklin,
Peter Rowe
histogram, data science, exploratory data analysis, logistic distribution, line chart, dataset, logistic regression source 18
22 Analyzing Multiple Records Per Subject with BY-Group Processing and RETAIN. Easier than You Think . . . Carter Sevick When faced with information that is spread over multiple rows per subject , many analysts will resort to a data transposition so that all data reside in one row. This solution inevitably involves complex workarounds , which can increase development time and result in code that is more difficult to maintain and expand. This paper presents an alternative approach involving BY-group processing and the RETAIN statement, which avoids the above-mentioned problems. by group processing, retain source 8
23 Auto-Attributes: No More Typing of Variable Labels (and Other Attributes) Jonathan M. Squire,
Johnny Tai
Do you want to avoid correcting typos in variable l abels? Automatically set the attributes of your per manent data set, including the format, character type, length, and v ariable labels? Automatically drop all unneeded, te mporary variables? Via a Microsoft EXCEL macro embedded within a central specificatio n document, a click of the mouse will generate the necessary SAS macro code. Then, a cal l to this macro will assign all attributes per the specification document and also retain only the specified variabl es. This will save you lots of programming and val idation time! Details of this method are discussed, including our programming setup, the Visual Basic macro, the gen erated code, how the macro is called, what the macro does, how i t affects your data set, and a summary of the utili ty of this study day, label statement, excel, adverse events, data cleaning source 7
24 Automated Programming Techniques for the Data Warehouse Manager Renato G. Villacorte Data Driven Programming and features in the Enhanced Editor maximize procedural efficiency and lightens the workload of routine processing. Any increase in efficiency would greatly benefit the programmer in charge of several datasets and files that reside on various locations on a network. This paper presents techniques for gathering the parameters such as filenames and procedure results that can be used in subsequent routines and macro programming. Techniques include utilizing the SYSEXEC, OUTPUT=, and ODS OUTPUT statements. Examples of these coding techniques include how to read an MS Windows folder's filenames into a SAS dataset, how to extract PROC results into datasets, and how to make SAS write programs based on these results. Programs that utilize techniques will reduce the workload required for the creation of ad hoc reports and metadata analyses. macro variable, dataset, proc step, proc freq, output, logistic distribution source 6
25 Automating Regression Analysis and PDF Report Output with the Use of Macros: Tricks for Disabling Default Delimiters and Making Use of Counters Svetlana Smorodinsky,
Bob McLaughlin
In this paper, we present several tips on automating logistic regression and PDF report output utilizing SAS macros and Output Delivery System. We adapted a SAS sample macro to accommodate the peculiarities of our data by using counters and disabling default delimiters used in macro processing. logistic regression, macro variable, logistic distribution, regression analysis, proc step, proc freq, macro call, class variable, proc logistic, predictor variable, sample, macro quoting function source 7
26 Automating the SORT-SORT-MERGE and Overcoming the Many to Many MERGE: %ProcMerge Carter Sevick The SAS DATA STEP merge is an irreplaceable tool in the SAS programmer's repertoire, but the nature of the process offers opportunities for MACRO automation. Additionally, the SAS DATA STEP does not offer a simple, or easy, solution to the many to many merge problem. PROC SQL can correctly perform a many to many merge (join), but this PROC is an implementation of a language that is quite different from the SAS language. Learning a new language is more than merely learning syntax, and many programmers choose to stay with the familiar. The MACRO %ProcMerge is offered as a solution. The obliga tory sorts are performed for the user and a many to many merge is within its capacity. The code behind the MACRO is entirely SAS code, and thus follows the logic of the typical SAS merge. merge statement, in= option source 17
27 BFF: Binary Flags Forever (Or, Boole's Paradise) David J. Pasta,
Eric P. Elkin
Binary flags, also called indicator variables or dummy variables, take on only the values 0 and 1. Manipulating these variables with arithmetic operations and calculating descriptive statistics on them can be a very efficient way to summarize data in different ways. Some arithmetic operations correspond to logical operations (Boolean algebra). For example, the product of two binary flags corresponds to AND, the maximum corresponds to OR, the sum of binary flags gives the count of values that are 1, and the mean of binary flags gives the proportion of values that are 1. One common use of binary flags is to indicate which inclusion and exclusion criteria an observation satisfies. This allows construction of a "subject flow chart" from the original sample to the final analysis sample that can be changed easily to apply the criteria in a different order. proc freq, missing value, proc step, frequency analysis, binary variable, sample, proc means, flag variable source 8
28 Blogging for SAS Programmers David Fickbohm This paper will discuss what a Blog is, why you might want one, how to create one, and, how to populate and manage the BLOG once created. The purpose of this paper is to give people the ability to understand and participate in the BLOG section of the new SASCOMMUNITY.ORG. sas programmer, proc sql source 4
29 Case Study: Development of an HIV casefinding algorithm with SAS Enterprise Miner Tamara Slipchenko,
Candice Bowman,
Yuexin (Cindy) Chen,
Catherine Sugar,
Allen L. Gifford
This paper describes an application of supervised data mining methods for development of an HIV casefinding algorithm with SAS Enterprise Miner (EM) 5.2. It is intended for healthcare professionals who are interested in developing electronic disease registries in medical and insurance industries. Access to HIV care depends on accurate identification of all infected persons. The Veterans Health Administration (VHA) provides care to ~20,000 HIV-infected veterans. The current algorithm for identifying patients for entry into the Registry is based only on HIV- specific diagnostic codes. Using EM, we built logistic regression (LR), decision tree (DT), and neural network (NN) models to predict a binary outcome variable, HIV status. We applied these models to VHA population to identify patients with high predicted probability of disease. In addition to the diagnostic codes we used demographic, geographic, socioeconomic, laboratory, pharmacy and service utilization variables. sample, data mining, response variable, type ii error, data cleaning, auc, regression analysis, logistic regression, logistic distribution, proc hpsplit, adam dataset, neural network, confusion matrix, feature selection, validation set source 9
30 Cleaning Data the Chauvenet Way Lily Lin,
Paul D. Sherman
Throwing away data is a touchy subject. Keep the maverick and you contaminate a general trend. Toss away good data points and you don't know if something important has happened -- until its too late. How do you know what, if any, data to exclude? Chauvenet is the answer. Here is a really gentle test you can apply to any distribution of numbers. It works equally well for normal, skewed, and even multi-modal populations. This article gives you a macro tool for cleaning up your data and separating the good from the bad. Skill Level: Basic statistics, DATA STEP, SAS/MACRO, and PROC SQL outlier, sample size, sample, proc step, proc sql, proc means source 11
31 Clinical Data Repository and SAS Karthikeyan Chidambaram staging area, clinical trial, data integration, life sciences, sas 9 source 8
32 Collaborate with SAS Users Around the World with sasCommunity.org Kirk Paul Lafler,
Charles E. Shipp
sasCommunity.org is an exciting and new collaborative online community for SAS users wor ldwide. This presentation explores a few of the exciting features found in this virtual community. Topics include a Wiki -based web site where anyone can add or change content on any page on the web site, the exchange of ideas on the Blogger's Corner, viewi ng scheduled and unscheduled events, using the built -in sea rch facility to locate all wiki - content, reading and responding to speci fic forum topics, and much more . source 10
33 Consulting: Critical Success Factors Kirk Paul Lafler,
Charles E. Shipp
The age of the Internet is changing the way many companies do business - and the type of consultant they need. The consultants of tomorrow will require different skills than the consultants of today and yesterday. Today's consultant may just as likely have graduated with an MBA degree as with a technical degree. As hired advisers to a company, a consultant often tackle s a wide variety of business and technical problems and provides solutions for their clients. In many cases a consultant chooses this path as an attractive alternative career option after toiling in industry for a number of years. This p aper describes the consulting industry from the perspective of the different types of organizations (e.g., elite, Big Five accounting firms, boutique, IT, and independent) that they comprise. Specific attention will be given to the critical success factors needed by today's and tomorrow's consultant. sas 9, sas consultant, sas base source 8
34 Creating Multi-Sheet Excel Workbooks the Easy Way with SAS Vincent DelGobbo Transferring SAS data and analytical results between SAS and Microsoft EXCEL can be difficult, especially when SAS is not installed on a Windows platform. This paper discusses using the new XML support in Base SAS 9.1 software to create multi-sheet Microsoft EXCEL workbooks (versions 2002 and later). You will learn step-by-step techniques for quickly and easily creating attractive multi-sheet EXCEL workbooks that contain your SAS output. Tips and tricks with the ExcelXP ODS tagset will be divulged. Most importantly, the techniques that are presented in this paper can be used regardless of the platform on which SAS software is installed. You can even use them on a mainframe! The use of SAS server technology is also discussed. Although the title is similar to a paper presented at SUGI 31 (DelGobbo, 2006), this paper contains new and revised material not previously presented by this author. excel, xls, proc print, sas output, proc report, sas base, change from baseline, adverse event summary, adverse events, sample, output delivery system, proc template, proc step, ods xml source 19
35 Data Driven Annotations: An Introduction to SAS/GRAPH's Annotate Facility Arthur L. Carpenter When SAS/GRAPH was first introduced, it was the 'only game in town' for the generation of business graphics. In the current computing environment we have lots of graphics options, and it is not unusual for programmers new to SAS/GRAPH to ask why they should bother learning the command and syntax structure of SAS/GRAPH, let alone that of the Annotate Facility. The fact of the matter is that SAS/GRAPH is still the 'only game in town' with regards to the generation of data driven graphics. When you want to create a large number of graphs (or even a single graph on a regular basis) and you do not want to place labels or other graphic enhancements manually, the Annotate Facility allows you to set up a system that places these items on the graph based on the data contained in the graph itself. In this workshop we will learn how Annotate communicates to the graphics procedures through the annotate data table. dataset, proc step, histogram, character variable, length statement, proc gchart, retain, numeric variable, proc gplot source 17
36 Data Driven Annotations: An Introduction to SAS/GRAPH's Annotate Facility Arthur L. Carpenter When SAS/GRAPH was first introduced, it was the 'only game in town' for the generation of business graphics. In the current computing environment we have lots of graphics options, and it is not unusual for programmers new to SAS/GRAPH to ask why they should bother learning the command and syntax structure of SAS/GRAPH, let alone that of the Annotate Facility. The fact of the matter is that SAS/GRAPH is still the 'only game in town' with regards to the generation of data driven graphics. When you want to create a large number of graphs (or even a single graph on a regular basis) and you do not want to place labels or other graphic enhancements manually, the Annotate Facility allows you to set up a system that places these items on the graph based on the data contained in the graph itself. In this workshop we will learn how Annotate communicates to the graphics procedures through the annotate data table. dataset, proc step, histogram, character variable, length statement, proc gchart, retain, numeric variable, proc gplot source 17
37 Data Mining Using SAS Enterprise Miner Randall Matignon response variable, data mining, sample, bar chart, proc princomp, missing value, training set, proc hpsplit, regression analysis, neural network, proc freq, line chart, time series analysis, logistic regression, feature selection, nominal variable, validation set, data cleaning, seed, scatter plot, score code, correlation, cluster analysis, logistic distribution, bootstrap, estimate, prior probability, raw data, stepwise selection, classification, proc means, stratified sampling, sas programming, imputation, link analysis, network optimization, proc step, market basket analysis, dataset, likelihood function, data step, proc nlin source 10
38 Detecting Possible Anomalies in Large Data Tables: Methods and Concepts Thomas E. Billings Analytical methods and SAS software for possible use in detailed screening of large data(base) tables for anomalies (primarily extreme values), are discussed. We want to detect anomalies on a per-cell basis, in large data tables where the data are divided into cells by multiple classification variables. The data in question may display slow trends. This includes count data (contingency tables) and other types of numeric data. The general outline for such a quality assurance process is: select relevant measures of per-cell deviation for the target application, construct reference data set(s) using data from mu ltiple time periods and use them to calibrate (and hold) the parameters needed for automated quality assurance checks, apply deviation measures to check current time per iod data; flag data that fail the checks as possible anomalies, investigate possible anomalies, resolve as appropr iate, then * update the reference data set with the current tim e period data. reference data, raw data, proc freq, proc step, chi-square test, constraint, proc means, sample, composite key, quality assurance, proc sql source 7
39 Don't Be Loopy: Re-Sampling and Simulation the SAS Way David L. Cassell The most common way that people do simulations and re-sampling plans in SAS is, in fact, the slow and awkward way. People tend to think in terms of a huge macro loop wrapped around a piece of SAS code, with additional chunks of code to get the outputs of interest and then to weld together the pieces from each iteration. But SAS is designed to work with by-processing, so there is a better way. A faster way. This paper will show a simpler way to perform bootstrapping, jackknifing, cross-validation, and simulations from established populations. It is simpler and more efficient to get SAS to build all the iterations in one long SAS data set, then use by-processing to do all the computations at once. This lets us use SAS features to gather automatically the information from all the iterations, for simpler computations afterward. sample, bootstrap, proc step, proc surveyselect, random sampling, data cleaning, confidence interval, output, permutation test, randomization, ods output, regression analysis, data step, proc sql, proc univariate, macro variable, monte carlo, sas output, proc append, proc reg, seed, macro definition, outlier, model validation source 18
40 Double Your Pleasure, Double Your Words... David L. Cassell Now that SAS 9 has Perl regular expressions in the DATA STEP, there are new capabilities in it. A common editing problem, finding doubled words in a text, can be tackled using Perl regular expressions. But the structure of the DATA STEP when using the PRX... functions and CALL routines can be simplified by using the Whitlock DO - loop in conjunction with the PRX functions. We illustrate this, showing how to build a simple Perl regular expression, and how to use the Whitlock DO -loop with the PRX... functions to find doubled words in lines of text. conditional do loop, sas 9 source 4
41 Dynamic Projects in SAS Enterprise Guide How to Create and Use Parameters Susan J. Slaughter,
Lora D. Delwiche
SAS Enterprise Guide allows you to define parameters, and then use those parameters in your project. Parameters are simply macro variables. When you run a project containing parameters, SAS Enterprise Guide prompts you to assign values to those macro variables. Using parameters, you can create a project, and then customize it at the time you run it. In SAS Enterprise Guide 4.1, there are three ways to use parameters: as a variable name in a task, in the filter condition of a query, or in SAS code. This paper covers all three types of parameters, showing how to define parameters, how to insert them in your project, and then how to run the final project using the parameters. sas enterprise guide, macro variable, dataset source 20
42 Enhance Your Programming with SAS DATA Step Views Thomas E. Billings SAS DATA STEP views provide virtual data sets within the SAS system, and, used properly, can enhance or increase the power of your programming. Here we review 2 examples of DATA STEP view usage: 1. Using views, one can process extremely large seq uential data sets (flat files and/or SAS native files) that otherwise would require too much disk space to process. 2. Views are superb tools to integrate dissimilar d ata sets. They allow you to combine legacy and new systems in reporting and other applications, and promote well-designed, modular software code. Views can also, in relevant contexts, hide complexity and simplify access. dataset, proc step, proc freq, conditional do loop, sas log source 6
43 Exploring the World of PROC SQL Joins Kirk Paul Lafler Real systems rarely store all their data in one large table. To do so would require maintaining several duplicate copies of the same values and could threate n the integrity of the data. Instead, IT departments everywhere almost always split their data among several different tables. Because of this, a method is needed to simultaneously access two or more tables to help answer the interesting questions about ou r data. This presentation illustrates a variety of join processes including Cartesian Product joins, equijoins, many table joins, and outer joins. proc sql, where statement, inner join, data merging, proc step, right join, select source 6
44 Exporting SAS/GRAPH Output for Inclusion in Web Pages and Other Software Applications Jim Simon output delivery system, ods html source 20
45 Get Your DATA Step "Amped" on Java David Bell Beginning with SAS v. 9.1.3, the DATA STEP supported calls to Java objects using the "javaobj" command. This emormously extends SAS in that Java can be used to make experimental processes available to SAS data not provided by SAS procedures or other statements. The procedures presented will be a "fuzzy Hamming" dissimilarity procedure and a metaphone phonetic code procedure that comes in handy when trying to match names from different databases. Setting up Eclipse for use as the development environment will be demonstrated together with the steps to including Java within the DATA STEP. Search Keywords DATA STEP, Java, Eclipse IDE, Fuzzy Hamming, Metaphone Operating Systems applicable :Windows proc step, dataset source 5
46 Getting the MAX Out of PROC MEANS R. Scott Leslie The MEANS procedure is most commonly used to generate and view descriptives of a data set. The procedure can also output these descriptive statistics to assist in later data manipulation steps. This paper shows how the OUTPUT statement and MAX option can create a subject level data set from a data set with multiple observations per subject. Additional steps include: introducing a macro to automate this code, using PROC FORMAT to avoid tedious hard coding, and using PROC TABULATE to display the information in a precise table. In this example, the code uses a pharmacy claims data set to calculate the percentage of members utilizing 64 different therapeutic classes of medications. binary variable, proc step, proc tabulate, proc format, output delivery system, proc means source 9
47 Getting Up to Speed with PROC REPORT Kimberly J. LeBouton 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 TABULATE or DATA _NU LL_ reporting--two areas that have driven the new SAS user crazy!!! With the added capabilities of ODS, PROC REPORT can look as sharp as an EXCEL report. This paper will show how to use PROC REPORT in both a windowing and non-windowing environment using SAS Version 9. proc report, proc step, proc print, proc tabulate, proc means, variable source 7
48 Guidelines for Organizing SAS Project Files Nathaniel Derby For a beginning SAS R⃝ user, there are several resources available for learning how to write efficient programs, but few for how to organize program files, data sets, and related files. This is very important for many reasons such as: knowing where to find everything, avoiding duplicating efforts, and maintaining version controls. This paper presents ideas for organizing these files, along with some short but useful pieces of code. Keywords: Macros, code, organize. This paper is an excerpt 1 from Derby (2007a), which may be updated and can be downloaded for more information. macro call, libname statement source 4
49 Health Outcomes Research Using Time-to-Event Analytic Approaches Tyler C. Smith,
Besa Smith
Health outcome events may be characterized as morbidity such as disease or injury or may be the result of a particular health care procedure or medical intervention. The occurrence of these events is likely dependent on differing risk sets among those with and without the event. Health outcome researchers strive to identify at-risk populations by providing quantitative evidence allow more informed decisions by practitioners and policy makers. The focus of this tutorial will be on time-to-event analyses pertaining to occurrence of health outcomes. Specifically, this tutorial will discuss multicollinearity, confounding, and interaction investigation steps in multivariable model building. Cox's Proportional Hazards Regression will be employed to investigate for differences between event probabilities over time for two or more cohorts while adjusting for other influential covariates. predictor variable, survival analysis, survival function, regression analysis, hazard function, likelihood function, proc step, null hypothesis, proportional hazards assumption, probability distribution, proc phreg, cumulative frequency, treatment arm, hazard ratio, response variable, follow-up period, kaplan-meier estimator, estimate, nominal variable, left censoring, rank test, relative risk, right censoring, correlation, proc freq, proc reg, confidence interval source 22
50 How to Avoid Commonly-Seen "Correct but Problematic SAS Programming Pitfalls Keiko I. Powers SAS offers many features for data processing and analysis, and naturally there are multiple coding options/setups to handle the same data processing steps. I have seen cases where the codes are 'correctly' set up in the sense that they do not produce any error messages in the log; however, they are error-prone and/or inefficient setups and therefore could cause execution problems and/or unwanted data results in an unexpected manner. This paper illustrates these problematic setups by focusing on two example cases - assigning the same data name for input and output data when the data contents are changed, and always inserting PROC SORT step automatically before steps with BY statement. These illustrative cases are reviewed, and recommendations on how to avoid these pitfalls are presented. proc sort, proc step, data step, by group processing, data governance, error message source 7
51 How to Do More Work with Less Phuong T. Dang Most organizations are being asked to do more with less in order to stay competitive in a business environment. This means that the organizations must find ways to operate efficiently, increase resource productivity, and at the same time enhance employee job satisfaction. Take the pharmaceutical setting as an example. One of the primary objectives of the pharmaceutical companies is to get the most benefit drugs to the patients faster. As a result, managers and individual contributors are often faced with the conflicts of shifting priorities, shortened timelines, and the need for work-life balance. Thus, the challenge is to be able to effectively deploy resources where they are needed so that the low and the high peaks of the workload are leveling out. The paper presents the concepts of a fluid resource-sharing model that can be applied in any industry. It discusses the process, the challenges, and the benefits of this model which include efficient use of resources and skills. source 4
52 How to Find Answers: Using SAS Resources Helen D. Carey,
Ginger Carey
The vast amount of information on the SAS System, particularly that available through the Web, can be overwhelming. Knowing where to find the information you need saves time and frustration. This paper is about the variety of information and media available and describes where to learn more about SAS software and find answers to your SAS questions. sample, sas base source 17
53 How to Use a System of SAS Macros for Creating Excel Workbooks James J. Van Campen There exist many methods for delivering SAS output to EXCEL. Most of the methods permit little if any control over the formatting in EXCEL. In this hands-on workshop a system of SAS macros is presented which provides a high degree of control over EXCEL formatting directly from SAS. Attendees will customize and use the macros to create their own formatted EXCEL workbooks. Familiarity with the basics of macro and DATA STEP programming will be helpful for this workshop. These macros were developed with SAS 9.1 for Windows, and they require EXCEL version 2002 or later. excel, xls, macro call, user-defined format, ods xml, %if-%then-%else, macro quoting function source 11
54 Hurry!!!, Hurry!!! Step Right UP. Use The "Magical Compound Where Clause" to Eliminate Data Steps, Reduce Processing Steps, Speed Job Turnaround, and Mystify Your Friends William E. Benjamin Jr. The "Magical Compound Where Clause" can be used by beginning or advanced level programmers on the input side of a Base SAS or SAS procedure dataset reference on any computer operating system. This is especially useful if extracting subsets of records from large files. When working with "large disk files" that may take over an hour to read, programmers need creative ways to cut job steps and save time. When many programmers face the task pulling some records from a file for a report or new analysis, most will run a simple SAS DATA STEP then use PROC SORT to reorder the file for the next step. AH!!!, But the "Magical Compound Where Clause" can eliminate the SAS DATA STEP altogether. Saving time because only the "Magical Compound Where Clause" variables are read before selecting the records to be sorted. This paper will introduce four advanced command structures that the "Magical Compound Where Clause" can use on the input side of dataset options. proc step, proc format, proc sort, where statement, dataset, sas function, set statement, macro variable source 6
55 Hypothesis Testing: An SQL Analogy Leroy Bracken,
Paul D. Sherman
This paper is all about missing data. Do you ever know something about someone but don't know who that someone is? Are you missing information you didn't know you don't have? Do outer joins leave you in outer space? Then read this article and come back to Earth. The leading or Pivot Table of an SQL statement is like the Null Hypothesis H0 made during a statistical analysis. It is the starting point of a query which asks questions about data. We answer these questions, present and compare situations of missing data that are analogous to making Type-I and Type-II errors, and show some examples using real data how to estimate the likely band of error on an educated formal guess. Presented in this article is a simple solution for handling the pivot table of any SQL query so that no data is left behind. Skill Level: Intermediate Base/SAS, familiarity with PROC SQL. proc sql, missing value, null hypothesis, union all, hypothesis testing, group by, sample source 5
56 Importing Excel Files Into SAS Using DDE Curtis A. Smith W ith the popularity of E xcel files, the SAS user c ould use an easy way to ge t EXCEL files into S AS. There are many good methods to do so, one of them being Dynamic Data Exchange (DDE ). A SAS user can use DDE within SAS code to m ake i mpor ting a n EXCEL file rout ine and easi ly repeat able. The aut hor will show h ow he uses DD E wi thin SAS to rout inely impor t into SAS lookup t ables do wnl oaded from an ER P system as EXCEL files. The b asic D DE st atem ent s nee ded to acco mplish t his ar e sur prising si mple excel, xls, sas log, filename statement, sas enterprise guide, sas base, error message, dataset source 8
57 IMPROVING DATA ENTRY by 70% Importing Multiple Excel Worksheets Using DDE (Dynamic Data Exchange) Humberto Cisneros,
Mark McDermott
The purpose of this paper is to streamline our manual method of data entry by establishing an electronic process. Based on various papers presented at SAS conferences, we were inspired to use DDE to improve our data entry proce ss for data received on EXCEL spreadsheets. The Arizona Supreme Court, Administrative Office of the Courts (AOC) receives over 3,000 statistical reports from the courts every fisca l year. The details provided by these statistical reports for each court are published in a fiscal year-end publication, called the Data Report. The data is also summarized to enable a broad picture of the judiciary in Arizona, and used to answer many "what if" questions looking at the future of the judiciary, such as proposed legislation. The AOC receives statistical reports from all state courts and probation departments via the Internet, Intranet, WordPerfect, Word, EXCEL spreadsheets, email, fax machine or through the U.S. mail. excel, macro variable source 19
58 In The Compute Block: Issues Associated with Using and Naming Variables Arthur L. Carpenter In the compute block of the PROC REPORT step variables can be both created and used. They may be on the incoming data table, they may be computed in the REPORT step, they can be statistical summaries, and they may even be artificially created by the REPORT process. In the DATA STEP each variable has a name and that variable's name is used whenever we want to address a particular value on the Program Data Vector. In the REPORT step things are not so simple. The origins and use of a variable will determine how it is to be named in a compute block. If you do not know how to properly address a variable or report item in the compute block, the compute block will often fail. This paper will discuss the various variable types, how they are used, and how they are addressed in the compute block. proc report, proc step source 10
59 Is your UNIX/SAS System Healthy? Victor de Leon Only a few tools exist to monitor the health of UNIX SAS. As SAS becomes more mission critical, new tools need to be developed to ensure systems availability. proc sort, capacity planning source 7
60 LDAP and Integrated Technologies: A Simple Primer Brian Kowalczyk,
Richard Kerwin
SAS Integration Technologies and LDAP(Lightweight Directory Application Protocol) allows users of SAS V9 to utilize a standard API to interface their SAS environment with a centralized LDAP store, and to authenticate and validate users; readily providing them with access to SAS software interfaces like SAS Enterprise Guide, SAS Enterprise Miner, and all of the functionality that the procedural scripting language, data sources, files systems and reporting interfaces that the SAS BI and SAS Analytical Platforms offer. By integrating application security for SAS with Enterprise wide LDAP, your SAS user community will have a centralized authentication repository which will enhance performance of the SAS Application Server, improve security, and provide the user community greater continuity. sas enterprise guide, access control, data mining source 7
61 Listing Unexpected Data using VVALUEX Patrick Thornton This paper uses SAS 9.1 DATA STEP syntax and the VVALUEX function to list unexpected data by obtaining the formatted value of every data point. Without explicit reference to variable names, a DATA STEP using VVALUEX iterates through all variable values in a data set and outputs each unexpected value, as defined by the format assigned to each variable, to a new data set. Each metadata record is identifiable by an observation number and variable name from the original data set. A view is used to join the table with additional metadata obtained from the COLUMNS table of DICTIONARY in order to create an informative source for reporting unexpected values. data step, numeric variable, proc step, proc print source 4
62 Macro To Put Variable Labels Into A SAS Dataset From A Crosswalk Table Adam Chow Oftentimes, SAS programmers encounter SAS data sets entirely without variable labels, just variable names. If corresponding crosswalks exist and the task is to put variable labels into these data sets, then this can be accomplished programmatically with the %LABELME macro. This paper will: 1) summarize the macro specification; 2) examine the design methodology and syntax; and 3) demonstrate how it is used with an illustration. The %LABELME macro was developed and tested under Base SAS 9.1.3 in UNIX, SUN operating system 5.10 platform. proc step, label statement, proc sql, macro loop, error message, sas log, macro variable, macro put, libname statement, proc datasets, macro function, %if-%then-%else source 9
63 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 the 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 9
64 New SAS/GRAPH Procedures for Creating Statistical Graphics Cleester D. Heath Making a plot of the data is often the first step in a data analysis or a statistical study. In SAS 9.2, SAS/GRAPH introduces a family of new procedures developed for this purpose. These procedures are designed to create stand-alone displays that complement the more specialized graphs produced by the statistical procedures that use the ODS Statistical Graphics infrastructure. Since these new procedures and the statistical procedures use the same infrastructure, graphs created with all of these procedures are consistent in their appearance and in the way they are produced and managed. The new "SG" family of procedures includes SGPLOT, SGPANEL, SGSCATTER, and SGRENDER. The SGPLOT procedure creates single-celled plots that can be constructed with a variety of plot types, along with data smoothers, fitted curves, and other statistical features. The SGPANEL procedure creates paneled plots and charts where the paneling is driven by classification variables. proc step, scatter plot, proc sgpanel, proc sgplot, box plot, graph template language, histogram, class variable, by group processing, data science, proc genmod, confidence interval, anova, proc glm, regression analysis source 16
65 Once Written, Twice Applied: The Basics of Array Processing in SAS Beth Roth Using arrays in DATA STEP programming can streamline programming in important ways. This paper introduces novice users to the basics of array processing through examples and explanations of syntax. In addition to the array statement, do-loop processing and the DIM function are discussed. Finally, several specific uses for arrays are described to help users get started programming with arrays. array, do loop, array bounds, variable list source 5
66 Point-and-Click Style Editing in SAS Enterprise Guide Lora D. Delwiche,
Susan J. Slaughter
SAS comes with a variety of styles that you can choose to change the overall look of your HTML results. If you can't find the exact style you need, then you can use the Style Manager in SAS Enterprise Guide to easily make modifications to existing styles. The Style Manager uses a point and click interface for selecting style attributes including: font size, style and color, background or banner images, and background colors and borders. Styles created in SAS Enterprise Guide can be used both within SAS Enterprise Guide and in programs written using SAS. sas enterprise guide, ods html source 15
67 Producing an Automated Data Dictionary as an RTF File (or a Topic to Bring Up at a Party If You Want to Be Left Alone) Cyndi Williamson Data dictionaries are valuable for programmers and researchers who need to u nderstand and analyze a data set. Unfortunately, there is no PROC DATADICT in SAS. This paper includes SAS code to produce a basic data dictionary as an RTF file. The code presented is intended to fulfill 90% of your data dictionary needs. However, we all know that the hard work is in the other 10%. This paper includes some examples of modifications to the basic data dictionary code to illustrate how to make changes to meet your needs. The code in this paper was developed using SAS for Windows (version 9.1 ). Some of the "basic" PROCs (such as CONTENTS, FORMAT, and FREQ) are used. ODS statements and the MACRO language are used to create the metadata. PROC REPORT and ODS statements are used to generate the data dictionary. This paper is appropriate for beginning SAS users who are 100% satisfied with fulfilling 90% of their data dictionary needs and for intermediate/advanced SAS users. data dictionary, ods rtf, output delivery system, macro definition, proc freq, proc step source 9
68 Quick Record Lookup without an Index Paul A. Choate Would you like to find one record out of a billion in the time it takes to read thirty records? Does your sorted data not have an index? This paper demonstrates how to code a simple, yet extremely powerful binary tree search that can be used on any sorted SAS dataset. proc sql, unique key, proc step source 4
69 RDBMS Setup and Authentication in SAS 9 Paresh M. Patel,
Richard Kerwin
The SAS V9 uses a single sign-on model that enables user's access to a variety of computing resources, including various RDBMS like Oracle, Teradata, and Sybase, without repeated prompting for user IDs and passwords. After initial authentication to the Metadata Server, additional authentication can occur when a request is received from the client to retrieve data from external RDBMS resources. It is common practice in SAS 9 to have a group login for such requests, but using that scenario undermines the database securities set up by DBA's, can violate Sarbanes -Oxley rules, and disallows individual activity to be traced back to the user. It is always preferable to access the RDBMS through Interactive login rather then shared credentials, and if your RDBMS contains data of a sensitive nature, it is required. sas enterprise guide, sas 9, proc sql, data standard source 9
70 Recreating the SELECTION=SCORE Model Specification with the BEST=n Effect Selection Option for PROC SURVEYLOGISTIC Sara R. Adams,
David R. Mink,
Dave P. Miller
The SURVEYLOGISTIC procedure in SAS 9 provides a way to perform logistic regression with survey data. However, some options frequently used with the LOGISTIC procedure, such as stepwise and score model selection, were not included in PROC SURVEYLOGISTIC. One such option is SELECTION=SCORE BEST=n, which is used to identify the best subsets of covariates, allowing the user to select the number of models displayed for each model size with the highest score chi-square statistics. Two methods are described here for recreating this procedure option in PROC SURVEYLOGISTIC. The first method employs macros that run PROC SURVEYLOGISTIC once for each combination of covariates; for example, there are 10,660 possible combinations of 3 covariates from a candidate set of 41 variables, resulting in 10,660 runs of PROC SURVEYLOGISTIC. The macro call is nested within multiple DO loops. ODS is used to output the statistic of interest. do loop, proc surveylogistic, proc step, proc logistic, logistic distribution, data step, nominal variable, interval variable, best subsets, feature selection, regression analysis, likelihood function, response variable, macro variable, macro loop source 8
71 Revisiting DDE: An Updated Macro for Exporting SAS into Custom-Formatted Excel Spreadsheets: Part I - Usage and Examples Nathaniel Derby There are a number of ways to export data from SAS R⃝ into Microsoft R⃝ EXCEL R⃝. However, very few allow for exporting into custom-formatted spreadsheets such as those demanded for specific reports, in which explicit attributes such as font sizes and column widths are required. T raditionally , Dynamic Data Exchange (DDE) was the only way to do this. Now there are newer methods for this which are considered superior, and DDE is thought to be obsolete. Part I ("Usage and Examples") argues that DDE is in fact far from obsolete, that it outperforms the newer methods in some cases that often arise in practice. Furthermore, Parts I and II offer an accessible, flexible and modifiable macro which exports data from SAS into custom-formatted EXCEL using DDE. The macro extends the functionality of a previously published macro and addresses some criticisms of DDE in general. Using this macro requires no knowledge of DDE programming and thus brings the full power of DDE to any PC SAS user. excel, macro variable source 11
72 Revisiting DDE: An Updated Macro for Exporting SAS into Custom-Formatted Excel Spreadsheets: Part II - Programming Details Nathaniel Derby There are a number of ways to export data from SAS R⃝ into Microsoft R⃝ EXCEL R⃝. However, very few allow for exporting into custom-formatted spreadsheets such as those demanded for specific reports, in which explicit attributes such as font sizes and column widths are required. T raditionally , Dynamic Data Exchange (DDE) was the only way to do this. Now there are newer methods for this which are considered superior, and DDE is thought to be obsolete. Part I ("Usage and Examples") argues that DDE is in fact far from obsolete, that it outperforms the newer methods in some cases that often arise in practice. Furthermore, Parts I and II offer an accessible, flexible and modifiable macro which exports data from SAS into custom-formatted EXCEL using DDE. The macro extends the functionality of a previously published macro and addresses some criticisms of DDE in general. Using this macro requires no knowledge of DDE programming and thus brings the full power of DDE to any PC SAS user. excel, macro definition, proc sql, macro variable, %if-%then-%else source 10
73 SAS and Plug-Ins, Extensibility, Scalability and Execution Tracing in the SAS Environment; A SAS Developer's Approach in Applying Web Development Concepts in SAS Joe Perry sas programming, libname statement, missing value, %if-%then-%else source 11
74 SAS DICTIONARY: Step by Step Patrick Thornton This paper offers a step by step visual review of SAS 9.1 DICTIONARY tables for the beginning to intermediate SAS user who is generally unfamiliar with PROC SQL and macro programming. The content of the DICTIONARY tables, such as data set names, variable names, labels, and types, as well as external file and library paths, is visually explored using common procedures and SASHELP views. The paper demonstrates that DICTIONARY is accessible and valuable to beginning SAS users, reviews in plain terms many uses of DICTIONARY, shows some alternative techniques for obtaining metadata when applicable, and directs users to papers that featured more advanced techniques for using DICTIONARY. proc step, proc print, sashelp, data step, proc contents, dictionary tables, macro variable, proc report, work library, excel, proc sql, where statement, options statement, libname statement, proc sort, proc tabulate, call execute, filename statement, proc format, sas output, macro definition, index source 20
75 SAS ODS Technology for Today's Decision Makers Sunil Kumar Gupta Have you ever wondered why there has been so much excitement about ODS ever since it was introduced? How does ODS significantly enhance the presentation quality of reports and create files that were never before possible from SAS? Have you ever thought about how ODS can directly improve your daily activities and what it actually has to offer you as a programmer, statistician or manager? If you have ever had any of these questions about ODS, then this presentation is for you because it provides something for everyone at all levels. As a programmer, you can now create most any file types directly from SAS. In addition, the level of control and flexibility to format the output enables a higher degree of customization. As a statistician, you will want to take advantage of ODS for more efficient data analysis. The tools available in ODS facilitate multiple iterations of an analysis and ease of locating significant results. proc step, proc tabulate, proc print, excel, proc report, proc univariate, macro variable source 15
76 SAS Styles ... ODS, Right? No Programming! Discover a Professional SAS Programming Style That Will Last a Career Joe Perry sas programming, sas programmer source 5
77 SAS Web Report Studio - Enabling Flexible Reporting for End-Users Kevin Davidson SAS Web Report Studio is a web reporting tool that allows end-users to develop, run, and share reports utilizing an intuitive interface. As the name implies, end-users only need a web browser to develop and run the reports. This paper will discuss features, limitations, server requirements, security options, and provide some practical how-to tips. excel, sas management console source 6
78 SASHELP Provides Zipcodes David Fickbohm SAS provides many useful files in SASHELP. One of the less well known files is SASHELP.ZIPCODE that ships with SAS. This paper will discuss uses for this file. Data and programming resources provides by SAS and other sources will be highlighted. Many examples of how this file can be used to make your life easier will be shown. sashelp, sample source 4
79 Secret Sequel: Keeping Your Password Away From the LOG Paul D. Sherman,
Arthur L. Carpenter
Passwords are things not to be shared. As good SAS programmers we don't hard-code our passwords in our programs, but keep them in separate files or macro variables. However this is not enough! Unfortunately the casual (or malicious) user can "turn on" macro debugging utilities like MPRINT, MLOGIC or SYMBOLGEN and literally read our password right from the LOG, in plain view. This paper presents a series of simple methods to keeping your secret password secret when accessing remote databases with macro variable, proc sql, proc step, dataset, symbol table, create table, select, global symbol table, macro facility, where statement, macro debugging, macro definition source 10
80 Simulating Student Responses Based on a Nominal Response Model Angela Austin This paper describes a process and coding used to generate simulated student response data based on a nominal response model (Bock, R.D., 1972) using previously estimated student thetas and item parameters. The thetas and parameters are used to generate responses for 30 students on 40 multiple choice items with 4 answer choices. The probability of a student at each theta level choosing each possible answer is calculated, and the simulated responses are generated based on the probabilities. SAS features used are array processing, do loops, PROC TRANSPOSE, and call rantbl. do loop, proc transpose source 6
81 Skinny to Fat - In Search of the "Ideal" Data Set Jeanina M. Worden Imagine if you will, a data manager's table, one that is tall, skinny, and beautifully normalized. It's the super model of data and can easily be maintained with a healthy diet of DATA steps. But when analyzing data you might find the ideal lends more towards a different "model", specifically short and fat tables. With SAS, given a "tall" table with numerous observations for a patient, it can be difficult to analyze data between rows. While creating a "short" dataset with all observations for a patient in one row can be accomplished with PROC TRANSPOSE, in multivariable datasets the number of TRANSPOSE statements can quickly become too much of a good thing. In this paper a macro is discussed that uses a dataset created from DICTIONARY.COLUMNS and CALL SYMPUT to identify and loop through each variable in the original dataset creating variable specific datasets for each one. Then the new datasets are merged together thus transforming your data from "skinny" to "fat". call symput, proc transpose, proc step, macro variable, dictionary tables, proc sql source 7
82 Statistical Inference Illustrated Richard R. Allen This is a basic statistical tutorial illustrating concepts of statistical inference on a single sample, including the Central Limit Theorem, Estimation, Confidence Intervals, Hypothesis Testing and Power. SAS PROC SURVEYSELECT will be used to generate samples from various populations to illustrate these concepts graphically and conceptually. sample, sample size, null hypothesis, central limit theorem, confidence interval, parameter, alternative hypothesis, binomial distribution, standard deviation, normal distribution, type i error, type ii error, degrees of freedom, hypothesis testing, inferential statistics source 19
83 Survival Analysis Plots Using SAS ODS Graphics Lida Gharibvand,
George C. J. Fernandez
Survival analysis involves the modeling of time-to-event data whereby death or failure is considered an "event". The graphic presentation of survival analysis is a significant tool which facilitates clear understanding of the underlying events. Two SAS procedures, LIFETEST and PHREG can generate survival analysis plots using the ODS graphics option in version 9.1.3. In this paper, we will demonstrate the features of estimated hazard function, survival function, and cumulative martingale residual plots using ODS graphics. In clinical trials, identifying potential outlier individuals who 'died far too early' or 'lived far too long' as compared to what the fitted model predicts is useful for successful model development. The cumulative residuals from PROC PHREG are used to investigate functional form error of covariate and validates of the proportion hazard function. Methods to identify outliers are commonly based on Cox regression residuals such as martingale and deviance residuals. proc step, survival analysis, outlier, proc phreg, regression analysis, proc lifereg, sample, likelihood function, hazard function, proc gplot, proc sgplot, survival function, proc reg source 10
84 Tap Into the Power of Formats Nikki M. Carroll The FORMAT procedure could possibly be the most underutilized, yet most powerful tool in SAS. The FORMAT procedure provides a straightforward way to map one value into another and change how information is displayed. There are many pre-defined formats included in the Base SAS product, but users can also define their own formats to create new variables, recode data, transform data for tabulation and reporting, use overlapping ranges of values and more. This paper will present an introduction to formats and PROC FORMAT and how users can tap into its power. proc step, proc format, proc freq, sas base, char., sysdate9, lookup, libname statement, missing value, proc print, user-defined format, format statement, options statement source 12
85 The Output Delivery System (ODS) from Scratch Kevin D. Smith The Output Delivery System (ODS) is a great way to move beyond reports that just use the listing output. Using ODS, you can generate reports in formats such as HTML, XML, PDF, PostScript, RTF, and Microsoft EXCEL. This paper tells you what you need to know to generate reports with ODS, from scratch. You'll learn how to generate multiple output formats, simultaneously; how to change the look of your report using styles; how to add text passages; and other "neat" tips (that is, helpful information). proc step, output delivery system, proc template, proc contents, excel, sas output, sample, ods html, select, ods listing source 14
86 The Power of the BY Statement Toby Dunn,
Paul A. Choate
by group processing, proc step, proc sql, key, sas programmer, do loop, update statement, group by, proc print, dataset, set statement, proc freq, merge statement, proc means, conditional do loop, output, class variable source 16
87 The SORT Procedure: Beyond the Basics David Fickbohm The SORT procedure is a very useful procedure with many options that are often overlooked. There are many options that you can use in both a DATA STEP as well as in the SORT procedure, eliminating the need for extra data steps. I will explain these options in detail, showing examples of how to use them. All examples shown were done in SAS systems for PCs version 9.1.3. proc sort, proc step, obs, rename statement, by group processing, where statement, keep statement, firstobs, constraint, label statement source 7
88 The TRANSPOSE Procedure or How to Turn your Data Around David Fickbohm Many times we need to take our data and turn it around. One of the reasons 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 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 this, 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, missing value, output source 10
89 The Use of Propensity Scores and Instrumental Variable Methods to Adjust For Treatment Selection Bias R. Scott Leslie Observational studies that lack randomization of subjects into treatment groups must address selection bias to properly estimate the effect of treatment. This paper explores a propensity scoring (PS) method and instrumental variable (IV) method of controlling for treatment selection bias. Included is a discussion of the methods, the advantages and disadvantages of the two methods as well as a comparison of results when applied to a study that evaluates the effect of therapy regimen on medication adherence. The LOGISTIC procedure is used to create propensity scores and the QLIM procedure in SAS/ETS is used to conduct instrumental variable analysis. propensity score, instrumental variables, logistic distribution, response variable, proc logistic, estimate, regression analysis, proc step, treatment effect source 8
90 The XMLmap and the DATA Step programmer Timothy A. Kenney Knowledge of how to create an XMLmap and how it replaces standard SAS statements used in a DATA STEP will allow the BASE SAS programmer flexibility in dealing with XML file submissions with unusual characteristics. This presentation will introduce basic XML concepts to the audience, and demonstrate the relationship between the XMLmap and the attributes of the SAS data base produced. infile statement, dataset source 7
91 They Were Our Dreams - Tables and Graphics for Survival Analysis using ODS Wei Cheng Survival analysis is widely used to compare the survival distributions, to predict the occurrence and timing of events. The median survival time with confidence intervals, survival rate with confidence intervals, number and percentage of events observed and censoring, number of subjects at risk, hazard ratio, and the p-Value need to be pulled out from the SAS output. The SAS Output Delivery System (ODS) in SAS/STAT, especially the ODS Statistical Graphics in SAS 9, greatly enhances the ability to manage the statistical output. This paper presents how to create summary tables and statistical graphics for survival analysis using the ODS output by PROC LIFETEST and PROC PHREG. survival analysis, proc step, confidence interval, proc sgplot, hazard ratio, proc phreg, proc means, sas 9, survival function, macro call source 13
92 Time Series Cross Sectional Analysis of Total Nitrogen Concentration in Truckee River, Nevada Using SAS Anpalaki J. Ragavan Spatial variation in water quality is a key factor in non-point source pollution control studies. In this research time series cross sectional regression (TSCS) of total nitrogen concentration (TN) in the Truckee River in Nevada was performed using the time series cross sectional regression capabilities provided with TSCSREG and MIXED and NLMIXED procedures in SAS. Variations of TN sampled over six sites were modeled as a function of total nitrate nitrogen, total ammonia nitrogen, stream flow, seasonality, man-made intervention, and dissolved oxygen. Non-linear autocorrelations were detected in the data. Compound symmetry error structure was found superior in mixed models to unstructured, autoregressive and exponential error structures (Pr>ChiSq <0.0001). time series analysis, regression analysis, proc mixed, cross-sectional data, covariance, proc step, time series data, predictor variable, estimate, missing value, covariance structure, proc nlmixed, unit root, correlation, interaction effect, response variable, imputation, likelihood function, proc calis, compound symmetry, multiple imputation, proc mi, autocorrelation, data science, histogram, sample source 11
93 Time to Take the Wheel: A Hands-On Introduction to SAS Programming Casey Cantrell This workshop is intended to give the new programmer hands-on experience working with SAS. Although we will use tools available in the SAS windowing environment, the workshop will address basics common to SAS running on all operating systems. Topics include how to read data into SAS, how to work with data in SAS, and how to extract information from a SAS system file. Where applicable, we will demonstrate both programming and graphical methods to accomplish these tasks. proc step, by group processing, proc print, proc freq, proc univariate, proc contents, filename statement, infile statement, proc sort, sashelp source 20
94 Tips and Tricks to Reduce Typing SAS Code 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, txt, proc sql, proc step source 9
95 Use of Selected Third Party XML Tools in Conjunction with the Importing, Exporting and Manipulation of XML Files within the SAS System Don Hurst This presentation shows how to get XML files into SAS and reviews SAS and non-SAS tools for manipulating XML files, including the XML Mapper, Altova XML Spy, oXygen XML Editor, and Exchanger XML Lite. It covers XML terminology, importing and exporting XML within the SAS System, and validating XML files with the W3C validation checker. source 39
96 Using Annotate to Create Flowcharts Priya Lakshmi Saradha,
Gurubaran Veeravel
With m ounting significance to the graphi cal presentation of data in diffe rent fo rms i n the pharmaceutical industry, as well as in other industries, the need to create non-traditional graphs (flowcharts, super-imposing different types of graph s, etc.,) has i ncreased in rece nt times. This paper will lay a strong fou ndation for th e creation of flowcharts with the help of the ANNO TATE facility by discussin g the newly devel oped m acro, FLOWA N. FLO WAN can create a h ighly- customized fl owchart with multiple l evels using A NNOTATE macros and function s. Using a dataset as input, FLOWAN can represent various populations in a study or any other type of data in the form of a flowchart. This macro uses very few parameters like, the number of tiers (levels), the number of boxes in each level, the variables to display and the link or predecessor for each of the boxes. The output from this macro will present the data in an innovative way. in=, bar chart, line chart, disposition table, adverse events source 7
97 Using Regression Diagnostics and Clustering Criteria to Uncover ID Errors David J. Pasta,
Eric P. Elkin,
Rory Michaelis
In a large observational study, key patient information was not always recorded accurately at every visit, including the patient identification number, the site, and the date of the visit. Because of the nature of the study, some patients were seen at more than one site the same year (possibly unknown to the other site) or might be seen for some years at one site, drop out, and reappear at the same or a different site some years later. In addition, there are patient ID numbers that appear to be in use by two different individuals simultaneously. With 13 years of data collection and tens of thousands of individuals, we needed an efficient way to detect the most obvious of the ID errors. By evaluating diagnostics resulting from running PROC REG and PROC CLUSTER on height and lung function data, we were able to identify situations where ID errors were likely. outlier, proc step, proc cluster, proc reg, clinical research source 10
98 Using the NPAR1WAY Procedure to Investigate Philanthropy Preference Survey Data Joseph E. Earley,
Kimberly Rodriguez
The authors present the results of using the SAS PROCEDURE NPAR1WAY as well as the nonparametric procedures from JMP 7.0 , in an investigation of survey data concerning anticipated charitable giving. A survey concerning anticipated future charitable donations was conducted during the Spring, 2007 semester at Loyola Marymount University using undergraduate students as the focus of interest. Since ranked data was collected from the survey, numerous nonparametric tests were performed for location and differences across different groups. A multiple regression model was also developed and reported. Both SAS and JMP software were used in the analysis of the survey. Of particular notice is an example of the new Scatterplot 3D graph which is available starting in JMP version 7.0. regression analysis, response variable, proc npar1way, anova, proc step, sample, predictor variable, multiple regression, homoscedasticity, nonparametric test source 7
99 Utility Macros for Enterprise Miner Daniel P. Edstrom Creating custom SAS code for use inside an Enterprise Miner diagram often requires managing variable lists stored as macro variables. This paper outlines two innovative utility macros that can manage these variable lists and help accomplish tasks more easily in Enterprise Miner. The basic form of each macro is given along with an example of its use. These utility macros are easily transportable among different Enterprise Miner diagrams and in Base SAS programs. macro variable, data mining, variable list, macro definition source 5
100 Validation Techniques in Clinical Trails Using SAS Enterprise Guide Venkata R. Darbha SAS programmers in the pharmaceutical industry will find that SAS's Enterprise Guide makes it easier, quicker and efficient in validating SAS data sets, tables, and graphs. This paper presents some of the most commonly used edit checks during validation, using SAS Enterprise Guide. Comparing two data sets, creating summary statistics, creating frequency reports are few of the validation techniques that are addressed besides listing other tips and techniques. Demographic and Medical History example data sets will be used in this presentation. The paper will feature SAS Enterprise Guide version 4.1. sas enterprise guide, data cleaning, proc freq, proc step, clinical data, proc sql, pharmaceutical industry, histogram source 8
101 Wait Wait, Don't Tell Me… You're Using the Wrong Proc! David L. Cassell Statisticians and data analysts frequently have data sets which are difficult to analyze, with characteristics that break the underlying assumptions of the simpler analytical tools. But SAS has tools to handle more complex problems. And, now that SAS has survey analysis procedures, there's no longer a need to pretend that survey samples should be analyzed using non-survey design tools. Now that large databases are commonly sampled for marketing, data mining, and scientific research, the need to use survey analysis procedures is increasing. In this paper, we'll look at several common situations and illustrate how the data are usually analyzed. Then we will show how the data ought to be analyzed using the SAS survey analysis procedures, and what the consequences of choosing the wrong procedures may be. proc step, sample, proc calis, sample weight, proc surveyreg, regression analysis, confidence interval, proc glm, chi-square test, population, proc surveyfreq, proc surveylogistic, proc mixed, proc genmod, proc reg, logistic regression, proc surveymeans, degrees of freedom, logistic distribution, proc means, anova, estimate, random sampling, survey weight, cluster sampling, data science source 11
102 Wake Up and Look at the Log: How to Code a Nag Macro Ann Olmsted We all know we should check the log file after every run, but we don't always do it, especially when we're feeling rushed. What really gets your attention? If it's sound, you're in luck; you can use 'CALL SOUND' to design your very own Nag macro to beep or play a little tune when something needs checking. A sample Nag macro, EXPECT, is presented: it's called within a DATA STEP and has one required parameter, a conditional expression, and two optional parameters, a list of variables whose values are written to the log when the expression is not true, and a cap on the maximum number of little tunes you wish to hear. Suggestions are made for designing and exploiting your own Nag macro, and civilizing it for general use. macro call, proc report, put statement, proc step source 4
103 WHERE vs. IF Statements: Examples in Usage and Differences Sunil Kumar Gupta When programming in SAS, there is almost always more than one way to accomplish a task. Beginning programmers may think that there is no difference between using the WHERE statement and the IF statement to subset your data set. Knowledgeable programmers know that depending on the situation, sometimes one statement is more appropriate than the other. For example, if your subset condition includes automatic variables or new variables created within the DATA STEP, then you must use the IF statement instead of the WHERE statement. This paper shows you how and when to apply the WHERE and IF statements to get correct and reliable results. It also reviews the similarities as well as the differences between these two SAS programming approaches. Note that this paper does not focus on comparing the performance differences between the WHERE and IF statements. if-then-else, where statement, colon modifier, error message, input statement, automatic variable, character variable, dataset source 13
104 Writing a "lean and mean" PROC MEANS: CLASS vs. BY and OUTPUT vs. ODS OUTPUT Eric P. Elkin PROC MEANS is a powerful tool for reducing data from multiple records per unit-of-analysis to one record per unit-of- analysis, especially when summary variables for each unit-of-analysis are needed. For example, a dataset may include multiple clinic visits per patient (i.e., more than one observation per patient). However, a patient-level dataset is needed for analysis that includes derived variables based on the visit-level data (e.g., total number of visits for each patient). There are a few different ways to obtain this patient-level dataset from PROC MEANS. First, the CLASS statement or the BY statement can be used to summarize visit-level data for each patient. Furthermore, a new patient-level dataset can be obtained from either the OUTPUT statement in PROC MEANS or the ODS OUTPUT statement as part of the output delivery system (ODS). proc step, by group processing, output, cpu time source 3
105 Writing Code in SAS Enterprise Guide Susan J. Slaughter,
Lora D. Delwiche
If you are a SAS programmer who has avoided using SAS Enterprise Guide because you think it's only good for point-and-click, then this paper is for you. You may be surprised to learn that SAS Enterprise Guide offers programmers many advantages over Display Manager. We'll show you four different ways to run code, explain how SAS Enterprise Guide can help to organize your work, and discuss issues unique to coding in SAS Enterprise Guide. After reading this paper, you just might decide to make SAS Enterprise Guide your primary coding environment. sas enterprise guide, libname statement, sas programmer, proc step source 19

Back to Conf go 2008 go 2006

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.