HOME QUICK SEARCH AUTHORS KEYWORDS HELP BUGS

WUSS 2008 Papers - Index

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

# Title
×
Authors
×
Abstract
×
Keywords
×
Extras Pages
1 "Table 1" in Scientific Manuscripts; Using PROC REPORT and the ODS System Carter Sevick The ability to combine the power and flexibility of PROC REPORT and the Output Delivery System (ODS) has revolutionized summary reporting and table creation. However, the majority of resources available approach the subject predominantly from a business perspective. Researchers in public health tend to emphasize categorical data over continuous and have a different aesthetic when it comes to overall look and design creating the need for a subtly different skill set and approach. This paper will take the reader through the process of creating a summary table from raw data and presenting the results in RTF format. Summarized data will include a binary exposure stratified by demographic information, and in addition to frequencies, univariate analyses will also be presented. It should be emphasized that this paper is not a discussion of a study, but rather a discussion of data presentation. It will be assumed that the reader has beginning or intermediate experience with SAS . proc report, proc step, chi-square test, ods rtf, output delivery system, proc print source 19
2 A Dynamic Way to Manipulate Longitudinal Data with SAS Nora Ruel,
Arthur X. Li
This paper offers a solution to managing and manipulating a large longitudinal data set, making clever use of the CONTENTS procedure, macro variables created from the CALL SYMPUT routine and RETAIN statements. character variable, call symput source 4
3 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 21
4 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 paper presents core concepts of this powerful language as well as its many applications and is intended for SAS users who desire an 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 construction of simple inner and outer joins. proc sql, proc step, dictionary tables, where statement, select, macro variable, inner join, sas library, sas log, macro call, macro facility, view, create table, group by, order by, right join, work library source 17
5 A Hi-Velocity SAS Coding: Applying Engineering Principles to SAS Programming Tasks Joe Perry Sometimes you manage, or work, on a project that seems, well, impossible to do with the resources available; not enough time, not enough SAS programmers, too complex… not enough of anything or too much of everything to do the SAS programming job within the time and resource constraints! When confronted with the condition of too little time, too few resources and an absolute need to complete a task within those resource constraints, Industrial Engineers in the manufacturing and process industries get to work redesigning the process to work within those new realities they must face. Though no large-scale movement of SAS jobs to off-shore programming houses has yet occurred, the handwriting is already on the wall; compete or die will have to become the SAS programming mantra. The reality is, SAS programming, and programming tasks, could benefit from the industrial engineering techniques used in the manufacturing, process and programming worlds. sas programming, sas programmer source 6
6 A Practical Powerful Version control in SAS projects A rapid, Walk-through Workshop Lorne M. Salter,
Gordon Cumming
Dave Thomas of The Pragmatic Programmer calls version control the super undo button, and much more. Versioning eliminates the proliferation of files named version 2, 3 4 and can help keep development libraries clean and transparent while providing the safety net of a vault (the repository) that safely keeps a record of all earlier states and versions in the development of the project or system. Comments on each step in development are also logged and stored. I have found versioning gives me the security to take the risks that creative, imaginative development sometimes requires, because when it breaks or doesn't meet expectations, I can always go back to an earlier version that does. macro variable, input statement, sas programmer source 8
7 A Sampler of What's New in Base SAS 9.2 Jason Secosky Coding with SAS is easier than ever with SAS 9.2. This paper highlights the top new features and performance improvements in DATA STEP, PROC SQL, and PROC SORT. Included are writing functions with DATA STEP syntax, improved performance when accessing an external database from PROC SQL, more intuitive and culturally acceptable sorting with PROC SORT, and several "Top 10" SASware Ballot items. proc step, proc sql, study day, proc sort, put statement, where statement, proc format, proc fcmp, hash table, do loop, sas function, character variable, sas programmer, macro loop, infile statement, sas log, set statement, sas base, txt, user-defined format, work library, macro definition source 15
8 A Step-by-Step Guide to Survival Analysis Lida Gharibvand Survival analysis involves the modeling of time-to-event data whereby death or failure is considered an "event". The graphical presentation of survival analysis is a significant tool to facilitate a clear understanding of the underlying events. In particular, the graphical presentation of Cox's proportional hazards model using SAS PHREG is important for data exploration in survival analysis. In this paper, we will present a comprehensive set of tools and plots to implement survival analysis and Cox's proportional hazard functions in a step-by-step manner. We will demonstrate the features of SAS PROC LIFEREG, PROC LIFETEST, PROC PHREG, PROC BPHREG, estimated hazard function, survival function, advanced features of PHREG, and selecting the best candidate models in model selection. A method will be outlined to perform all possible subset model selection within user-defined subsets using AIC information criterion. proc step, survival analysis, proc phreg, proc lifereg, hazard function, regression analysis source 16
9 ACCESS-ible SAS Formats and Labels Kathryn Martin Data analysis and presentation in SAS is made much easier by the formatting and labeling of variables, but this can be time-consuming for a large number of variables with numerous response options. Often data values, their corresponding formats, and variable labels are created during the data collection phase of a research project. These formats and labels may be available from a codebook or directly from the database into which data were entered, which can be easily imported into SAS. The purpose of this paper is to demonstrate how variable descriptions and lookup tables from a Microsoft Access database created at the outset of a study can be imported into SAS data sets. These data sets will then be used to automatically write PROC FORMAT code and LABEL and FORMAT statements within the DATA STEP. All code will be presented in a macro designed to assist researchers as they move from the data collection phase to the analysis phase of a study. macro variable, macro function, proc format, dataset, lookup, proc step, macro loop, format statement, label statement, do loop, char., %if-%then-%else, proc sql, macro definition, macro quoting function source 7
10 An Introduction to PERL Regular Expressions in SAS James J. Van Campen Regular expressions are a powerful technique for se arching and manipulating text data. This paper intr oduces the concept of regular expressions and presents several SAS functions and call routines for working with t hem. Specifically, PERL regular expression syntax and th e SAS functions for working with PERL regular expressions are discussed. Detailed examples are provided which ill ustrate how to write regular expressions and use th e functions in SAS to find and manipulate a variety of text string s. sas function, data step source 4
11 An Introduction to SAS Character Functions Ronald P. Cody character variable, substr function, compress function, length statement, character functions, input statement, verify source 17
12 An Optimal Way to Import Excel Worksheets into PC SAS Nathaniel Derby There are many ways to import data from Microsoft R⃝ EXCEL R⃝ into PC SAS R⃝, and the "optimal" way often depends upon the project and the programmer's preference. However, by adhering to clear definitions of three generally desirable properties (precision, flexibility and automation), we can agree upon a definition of "optimal". We then propose a solution that fulfills these three properties. This is most appropriate for situations where data from a large set of EXCEL worksheets is periodically loaded into SAS, where each EXCEL worksheet has the same structure from load to load (although the worksheets can have different structures from each other). This proposed solution involves an easily used macro which works on all versions of PC SAS, Windows R⃝ and EXCEL, and which is freely available for downloading. Keywords: SAS, DDE, EXCEL, Export, Import, X4ML. This paper is an excerpt1 from Derby (2008b), which may be updated and can be downloaded for more information. excel, macro variable source 10
13 An Unaccusative Categorization of 'Swarm' Type Verbs in Spanish: An Application of SAS to Linguistic Research Roberto Mayoral Hernández,
Lindsey N. Chen
The universal classification of intransitive verbs into two classes - unaccusatives and unergatives - plays a central role in modern linguistics as it provides information about the word order and other fundamental properties of verbs. In particular, there exists a controversial type of verbs, the 'swarm' type, which has been classified as both unaccusative (Perlmutter 1978) and unergative (Levin & Rappaport 1995). In this paper, SAS statistical procedures were employed to provide evidence from Spanish that shows that the 'swarm' type should be categorized as unaccusative rather than unergative. In order to determine the best classification, data from the corpus CREA (Corpus de Referencia del Español Actual) was extracted and via SAS PROC FREQ, results from chi-square tests show that these verbs display a high percentage of postverbal subjects while unergatives have a higher percentage of preverbal subjects. proc freq, data science source 6
14 Application of Segmented Regression Analysis to the Kaiser Permanente Colorado Critical Drug Interaction Program Nikki M. Carroll Failure to detect significant drug interactions may result in adverse outcomes. While proper screening and management of drug interactions can prevent the majority of adverse events, studies indicate that current practice is suboptimal. In the last quarter of 2001, physicians and pharmacists in Kaiser Permanente Colorado (KPCO) developed an electronic critical drug interaction alert program. Electronic screening was coupled with active intervention to prevent dispensing of critically interacting drug combinations. Rates of critical drug interactions were collected 20 months pre-intervention and 37 months post-intervention. Success of the intervention was based on the changes in the rates of critical drug interactions and statistically evaluated by segmented regression analysis (a powerful statistical method for estimating intervention effects in interrupted time series). This paper shows the application of segmented regression analysis to the critical drug interaction program. regression analysis, time series analysis, interrupted time series, correlation, proc autoreg, residual, proc step, unit root source 8
15 Automating the process of choosing among highly correlated covariates for multivariable logistic regression Michael C. Doherty In observational studies, there can be significant differences between the characteristics of a treatment and a control group. To reduce the potential for confounding, controls are matched to members of the treatment group using propensity scores estimated by multivariable logistic regression analyses. Propensity score modeling can involve the inclusion of hundreds of covariates including patient diagnoses, medical procedures, and medication exposures, highly correlated variables can complicate the multivariable logistic regression. This paper describes a statistical method to remove the variables automatically, with little input from the programmer. By utilizing the R statistic output from PROC CORR, followed by a MACRO to select which variables to keep and which ones to remove from the model, the programmer can save time in selecting the covariates to be used in the model statement in PROC REG. logistic regression, propensity score, regression analysis, propensity modeling, logistic distribution, proc step source 7
16 Beef Up Your Career: Job Survival Steps During This Economic Recession Raoul A. Bernal Given the ongoing downturn in the economy and the latest trends in different industries, statistical programmers, like other professionals, are not immune to layoffs and concerns about job security. Companies big and small have either downsized or folded up altogether. Given these recent trends, statistical programmers should pursue certain steps to "recession-proof" their careers to help weather this economic trend, however long this lasts. This presentation will outline practical and often overlooked steps and suggestions, both short-term and long-term, to increase one's chances of staying on the job or landing the next position when a layoff or resignation becomes inevitable. Often the difference between surviving a layoff and having to find another job could be due to a simple opportunity lost by not following some of the practical suggestions. job security, statistical programmer source 4
17 Building and Using User Defined Formats Arthur L. Carpenter Formats are powerful tools within the SAS System. They can be used to change how information is brought into SAS, how it is displayed, and can even be used to reshape the data itself. The Base SAS product comes with a great many predefined formats and it is even possible for you to create your own specialized formats. This paper will very briefly review the use of formats in general and will then cover a number of aspects dealing with user generated formats. Since formats themselves have a number of uses that are not at first apparent to the new user, we will also look at some of the broader application of formats. Topics include; building formats from data sets, using picture formats, transformations using formats, value translations, and using formats to perform table look-ups. proc format, proc step source 10
18 Building Effective SAS Indexes using Short and Distinct Keys, Covered Queries and Clustered Indexes Kirk Paul Lafler An index is an important component that helps improve database performance by accessing a specific observation or set of observations when using a WHERE clause. To help achieve optimal database performance, SAS users should learn a few simple, and basic, rules associated with building efficient indexes. This presentation examines rules to help users achieve high-performing SAS-based applications. Attendees learn techniques related to constructing short and distinct keys, developing covered queries, and constructing all the information that is needed by a query in a clustered index. where statement, proc sql, index, proc step, sas library, proc freq, dictionary tables source 8
19 Calculating Medication Compliance, Adherence, and Persistence in Administrative Pharmacy Claims Databases R. Scott Leslie Compliance, adherence, and persistence are outcomes easily measured in pharmacy claims databases. However, these measures are often interchanged and calculated differently. The research community should settle on a common set of definitions and methods. This paper briefly explains compliance and persistence terminology and methods commonly used in observational pharmacy claims research and furthermore presents a preferred manner adopted by the Medication Compliance and Persistence Special Interest Group of ISPOR, the International Society for Pharmacoeconomics and Outcomes Research. do loop, binary variable, proc step, proc sql source 8
20 Clinical Programming at a Crossroads: Meeting Today's Challenges and Preparing for Tomorrow David J. Polus Consulting in the Clinical Programming world is mor e competitive than ever. The demand for a good programmer with clinical knowledge is always increasing. At times, it seems the ideal candidate for a position doesn't exist anywhere. What makes clinical programming so different, anyway? This paper will review how to recruit, identify and hire the best candidates for the position. Once they're in the fold, mentoring and training become the keys to long term retention. Personal growth and a sense of belonging ensure a happy cons ultant, and a happier client. Finally, there are times when you have to perform d amage control with a particular consultant. A well designed and executed Action Plan can help strengthen your relationship with both the client and the consultant. clinical programming, sample source 5
21 Combined Line - Double Bubbles - Pie chart Alexandre Zolotovitski This paper summarizes work done to develop a new type of chart for visualizing time series data. In the problem that led to this chart, we had to visualize monthly time series data on the production of two modifications of a product. Each of these modifications was also classified as "Good" and "Bad", and the percentage of the product categorized as bad was of most interest. We solved the problem by creation of combined line - double bubbles - pie chart in SAS, using annotated PROC GPLOT. This chart combines longitudinal and cross-sectional representation of data. The program was implemented in SAS Internet server and used SAS/INTRNET and SAS/GRAPH. time series data, time series analysis, proc step, proc gplot, character variable source 5
22 Comparing efficiency of cross validated partial least squares regression and ridge regression models in predicting spatial variability of total nitrogen concentration in Truckee River, Nevada. Anpalaki J. Ragavan Multiple linear regression (MLR) requires controllable predictor variables (factors) that are few in number, non- collinear, and have well defined relationship to response variables. When any of these three conditions are violated MLR will be inappropriate. On the other hand sensitivity of an unbiased MLR model to noise, sampling and spatial variability (this sensitivity causes regression models to be ill-posed) can be largely reduced by reducing error variance by deliberately introducing a small amount of bias into the model. Spatial variability of monthly total nitrogen concentration (TN) time series as a function of seven independent variables, from six monitoring sites over the period from January 1997 to December 2004, collected from Truckee River, Nevada was modeled through partial least squares (PLS) and ridge regression modeling respectively, using PROC PLS (PLS method, RLGW algorithm and split cross validation), and PROC REG (ridge coefficient [ ] =0.8) in SAS. regression analysis, predictor variable, ridge regression, time series analysis, data cleaning, estimate, missing value, proc step, first difference, response variable, proc reg, multicollinearity, correlation, influential observation, multiple regression, pearson correlation, proc calis, covariance, box plot, scatter plot, sample, residual, monte carlo, proc gplot source 13
23 Computing power and sample size using the using the SAS System Jimmy Thomas Efird Determining the correct sample size for a study to assure adequate power to detect statistical significance is a vital process in the design phase of a planned research protocol. Using too many participants in a study is expensive and risks unnecessary exposure of participants to experimental conditions or procedures. Similarly, if a study is under powered it will be difficult to make statistically valid conclusions regarding the possible benefit of a new diagnostic, preventive, or therapeutic procedure, device, or service. This paper will cover the essentials needed to determine power and sample size for a variety of applied study designs. sample, sample size source 5
24 Confidence Intervals By Linear or Loglog: You Can Have Them All! PROC LIFETEST In SAS v. 8 vs. v. 9 Daniel DiPrimeo,
Jonathan M. Squire,
Yucheng Shiu,
Minta Wu,
Daisy Wang
PROC LIFETEST is a SAS procedure used to estimate the survivor function in efficacy analyses for censored outcomes. The common use of the LIFETEST procedure includes survival, progression-free survival, and duration of response. Typically, the survivorship estimates and associated pointwise 95% confidence intervals (CI) are presented by time point. In SAS 8, these CIs can be obtained via the OUTSURV= option using a linear statistical model. However, the CIs generated by linear model are judged to be not as specific as other methods and must often be truncated to stay within the reasonable (0,1) interval appropriate for a probability. As a result, SAS 9 has changed the default model from linear to loglog, using the same OUTSURV= option. In addition to loglog model, SAS 9 provides various options such as linear, log, logit and arcsine-square root. By contrast, SAS 8 does not provide any flexibility and the linear model is the only choice available. sas 9, sample, confidence interval, proc step, macro definition, %if-%then-%else source 5
25 Creating Your Own Worksheet Formats in exportToXL Nathaniel Derby %exportToXL is a freely available SAS R⃝ macro which allows the user to create custom-formatted EXCEL R⃝ worksheets, using Dynamic Data Exchange (DDE). It works on all versions of PC Base SAS, Windows, and EXCEL. Using this macro, the user can create custom-formatted worksheets by either exporting the SAS data onto a pre-formatted EXCEL worksheet, or by using a worksheet format. This is a set of commands which tells EXCEL how to format certain aspects of a worksheet such as font sizes and column widths. While %exportToXL comes with a few different pre-programmed worksheet formats, any programmer with some basic knowledge of the SAS macro language and DDE commands can make his/her own. This paper is a tutorial about how to do just that. Keywords: SAS, DDE, EXCEL, Export, X4ML. excel, macro facility, macro variable, macro definition source 10
26 Data Dependent Highlighting in Excel - Let Your Data Shine Brian Ramos This paper introduces a method of using ODS (Output Delivery System) and PROC REPORT to modify the default output to create an MS EXCEL file with user defined highlighted cells. This method enables the user to easily highlight certain values using rules that are data dependent. You do not have to settle for highlighting values if they fall within a set range but you are able to highlight values if they fall within a variable, user-defined range. proc step, proc report, proc format, excel source 5
27 Database Vocabulary: Is Your Data Set a Dimension (LookUp) Table, a Fact Table or a Report? Ronald J. Fehd fact table, proc freq, proc step, key, relational database, dimension table, foreign key source 8
28 Demystifying Popular SAS Procedures. Lisa Smith SAS procedures are the workhorse of the SAS programming language; therefore, a comprehensive understanding of the basic PROC statements is crucial when analyzing and visualizing SAS data. This presentation will highlight the basic SAS procedures that 1) create, manage, and display SAS data (e.g., PROC IMPORT, PROC EXPORT, PROC CONTENTS, PROC PRINT, PROC SORT); 2) perform univaria te, bivariate, and multivar iate analyses (e.g., PROC FREQ, PROC UNIVARIATE, PROC MEANS, PROC LOGISTIC); and/or 3) generate tables and figures (e.g., , PROC CHART, PROC TABULATE). In addition, this session will include an introduction to the output delivery system (ODS), a powerful tool for creating output in various formats, in cluding hypertext markup language (HTML), rich text format (RTF) and MS EXCEL (XLS). proc step, proc freq, output delivery system, class variable, binary variable, dataset, proc print, proc tabulate, odds ratio, relative risk, logistic distribution, regression analysis, proc sort, proc logistic source 17
29 Demystifying PROC SQL Join Algorithms Kirk Paul Lafler When it comes to performing PROC SQL joins, users supply the names of the tables for joining along with the join conditions, and the PROC SQL optimizer determines which of the available join algorithms to use for performing the join operation. Attendees explore nested loop joins, merge joins, index joins, and hash join algorithms along with selective options to control processing. This presentation illustrates the various join algorithms; join processes including Cartesian Product joins, equijoins, many table joins, and outer joins. proc sql, where statement, proc step, inner join, data merging, right join source 6
30 Documenting SAS Macro Programs using CATALOGS Patrick Thornton Do you have a lot of macro programs, and sometimes forget their purpose, parameters, and/or what the parameters control? If so, more and available documentation may be the answer. This paper demonstrates the DES= option of a macro program that allows up to a 256 character description to be saved for each macro program. The paper also shows that names and descriptions of macro programs may be listed with a simple PROC PRINT or REPORT using SASHELP.VCATALG view. The SAS System updates a record in DICTIONARY.CATALOGS each time a macro program is compiled, and VCATALG view provides easy access to the metadata. In addition, if you would like to store descriptions for each macro program that are longer than 256 characters, this paper describes a strategy and includes two macro programs that enable longer descriptions to be stored and listed. proc step, proc report, macro variable source 5
31 E Pluribus Unum: How to Obtain One Observation from Multiple Observations by Limiting, Reshaping, and Summarizing Data Eric P. Elkin It is common for a SAS programmer to need to reduce a data set to one observation per identifier from multiple observations per identifier. For example, the programmer may need to create a data set containing one record per patient from a data set containing one record per patient per medical visit, or create one record per customer from a data set with one record per customer per sales transaction. There are many possible strategies to achieve this programming goal. Some solutions are accomplished through the DATA STEP (use of FIRST./LAST. processing, the retain statement, or a SET statement within a do-loop) and some through SAS procedures (PROC SORT, PROC TRANSPOSE, and PROC MEANS). Some of these strategies limit the data included in the output data set; some reshape the data from long-and-narrow to short-and-wide; and some aggregate the data through summary statistics. missing value, proc step, retain, proc transpose, proc means, proc sort, sum, set statement, sample source 13
32 Easy Ways to get SAS Enterprise Guide to Send Tables and Graphs to Microsoft Office Suite, Without Writing Code! William E. Benjamin Jr. This paper will demonstrate several ways to output tables, graphs, databases, and files that are in formats that Microsoft products are able to process. All of these methods require no programming, and just use little known or hidden techniques that are available directly from the SAS Enterprise Guide user interface. The focus will be directly on how a new user to SAS Enterprise Guide can prepare and deliver data to the Microsoft Office (MS Office) suite of tools. sas enterprise guide, txt, excel, cdisc source 19
33 Efficient Statistical Programming? - Let's Work on Those Data Steps First Keiko I. Powers When we statisticians handle large-scale time-consuming statistical analysis runs, setting up SAS codes for efficient processing is critical for the overall project success. In preparing a SAS program, it is obviously very important to ensure that the selection and the setup for the statistical PROCs are correct. When the overall run-time efficiency of these programs is concerned, however, equally or often more important is how the SAS data steps are set up for the subsequent statistical analysis steps. Creating temporary partitioned data sets for various analysis steps can often lead to an unnecessary long run time. If a temporary partitioned data set is used for only one statistical PROC, it is often the case that the parenthesis-based WHERE coding scheme - e.g., PROC REG DATA=A(WHERE = (FLAG = 1)); - works more efficiently, reducing the overall run time substantially. proc step, cpu time, data science, where statement, data step, data wrangling, proc printto, sample size, sample source 4
34 Efficiently Handle Lists of Items using the SAS Macro Language - Save Time and Reduce Errors Jerry Tsai Processing a data set with many variables often req uires repeating the same editing task over and over , which creates many opportunities for coding errors. But w ith savvy use of the macro language, you can manipu late lists of variables or lists of literals robustly and with le ss error. What's more- by using %QSYSFUNC and the T RANWRD functions in tandem, you can swiftly move from test ing your code on one item of a list to implementing proven code on all the items on the list. This paper shows how to use the macro language to work with lists in SAS and provides specific examples of macro code that will help prog rammers working with lists save time and reduce err ors. macro variable, macro facility, macro function, proc step, macro quoting function, proc means, macro call, proc print, tranwrd function, macro definition source 8
35 Evaluation of a Hospice Care Referral Program Using Cox Proportional Hazards Model Lida Gharibvand,
Daniel R. Jeske,
Solomon Liao
This paper will discuss the data collected about patients discharged from a geropsychiatry unit and their post-discharge survival rates. First, we will show methods to analyze the data arising from studies where the response variable is the length of time taken to reach a certain end-point, often death. The Kaplan-Meier methods, log rank test and Cox's proportional hazards model will be demonstrated. We will attempt to identify a small number of key risk factors with all possible two-factor interactions associated with the survival of patients after discharge and referral to hospice. We will also estimate the survival function for each individual with given significant factors. This will be accomplished by analyzing censored survival data using Cox's proportional hazards model and through implementation of the PROC PHREG procedure in SAS. Also, we will attempt to identify the significant risk factors among the group that was not referred to hospice. proc phreg, hazard function, outlier, proc step, proportional hazards assumption, likelihood function, regression analysis, survival function, survival analysis, sample, hazard ratio, influential observation, rank test, null hypothesis, proc reg, predictor variable, data science, stepwise selection, time-dependent covariate, censoring source 16
36 Exploring the Undocumented PROC SQL _METHOD Option Kirk Paul Lafler The SQL Procedure contains many powerful and elegant language features for SQL users to take advantage of. This paper explores the _METHOD option as an applications development and tuning tool. Attendees will learn how to use this undocumented and powerful option to better understand and control how a query processes. proc sql, proc step source 2
37 Finite State Machines as a Design Technique for SAS Programs; or, Turing the State of SAS Robert A. Cruz The concepts behind Finite State Machines (FSMs) are introduced, and their operation is shown to be more compatible with SAS than that of traditional procedural programming when processing non-uniform input. A visual representation of FSMs as directed graphs is shown, and an example FSM is drawn. A tabular representation is shown, and its equivalence to the digraph demonstrated along with procedures for converting between the two representations. A simple, real-world problem is described and a procedural program design developed (illustrated by flow-charts and pseudocode). A FSM is designed for the same application, and implemented as a SAS program. This program is contrasted with the traditional procedural approach. The situations for which FSM is a superior design technique are reviewed. conditional do loop, implicit loop source 10
38 Fully "Function"-al: A Brief Tour of Selected SAS Numeric Functions Brenda Beaty From the almost 450 functions available in SAS 9.2, I take you on a brief tour of functions I have found extremely useful, limiting myself to non-character functions. missing value, numeric constant, date variable, sum, variable list, sample, missing function source 8
39 General Methods to Use Special Characters Dennis Gianneschi This paper presents three general methods to use special characters in SAS procedure output as well as one RTF specific method. The methods combine features found in the Windows Character Map Utility, ODS, RTF, and the SAS macro language. Key factors determining the effectiveness of a method are identified. Implementation details such as syntax differences in ODS RTF markup and software bugs in SAS versions 8.2 and 9.1 are discussed. One method uses a macro to encode the special character into a macro variable. Input parameters are unicode and macro variable name. The unicode is the 4-digit code found in the Character Map Utility. The macro variable is then placed in the SAS statement that targets an area of the output: title, footnote, or a column heading. Depending on character chosen, the global cannot be resolved in data displayed in the row, a bug in SAS prior to Version 9.2 deletes from display characters that follow. macro variable, file statement, ods rtf source 6
40 Generating Code with PROC REPORT Jack Hamilton It's a common practice to use SAS code to generate more SAS code based on your data (dynamic code generation). This is often done with the DATA STEP, and sometimes with PROC SQL or the macro language, but there's an additional possibility: PROC REPORT. You can use CALL EXECUTE inside a COMPUTE block in PROC REPORT to generate code which will run after PROC REPORT completes. There are two advantages to this method: you can get a report and generate code at the same time, and you can use PROC REPORT's ORDERing, GROUPing, and ACROSSing capabilities to eliminate the need for extra sorting and grouping steps. proc report, proc step, call execute, cpu time source 8
41 Generic Automated Data Dictionary for any SAS data set or format library Dale Harrington This paper explains how to create an automated data dictionary which will work for any SAS data set or format library. The program produces data field descripti ons, notes, data attributes, value descriptions, an d value frequencies. Program can automatically produce resu lts for both continuous and discrete data fields wi thout specification by the programmer. The program can ha ndle all types of data input: disk data sets, views , and tape files. Presentation includes how to automatically u pdate the dictionary as data input changes, how to incorporate already existing formats into the dictionary, and h ow to leverage information from an existing automat ed data dictionary to produce other data dictionaries. The p rogram requires only simple parameter inputs and wi ll notify the user (via email) when data descriptions are mis sing. dataset, data dictionary, proc step, proc contents, proc freq, libname statement, sample, proc sql source 8
42 Getting SAS to Play Nice With Others: Connecting SAS to Microsoft SQL Server Candice Miller Getting SAS to interact with other databases is often vital to the success of a project, but this can be a problem when SAS and the databases being used are on different platforms. This paper discusses connecting SAS to a Microsoft SQL Server from both PC and Linux environments using SAS/ACCESS and the odbc engine. The paper also discusses the role the LIBNAME Statement and the Pass Through Facility play in this connection. PROC SQL, macro variables, and some basic SQL settings and syntax will be discussed to demonstrate the power of this connection. Finally, UnixODBC and FreeTDS are discussed as third-party tools in getting the Linux environment set up. proc sql, sql server, libname statement, proc step, dataset, odbc connection, inner join, connection string, create table, macro variable, stored procedure, temporary dataset source 6
43 How to Find Answers: Using SAS Resources Ginger Carey,
Helen D. 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 to find answers to your SAS questions. sample, sas base source 17
44 Image is Almost Everything: Displaying Statistics Via ODS R. Scott Leslie After conducting statistical analyses one must find a way to report the results. A simple print of the traditional SAS output can disinterest most readers, especially those not familiar with statistics. The Output Delivery System (ODS) gives one the ability to output results of statistical tests into data tables. With some manipulation and formatting these data tables can be sent to the possible ODS destinations to generate appealing results therefore avoiding manual data entry and/or formatting. This paper offers ways to make a nice presentation of numbers to assist an audience in reading and interpreting results. Examples include using the LOGISTIC and GLM procedures to better display odds ratios and adjusted least-squares means. proc step, ods output, odds ratio, output, proc genmod, proc glm, sas output, data science, confidence interval, estimate, output delivery system, logistic distribution source 5
45 Learning When To Be Discrete: Continuous vs. Categorical Predictors David J. Pasta interval variable, ordinal variable, nominal variable, binary variable, degrees of freedom, harmean source 6
46 List Processing Basics: Creating and Using Lists of Macro Variables Ronald J. Fehd,
Arthur L. Carpenter
macro put, macro variable, proc sql, proc step, macro call, call execute, macro loop, macro definition, %if-%then-%else, output delivery system, do loop, proc report, dictionary tables, data step, create table, proc sort, macro function source 20
47 Looping at a Higher Level - The %for Macro Jim Anderson There is a new looping feature in SAS. It iterates over datasets, value lists, number ranges and macro arrays using the same simple syntax. It can repeat SAS steps in open code, reducing the need for single-call macros. It can generate large and small chunks of code: multiple steps, statements within a step and phrases within a statement. It unifies macro code and non-macro code making it easy to create data-driven programs1. This new SAS looping feature is the %for macro. This paper illustrates a range of SAS coding problems that are solved using the %for macro. Examples of looping over the four kinds of data sources supported are given. The macro source code is included. macro variable, variable list, proc step, %if-%then-%else, macro loop, macro call, sas programming, keyword parameter, %macro parameters, macro definition, macro quoting function, proc sort source 9
48 Macro for Managing Date Variable in Oncology Research Jagannath Ghosh In oncology research, date variables are very important variables for the calculation of overall survival, time to disease progression, progression free survival etc. Most often data m anagement collects both numerical dates and character dates to convey the same information (e.g. randomization date) in order to fix the missing numerical dates in case the character dates exist. Our macro will f ill those missing numerical dates from the character dates where necessary. This macro is suitable for any number of date variables for a specific dat a set and can be used as pharmaceutical data management tool. Another macro will convert character dates into numerical dates based on the separator used. date variable, char. source 4
49 Make Your Tables Pop: Embedding Micrographics in PROC REPORT Output Peter J. Lund It's a very common thing to have a table of information included in a report. It's also very common to have graphics, such as bar charts, in the same report. This paper will look at techniques, available in SAS , to place the graphics right in the tables. The SAS/GRAPH Annotate facility will be used to create small, standalone graphics files. The files can then be placed in a "cell" of a table created by PR OC REPORT. This technique allows you to create tables that draw the reader's eyes to the important information much more quickly than scanning through all the text. proc report, proc step, data step, macro variable source 13
50 Missing by Design: Questionnaire Skip Logic Kathryn A. Valdes The primary purpose of a questionnaire is to gather information needed to answer important research qu estions. Researchers must rely upon the kindness and coopera tion of respondents-all of whom have varying degree s of time, patience, and motivation-to provide this info rmation. With this in mind, every effort is made t o design questionnaires that will collect data as efficientl y and painlessly as possible. A common way to reduce respondent burden is to empl oy skip logic, i.e. to conditionally ask questions based upon prior responses or other sources of information. Fo r example, if the subject is 14 years of age, there is no point in asking questions about having a driver's license or registering to vote; he or she is too young to do those activities and these questions would not apply. In another ex ample, if the respondent has indicated that he or s he has never attended a 4-year college or university, it is not necessary to ask questions about college experience s. missing value, macro variable, macro definition, macro call, proc step, proc sql, proc freq, data cleaning, %if-%then-%else, macro loop source 17
51 Moving from Data to Information: SAS Programming to Reduce Statistical and Programming Errors AnnMaria De Mars Although improvements in statistical software capabilities have made it easier to obtain output for complex statistical procedures, producing error-free output has not become easier. Without proper programming, numbers are just data, susceptible to errors in analysis and interpretation. SAS can be used in many ways to transform data into information. In the process, programmers and statisticians tend to make different types of errors. Four ways are discussed for producing error-free information. 1. The sheer volume of numbers can be reduced to a manageable amount via the use of SAS procedures such as PROC FREQ, PROC SUMMARY and PROC TRANSPOSE, producing output usable to quickly identify and eliminate variables and categories with no variance or excessive percentages of missing data. 2. Arrays, the DIM function and DO loops can be used to reduce programming errors while performing repetitive tasks and correct data errors. 3. Selection of appropriate statistical procedures based on knowledge of sample, weights and stratification will prevent errors in estimation of statistics. 4. Descriptive procedures, Graph-N-Go, Enterprise Guide and the Analyst Application are all useful for gaining an understanding of the data structure, distribution and accuracy. sample, proc step, array bounds, proc freq, proc means, proc calis, correlation, sas enterprise guide, sas programmer, scatter plot, data science source 6
52 Moving from Listing Reports to Visual Reports using SAS/GRAPH Maps Elizabeth Ceranowski Listing Reports, like the output from the PRINT Procedure, can be good. Summary reports, like those produced by the REPORT procedure, can be better. However, a good visual report, like a color coded map, can sometimes be more effective in communicating information. Don't have SAS/GIS? You can do this using SAS/GRAPH! This presentation will get you started in using the GMAP procedure to create graphical output and using ODS to publish the output. Attendees will also see examples of use, and basic syntax to get started with SAS/GRAPH Maps and ODS. Code and output will be shown, as well as ways to customize the output. The content of this paper can also be easily extended to be used as Stored Processes in the SAS Business Intelligence Platform, and could easily be added to a SAS Information Delivery Portal. proc gmap, response variable, proc step, ods html, where statement, proc print, proc report, options statement source 20
53 New SAS Performance Optimizations to Enhance Your SAS Client and Solution Access to the Database Mike Whitcher The SQL procedure has been used for years as the way many SAS clients and solutions query for their data. Take a look at the new SQL performance optimizations that have been added to this bellwether procedure, optimizations designed to greatly expand query pass-through capability to databases and shorten your SAS client and solution query response times. Also, see the new SQL enhancements for use with SAS data sets. Whether you use SAS Web Report Studio, SAS Marketing Automation or other SAS clients or solutions, or still submit your SQL queries in batch, you owe it to yourself to see how you can make them run faster. proc sql, proc step, put statement, where statement, dataset, proc format, record count, user-defined format, sas function, ansi sql, sas base, having, business intelligence, hash table, group by, sysdate9, sample, create table, macro variable source 15
54 ODS Statistical Graphics 101 Wei Cheng Beginning with SAS9, a number of procedures join the Output Delivery System (ODS) family to create statistical graphics automatically. This new facility is referred to as ODS Statistical Graphics. The layout and appearance of ODS Statistical Graphics are controlled by ODS templates and styles. You can use the ODS Graphics Template Language (GTL) to generate statistical graphics of your own design; you can use PROC TEMPLATE to customize the statistical graphics generated by SAS procedures; you can use the "SG" family of procedures to create procedure-quality statistical plots. This paper describes how to use ODS Statistical Graphics to: create statistical graphs from SAS procedures; customize statistical graphs using ODS templates and ODS styles; create statistical graphs using ODS Graphics Template Language; create statistical graphs using SG procedures. proc step, proc freq, scatter plot, bar chart, proc sgplot, histogram, survival function, output delivery system, ods graphics, regression analysis, data visualization, proc template, sas 9, proc reg, proc univariate source 34
55 Once you "know" SAS, How to Keep Learning It Brenda Beaty As much as anyone "knows" SAS, with each new release, there's always something new to learn. This paper gives some resources to keep expanding your SAS knowledge and skills. sas programming, business intelligence source 3
56 PROC REPORT: Compute Block Basics - Part I Tutorial Arthur L. Carpenter One of the unique features of the REPORT procedure is the Compute Block. Unlike most other SAS procedures, PROC REPORT has the ability to modify values within a column, to insert lines of text into the report, to create columns, and to control the content of a column. Through compute blocks it is possible to use a number of SAS language elements, many of which can otherwise only be used in the DATA STEP. While powerful, the compute block can also be complex and potentially confusing. This tutorial introduces basic compute block concepts, statements, and usages. It discusses a few of the issues that tend to cause folks consternation when first learning how to use the compute block in PROC REPORT. This paper is being presented in conjunction with the Hands-on Workshop PROC REPORT: Compute Block Basics -Part II Practicum. proc report, proc step, class variable, put statement, proc calis source 16
57 PROC REPORT: Compute Block Basics - Part II Practicum Arthur L. Carpenter One of the unique features of the REPORT procedure is the Compute Block. Unlike most other SAS procedures, PROC REPORT has the ability to modify values within a column, to insert lines of text into the report, to create columns, and to control the content of a column. Through compute blocks it is possible to use a number of SAS language elements, many of which can otherwise only be used in the DATA STEP. While powerful, the compute block can also be complex and potentially confusing. This tutorial introduces basic compute block concepts, statements, and usages. It discusses a few of the issues that tend to cause folks consternation when first learning how to use the compute block in PROC REPORT. This paper is being presented in conjunction with the Tutorial PROC REPORT: Compute Block Basics -Part I Tutorial. Consult that paper for additional details proc report, proc step, class variable, put statement, binary variable source 18
58 Processing multiple formats with input and output control data sets in PROC FORMAT Thomas E. Billings The CNTLIN= option of PROC FORMAT lets you create a format from an input control SAS data set. Similarly, the CNTLOUT= option lets you create an output control SAS data set that reflects the format. Both the CNTLIN= and CNTLOUT= options can handle multiple formats, in a single invocation. However, this must be done with care as the way the SAS system handles these formats/files, might not be what you expect. This paper gives examples and tips for users to successfully handle multiple formats with input/output control data sets in PROC FORMAT. Introduction: using input and output control data s ets for single formats PROC FORMAT allows you to create a format (or informat) from a "special" SAS data set - an input contr ol data set -- via the CNTLIN= option. Similarly, the CNTLOUT= option lets you create a special data set -- an output control data set -- that describes an existing format or informat. proc format, proc step, dataset, character variable, format statement, select, proc contents source 8
59 Programming Efficiently with Arrays Diana D. Suhr Arrays are flexible, powerful and make programming more efficient. Components of SAS arrays will be defined and explained. Get ready to learn about implicit and explicit array statements and array syntax. See how to use arrays for input statements, initializing values, recoding variables, calculating new variables, and converting variables to observations. Arrays will be illustrated with simple to complex examples. You will have an opportunity to "test" what you've learned at the end of the session. array, character variable, input statement source 7
60 Quick and Complete Statistical Analyses Using SAS Enterprise Guide George C. J. Fernandez SAS Enterprise Guide (EG) is a powerful Microsoft Windows client application that provides a guided user-friendly mechanism to exploit the power of SAS and perform complete data analysis quickly. SAS Enterprise Guide also delivers many statistical, graphical, analytical and reporting tasks, as well as wizard-based analytical steps. In this step-by-step tutorials, I will demonstrate the main features of EG for performing simple statistical applications such as ANOVA and linear regression models and advanced models such as mixed and generalized linear models. Interment links are included here where interested readers can download the video files and watch these video tutorials in windows media player. sas enterprise guide, data science source 3
61 SAS and Oracle PL/SQL: Partners or Competitors? Stanley E. Fogleman Most computer programmers tend to think in binary fashion. Either something is completely possible and should always be used or something is impossible and thus should never be considered. The question that should be asked is: How can the tasks be divided between SAS and ORACLE to play to their relative strengths? The paper will concentrate on the ways in which PL/SQL is very useful to SAS programmers (in the form of stored functions and procedures) and can be accessed with either SAS/ACCESS FOR ODBC or SAS/ACCESS FOR ORACLE. proc sql, stored procedure, proc step, macro variable, sas programmer, character variable source 5
62 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
63 SAS Fundamentals For Survey Data Processing Renato G. Villacorte This paper offers several programming solutions to problems and challenges that commonly confront survey researchers. Arrays and Do Loops are presented as methods for handling data cleaning and transforming. PROC FREQ, TABULATE, and MEANS are demonstrated for elementary analyses. Lastly, formatting techniques are used to improve analyses and enhance the clarity of output. A small number of advanced techniques are also demonstrated for more experienced programmers. missing value, proc step, proc freq, proc format, proc tabulate source 12
64 SAS on a Mac? Yes! Jack Hamilton source 9
65 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
66 SAS to MS-Excel, Auto-Loading a Full SAS Library into a Multi-Tabbed, Labeled Column, Excel Spreadsheet Joe Perry Occasionally, SAS professionals are asked to supply our customers with EXCEL versions of one or more of the datasets. Typically, users have no, nor should be expected to have, knowledge of the underlying data's structure such as what a variable's short name means with respect to the contents of a column. Though there are a number of SAS tools to provide a user community direct access to these datasets, like SAS's Add-In for Microsoft Office, one tried and true method is to export these datasets to EXCEL using SAS's PROC EXPORT. A few limitations of this method are that this can be a fairly manual process (generally one dataset at a time) and, maybe more importantly, PROC EXPORT uses variable names as column headers. If, as this author encountered, when there are dozens to scores of datasets with, cumulatively, hundreds of variables this task can become daunting. Combine that with the need to export a number of data libraries to EXCEL and the task screams for a more productive approach. excel, proc export, proc step, label statement, libname engine source 9
67 SAS Web Report Studio Basics Angela M. Hall Learn how easy it is to create a report in SAS Web Report Studio. All steps necessary to create a report will be covered in the hands on workshop. First, attendees will be introduced to SAS Information Maps created from SAS Information Map Studio, which are the only data available to utilize within a report. New measures not currently existing within the SAS Information Map will then be created within a particular report. Report formats will be covered, including header and footer generation and layout. Attendees will also learn how to add graphs and tables as well as arrange them on the screen. This class is geared to users with little to no SAS Web Report Studio experience. proc sql, sas management console source 17
68 Score Test of Proportionality Assumption for Cox Models Xiao Chen Assessing the proportional hazards assumption is an important step to validate a Cox model for survival data. This paper provides a macro program of a score test based on scaled Schoenfeld residuals using SAS PROC IML with different choices of function forms of time variable. An example is presented to demonstrate the use of the score test and graphical tools in assessing the proportionality assumption. predictor variable, time variable, proc step, proc iml, regression analysis, proc phreg, proportional hazards assumption, covariance source 6
69 Seven Steps to Regulatory Publication Style with PROC REPORT Dennis Gianneschi This paper outlines SAS 9.1.3 coding steps to produce output that meets "Regulatory Publication Style". This style is specific to my clinical trial reporting environment and is composed of requirements coming from two separate sources. The first source is an internal company document called the Style Guide for Regulatory Submission, which all output submitted to a regulatory agency must follow. The second source is the publishing software itself, which processes all output into the regulatory filing. Examples of style guide requirements are: RTF output, Arial font, and that footnotes must attach to the bottom of the table without a box drawn around them. Publishing system requirements are: a) The user controls the type of line breaks, either soft, {\line}, or hard, {\par}, in the title, which controls how much of the title is picked up by the publishing software and put in the table of contents. proc report, proc step, data step, proc template, ods rtf, proc tabulate, macro facility, regulatory submission, safety population, macro definition source 6
70 Simple and Effective Way to Validate Clinical Graphs Rajesh Venkkataram Graphs are visual representations of data. Graphs are widely generated in the pharmaceutical industry to review the results of clinical trials. They are a vital part of FDA submission for most clinical trials. SAS has several base procedures to generate graphs. Due to nature of clinical analysis, several graphs need to be generated. And due to this high volume, the validation process becomes time consuming and error prone. In some organizations, the validation of graphs is partially done manually. This paper reviews the details of a simple and effective method to validate Scatter Plot graphs for laboratory and vitals data. In this validation method, an independent programming approach is used to validate graphs. The source program that creates the graphs also needs to generate an output file consisting of the coordinate points (X, Y values) of the graphs. data cleaning, proc compare, proc step, laboratory data, scatter plot, sample, temporary dataset, proc sort, clinical trial source 10
71 SmryEachVar: A Data-Review Routine for All Data Sets in a Libref Ronald J. Fehd proc step, macro variable, proc freq, call execute, txt, proc append, proc univariate, if-then-else, proc sql, attrib statement source 25
72 So, You've Got Data Enterprise Wide (SAS, ACCESS, EXCEL, MySQL, Oracle, and Others); Well, Let SAS Enterprise Guide Software Point-n-Click Your Way to Using It William E. Benjamin Jr. This paper will walk a SAS user through the process of opening and using files from different (non-SAS) generated sources and processing the data with SAS Enterprise Guide (EG). The focus of this paper will be to get access to the data, since most functions available to EG are drop down menus and wizards which help teach a new user how to process data. For completeness a simple chart will be shown with instructions about how to each type of data shown. This paper will not show how to get the data into non-SAS files; it will be assumed that the user's enterprise will guide them through that process. sas enterprise guide, excel source 10
73 Statistical Analysis of Source of Nitrogen in Q-BOP Steel Arkady M. Kushnir Structural grades of hot rolled low and medium carbon plates and sheets commonly used for deep drawing applications. Cracking on the bend fa ces, as well as aging effects are the major defects, which usually causes rejection of the sufficient volumes of steel. It is a common knowledge that steels containing interstitial nitrogen appear to be more susceptible than low- nitrogen steels to stress-corrosion cracking. Nitro gen exists in steel primary in combination, as nitrides of metallic elements or as molecular ni trogen in cracks or blowholes. The solubility of nitrogen in ferrite at room temperature in lo w and medium carbon steel not exceeds 0.001%, and precipitation effects caused by nitrogen may occur in steel containing more than this amount. It is also well known that increased carbon content reduces the tendency of steel to fail by intergranuular cracking [1]. correlation, data science, proc step, regression analysis source 10
74 Step your way through Path Analysis Diana D. Suhr This presentation provides a plan to step from regression to a path analysis. Regression analysis sometimes provides less than optimal results using a default model. Path analysis allows you to specify a model and relationships between variables. PROC CALIS provides a method to specify a path analysis model, examine relationships between variables, and provides a comprehensive analysis of your data. regression analysis, estimate, covariance, correlation, proc step, proc calis, sample, proc reg, latent variable, sample size, data science source 10
75 Surviving Left Truncation Using PROC PHREG Aimee Foreman,
Ginny Lai,
Dave P. Miller
Many of us are familiar with PROC LIFETEST as a tool for producing survival function estimates, but it is not widely known that PROC PHREG can also be used for this purpose. This is especially convenient in the case of left truncated data. Left truncation is present, for example, in studies of disease mortality where survival from the time of diagnosis is the outcome of interest even though patients may have been diagnosed many months or years prior to enrollment in the study. While PROC LIFETEST is not set up to handle this situation, PROC PHREG is, using the ENTRY= option to specify the left truncation time. Group differences in survival can be estimated with STRATA processing with a null model, which avoids the assumption of proportional hazards. We will provide examples from a disease registry that show why the issue of left truncation is important when analyzing survival data, and how ignoring it can get you into trouble. proc phreg, proc step, survival function, output, by group processing, proportional hazards assumption, survival analysis, log-rank test, overall survival, rank test, regression analysis source 8
76 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
77 Teaching a New Dog Old Tricks - Using the EXCEPT Operator in PROC SQL and Generation Data Sets to Produce a Comparison Report Stanley E. Fogleman It is possible to produce a comparison report on rather short notice using the EXCEPT operator in PROC SQL to list only those rows that have changed since the last time the report was run. The generation data set represents the data today versus whenever the report was last run. proc sql, proc step, create table source 3
78 Testing Performance of Various Confidence Interval Methods for Non-Normal Means Keiko I. Powers For the confidence interval assessment of means, the t-statistic based approach is the most commonly used method, and it can be used even for the case of non-normal means when the sample size is sufficiently large. However, when the sample size is small and the population distribution is known to be non-normal, the t-statistic based approach would give inaccurate confidence intervals. A typical example is the household income, whose distribution is highly skewed to the right, and deriving the confidence interval becomes challenging when the sample size is small (e.g., n<30) The paper illustrates how confidence interval approaches specifically developed for non- normal means (i.e., log-normal and exponential) perform for various sample sizes (i.e., n = 5, 10, 20, 30, 50, 100) with SAS-based simulation runs. The results derived from these approaches are compared to the traditional t- statistic based confidence intervals. sample size, confidence interval, sample, exponential distribution, normal distribution, lognormal distribution, bootstrap source 8
79 The Essence of DATA Step Programming Arthur X. Li The fundamental of SAS programming is DATA STEP programming. The essence of DATA STEP programming is to understand how SAS processes the data during the compilation and execution phases. In this paper, you will be exposed to what happens "behind the scenes" while creating a SAS dataset. You will learn how a new dataset is created, one observation at a time, from either a raw text file or an existing SAS dataset, to the program data vector (PDV) and from the PDV to the newly-created SAS dataset. Once you fully understand DATA STEP processing, learning the SUM and RETAIN statements will become easier to grasp. Relating to this topic, this paper will also cover BY-group processing. dataset, output, automatic variable, retain, execution phase, input statement, out=, _n_, compilation phase, by group processing, sas log, set statement, in=, infile statement, missing value, put statement, proc step source 19
80 The Essentials of Finding the Distinct, Unique, and Duplicate Values in Your Data Carter Sevick Whether by design or by error there are data sets out there that contain variables, combinations of variables, or whole observations that are not unique. For example, duplications of a patient identifier should be expected in a medical records file, but perhaps not in a master list of patients. Unanticipated duplicates in your data can be the source of hours of headaches, which may be surprisingly easy to resolve once you apply a few well chosen techniques. Basic knowledge of PROC SORT, and DATA STEP processing (including SET and MERGE) will be assumed. proc step, by group processing, proc sort, cpu time, key source 8
81 The MEANS/SUMMARY Procedure: Getting Started and Doing More Arthur L. Carpenter The MEANS/SUMMARY procedure is a workhorse for most data analysts. It is used to create tables of summary statistics as well as complex summary data sets. The user has a great many options which can be used to customize what the procedure is to produce. Unfortunately most analysts rely on only a few of the simpler basic ways of setting up the PROC STEP, never realizing that a number of less commonly used options and statements exist that can greatly simplify the procedure code, the analysis steps, and the resulting output. This tutorial begins with the basic statements of the MEANS/SUMMARY procedure and follows up with introductions to a number of important and useful options and statements that can provide the analyst with much needed tools. With this practical knowledge, you can greatly enhance the usability of the procedure and then you too will be doing more with proc step, output, proc means, class variable, standard deviation, numeric variable source 19
82 The Power of the BY Statement Toby Dunn,
Paul A. Choate
by group processing, proc step, proc sql, key, sas programmer, do loop, proc print, set statement, update statement, group by, proc means, dataset, merge statement, proc freq, conditional do loop, output, class variable source 16
83 Tips and Tricks for Creating Multi-Sheet Microsoft 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 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, and also tips and tricks for working with the ExcelXP ODS tagset. 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 previous papers by this author, this paper contains new and revised material not previously presented. excel, xls, proc print, by group processing, sas output, sas base, proc step, proc template, title statement, output delivery system, ods xml, macro definition source 19
84 Turning long-skinny data into short-wide data datasets the easy way Joe Perry This paper found its motivation when this author was looking at a couple of posters at a WUSS conference that used two methods to perform a transposition: using first and last dot and PROC TRANSPOSE. Looking to improve the approach, the author innocently asked "So, how would you do this?" This paper is a re-creation of that brief twenty minute conversation where an approach and code was hastily written on a scrap of paper. It describes the dialogue that transpired and a recreation of the code that resulted on that day and, for pure esthetics, an extension of the program into a macro. This author believes that the process presented here of: requirements discovery, approach to solution, alternative analysis, finalization of design, coding and results comparison are critical steps to improving programming skills; this paper uses this approach to those that could benefit from the discussion that took place that day array, data step source 7
85 User-friendly SAS Macro Application for performing all possible mixed model selection - An update George C. J. Fernandez A user-friendly SAS macro application to perform all possible model selection of fixed effects including quadratic and cross products within a user-specified subset range in the presence of random and repeated measures effects using SAS PROC MIXED is available. This macro application, ALLMIXED2 will complement the model selection option currently available in the SAS PROC REG for multiple linear regressions and the experimental SAS PROCEDURE GLMSELECT that focuses on the standard independently and identically distributed general linear model for univariate responses. Options are also included in this macro to select the best covariance structure associated with the user-specified fully saturated repeated measures model; to graphically explore and to detect statistical significance of user specified linear, quadratic, interaction terms for fixed effects; and to diagnose multicollinearity, via the VIF statistic for each continuous predictors involved in each model selection step. feature selection, fixed effects, proc mixed, covariance, repeated measures, proc step, covariance structure, macro definition, restricted maximum likelihood, data visualization, predictor variable, sample, akaike information criterion, sample size, interaction effect, correlation, spearman correlation, excel, regression analysis source 19
86 User-Written DATA Step Functions Jason Secosky For years, users have asked for the ability to write functions in DATA STEP syntax. The day has come when this is possible. In SAS9, the FCMP procedure provides the ability to write functions using DATA STEP syntax. In SAS 9.2, these functions can be called from a DATA STEP. This paper explains how to write functions with PROC FCMP and how these functions are invoked from a DATA STEP. It also contains caveats when callin g PROC FCMP functions from a DATA STEP. put statement, proc step, return, proc fcmp, file statement source 9
87 Using Functions SYSFUNC and IFC to Conditionally Execute Statements in Open Code Ronald J. Fehd macro variable, proc step, macro put source 10
88 Using PROC REPORT to Describe Case and Control Comparisons Sara Yuewen Gao A case and control study emphasizes the comparisons between two groups. Descriptive statistics such as frequencies, means and standard deviations are used to describe the basic features of each group. Statistical significance tests like chi-squares and t-tests are widely used to evaluate whether the differences between the two groups are statistically significant. Gathering numbers from all the procedures to create a complex report avoids manual data entry and can present the data in a clear, appealing way. This paper will explain the process of creating a summary table using PROC REPORT for case and control comparisons and presenting the results in ODS HTML format. proc report, proc step, standard deviation, proc freq, output delivery system source 10
89 Using PROC SGPLOT for Quick, High-Quality Graphs Lora D. Delwiche,
Susan J. Slaughter
New with SAS 9.2, ODS Graphics introduces a whole new way of generating high quality graphs using SAS. With just a few lines of code, you can add sophisticated graphs to the output of existing statistical procedures, or create stand-alone graphs. The SGPLOT procedure produces a variety of graphs including bar charts, scatter plots, and line graphs. Because ODS Graphics uses the Output Delivery System, graphs can be sent to ODS destinations, and use ODS styles. This paper shows how to produce different types of graphs using PROC SGPLOT, how to send your graph to different ODS destinations, and how to apply ODS styles to your graph. proc sgplot, response variable, proc step, histogram, bar chart, output delivery system, series plot source 16
90 Using Propensity Scores To Adjust For Treatment Selection Bias R. Scott Leslie A key strength of observational studies is the ability to estimate treatment effect on health outcomes in "real world" conditions. However, studies that lack randomization of subjects into treatment groups must address selection bias to properly estimate the effect of treatment as non randomized groups usually differ on observed and unobserved characteristics. That is, the observed treatment effect may be due to the treatment itself or due to the differential selection into treatment groups from non-randomization. Conventional regression adjustment, matching, and stratification using propensity scores are widely used techniques to adjust for selection bias. Included in this tutorial is a description of these propensity score methods, an explanation of the advantages and disadvantages of each method, and an application of the methods using various examples. This tutorial is intended for intermediate level statisticians, SAS programmers, and/or data analysts. propensity score, proc step, regression analysis, treatment effect, logistic distribution, predictor variable, proc logistic, response variable, proc glm, proc genmod, randomization, logistic regression source 7
91 Using SAS/AF for Managing Clinical Data Wynn Zheng Using SAS/AF to developed an integrated data management system that incorporates security and tools which assist the valid production and analysis of the clinical data. Various modules in the system support numerous clinical data management activities. Data at the quality assurance stage is accessible via InSite Vision Data Access System. A final database may accumulate in phases or be generated at once when quality assurance is complete. InSite Vision Data Management System (DMS) and InSite Vision Data Access System provide a systematic method of implementing the necessary tasks for the management of clinical data at InSite Vision, Inc… This paper describes these systems and the associated class libraries and templates used for the development of these systems. clinical database, clinical data, data governance, quality assurance source 14
92 Using Unobserved Components Model (UCM) for a Stock Price Fluctuation Lida Gharibvand Time Series modeling involves trends, seasonality, cyclical behavior, and forecasting future trends using historical data collected at regular time intervals. Many advanced Time Series analysis procedures are available in SAS/ETS module. The advanced features of SAS procedures were used to analyze Texas Instruments stock with TXN symbol. In this paper, three PROCs are shown: PROC TIMESERIES, PROC FORECASTING, and PROC UCM. It will be demonstrated that PROC UCM (Unobserved Components Model) is better suited to analyze the stock price movements. time series analysis, proc step, proc ucm, proc timeseries, time series data, proc forecast, confidence interval, proc gplot, correlation source 7
93 What's Hot, What's Not - Skills for SAS Professionals Kirk Paul Lafler,
Charles E. Shipp
As a new generation of SAS user emerges, current and prior generations of users have an extensive array of procedures, programming tools, approaches and techniques to choose from. This presentation identifies and explores the areas that are hot and not-so-hot in the world of the professional SAS user. Topics include Enterprise Guide, PROC SQL, PROC REPORT, PROC FORMAT, Macro Language, ODS, DATA STEP programming techniques such as arrays and hashing, business intelligence, sasCommunity.org, JMP, SAS/GRAPH, SAS/STAT, and sas 9, sas base, proc step source 5
94 When Simpler is Better - Visualizing Laboratory Data Using "SG Procedures" Wei Cheng In SAS 9.2, SAS/GRAPH introduces a family of new procedures to create stand-alone graphs that use the ODS Statistical Graphics infrastructure and are designed to use ODS styles. These new "SG procedures" include SGPLOT, SGPANEL, and SGSCATTER. With a simple and clear syntax, procedure-quality plots can be generated to assist your data exploration and presentation. This paper provides examples that illustrate how you can use these new procedures to examine and visualize laboratory data. laboratory data, proc step, line chart, spaghetti plot, clinical trial source 10
95 Windows and Unix Computers Now Have Multiple CPU's; Why Not Control Two or Three or More Parallel Executing SAS Batch Jobs from One Master Job! William E. Benjamin Jr. This paper will show the processes required to start multiple, parallel batch copies of SAS on the SAME Microsoft Windows or UNIX based computer. It may be easy to click the SAS Short-cut button or type SAS in a command prompt window a few times, but those jobs are independent of each other, and use resources to update the screen images for the operator (you). The process proposed here allows one SAS job to start others as child batch processes, with no screen update requirements, with their own parameters and monitor their completion. This paper exposes some of the tricks required to get two (or more) batch copies of SAS running on a Windows or Unix computer. macro variable, sas log, sas output, macro definition, %if-%then-%else source 10
96 Working with Longitudinal Data Orla Hayden In this paper I will explain some tips and tricks I use to process longitudinal data. Topics covered will include creating variable crosswalks and wave indicators, deriving consistent variables using arrays and using macros and functions to define loop iterations and array lengths. I will also discuss variable naming techniques. longitudinal data, proc means source 3
97 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 20
98 You've Just Bought a Data Warehouse. Now What? Stanley E. Fogleman One of the ways to get involved in implementing Data Warehouse technology (SAS Data Integration Studio) is to pick a pilot project, in this case, some SAS datasets supplied by an outside vendor which needed to be mapped to an existing Microsoft ACCESS database. At first, it appeared to be an example of using a sledgehammer to kill a fly. As the project progressed however, we realized that a number of peculiarities of ACCESS databases (no native support for formats, peculiar representation of dates and representing true/false/no answer) made Data Integration Studio an ideal tool for identifying and resolving those issues. dataset, data cleaning, sas data integration studio, sas function, proc sql source 6

Back to Conf go 2009 go 2007

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.