HOME QUICK SEARCH AUTHORS KEYWORDS HELP BUGS

PharmaSUG 2006 Papers - Index

134 papers. Source: PharmaSUG (Pharmaceutical Software Users Group) conference proceedings.

# Title
×
Authors
×
Abstract
×
Keywords
×
Extras Pages
1 "DO NOT EDIT BELOW THIS LINE" (Configuring SAS to work for you) Kim Truett Sneak into everyone's office and they look different. But start their computer and 99% of the time, SAS runs exactly the same. This is great when you're programming on someone else's computer, but means that SAS is not working effectively for you. SAS has options for changing the way it works. Some are cosmetic - changing the fonts to match your style, while others make SAS more efficient for you - like automatically saving Logs to increase compliance (by allowing you to 'forget' to save them). What about that warning in your sasv9.cfg file "/DO NOT EDIT BELOW THIS LINE/". What happens if you do? And is there anything that you should consider changing? And, what if you could do this as a separate SAS session, so that, when someone sneaks into your office, starts your computer, and runs SAS, it will still look like everyone else's? options statement, symbol table 10
2 %StrSrch - A Recursive SAS Tool to Find and Replace Any String in Text Files Wenyu Hu,
Liping Zhang
To find and replace a text string is a common task. This paper describes an approach to find and replace a text string in any given file or multiple files and in a given folder/subfolders through a SAS macro, %StrSrch. This paper provides an overview of the unique recursive macro design, describes the macro code structure and parameters, highlights the key features and gives an example of a macro call. The macro is easy to use and its technique can be applied to different operating systems. Keywords: %StrSrch, recursive, wildcard macro call, macro definition, %if-%then-%else, macro variable 6
3 %SummaryTable: A SAS Macro to Produce a Summary Table in Clinical Trial Yinmei Zhou,
St. Jude Children's
A summary table with statistical comparisons is one of the most common tables included in clinical study reports. The table usually contains not only summary statistics such as, count, mean, standard deviations, medians, ranges for relevant continuous variables of in terest, and number and percentage of patients falling w ithin a particular category for categorical variables of interest, but also some statistical information such as p-values from Chi-square test, Fisher's exact test, t-test, ANOVA test, etc. We have developed a user-friendly macro program to calculate summary statistics and test results for both cont inuous and categorical variables of in terest, and output a highly customized, presentable table into Microsoft Word. T he SAS Macro program is flex ible, allowing you to choose the descriptive statistics and the statistical methods for comparisons among groups nominal variable, chi-square test, interval variable, fisher exact test, exact test, macro function, proc means, anova, clinical trial, kruskal-wallis test, macro definition 7
4 A "bit" about Proc Summary: Technique for Working with Summary Output Gregory T. Weber,
Troy A. Ruth,
Steven Light
This paper will present a technique used to create and subsequently select a subset of t he summary records from the output data set created by PROC SUMMARY. The technique, called bit -testing, is especially useful for identifying the specific summary records when multiple By and/or Class variables are used. The bit -testing method allowed us to easily identify and select the needed summary records. Unique to our application was the method used to dynamically generate the bit "masks" which are unique to the requested grouping and report options. The generalized nature of the method allows use of one set of standard code for use with any summary incorporating any number of By and/or Class variables. The paper will introduce the bit -testing method and share the technique used to generate the bit strings proc means, proc step, class variable 7
5 A Case of Online Data Processing and Statistical Analysis via SAS/IntrNet Sijian Zhang It is common to see that statisticians at the statistical center or unit get involved in many clinical trials or research projects. Usually, according to the investigators' requests, the statisticians setup the statistical procedures, run them on the data from investigators, and generate analysis reports. However, in some studies the same statistical procedure need to run repeatedly on data from different time intervals or different batches of experiments. For example, in a proteomic experiment, a series of experiments will be conducted; the design of each experiment is based on the statistical analysis results of previous experiments. It is the same process every time that the investigator finishes an experiment and brings in the raw data; the statistician put the analysis request on his or her schedule, runs the same SAS procedures on the new data, and sends the results back to the investigator; then the investigator will conduct the next experiment according to the results. Since the investigator has the statistical knowledge, it will be not a problem for the investigator to interpret the SAS output. The problem is that the investigator has to wait for several days to see the analysis results. If the investigator can upload the data to a server, run the program, and get the results on the computer at the lab in real time, both the investigator and the statistician will be happy on the time saved. randomization, raw data, clinical trial, data science 8
6 A Comparison Between SQL and Data Step and Some SAS Procedures LaTonya Murphy There is more than one way of creating a dataset, looking at the data and doing basic statistics - sometimes SQL can be more useful. This paper presents different ways of manipulating data, one of which is with the use of SQL proc sql, proc step, data step, proc univariate, macro variable, cpu time, proc print, sas base, clinical trial, coalesce function, proc freq, data merging 6
7 A Method/Macro Based on Propensity Score and Mahalanobis Distance to Reduce Bias in Treatment Comparison in Observational Study Wuwei Wayne Feng,
Yu Jun,
Rong Xu
In observational studies, investigators usually do not have the same control over the treatment assignment as they do with randomized controlled studies. As a result, the treatment and control groups may have a large difference on their observed covariates. These differences could lead to bias in estimating treatment effects. There are several propensity score based methods that could reduce the bias caused by these differences and make the two groups comparable. One method is the nearest available Mahalanobis metric matching within the calipers defined by the propensity score. This paper will present and demonstrate the matching algorithm based on this method. A macro is developed to implement the matching algorithm; a growth hormone observational study is used as an example to demonstrate the bias before the match and percentage of bias reduction after the match. Key words: observational study, propensity score, Mahalanobis distance propensity score, mahalanobis distance, covariance, treatment effect, proc step, euclidean distance, logistic regression 11
8 A New Approach to Display Multiple Graphs in One Page And Individual Patient Profile Graph Long Zheng SAS/GRAPH PROCEDURE GREPLAY can be used to display multiple graphs on one page. A new approach to display multiple graphs is the coordinate shifting method as proposed in this paper. This method can use a single procedure to display multiple variable graphs uniformly. It is useful in creating individual patient profile graphs where different types of information (such as lab parameters, adverse events, and disease status) for one subject can be presented in one page proc gplot, proc step, macro variable 10
9 A Pragmatic Programmers Introduction to Data Integration Studio: Hands on Workshop Gregory S. Barnes Nelson sas data integration studio, libname statement 36
10 A SAS Macro to Find the Best Fitted Model for Repeated Measures Using PROC MIXED Jingjing Wang Specifying an appropriate covariance structure is essential for a valid and powerful repeated measure analysis using PROC MIXED. However, assessing the covariance structure is not a trivial task. To facilitate this task, the SAS macro %RMMS was developed to find the best fitted model accurately and efficiently. The macro produces a table of various valid candidate covariance structures sorted in ascending order by AIC, AICC and BIC, respectively, with the covariance having the smallest Information Criteria (IC) specified, and a plot of estimated covariance versus duration between time points to examine the covariance structure. In addition, an optional likelihood ratio test between two user-selected nested covariance structures is provided. Moreover, once the final decision is made about the covariance structure, output of the final analysis of the best fitted model is automatically exported to a user-specified rich text format (RTF) file covariance, covariance structure, likelihood function, repeated measures, final analysis, proc mixed 8
11 An Animated Guide: The Data Step Debugger Russell M. Lavery Use of the DATA STEP Debugger (DSD) simplifies debugging code and, while the DATA STEP debugger (DSD) was introduced in SAS version 6.11, it is not widely known. It is a powerful tool for finding logical errors in the DATA STEP. It gives you control over execution of "DATA STEP" code and allows you to watch your program execute- line by line. The DSD allows you to watch if-else statements execute to check if the code is correct while the code is running, rather than checking for correctness by writing PROC PRINT statements after the DATA STEP has finished. The DSD allows you to not only watch code execute, but will allow you to MANUALLY CHANGE the values in the program data vector as your job is running. The DSD does not issue any error messages as you use it. The programmer mentally compares what s/he sees, in the Program Data Vector (PDV), with what s/he expected to see. Critical to use of the DSD is an understanding of the PDV and the DSD is an excellent way to learn the data step, do loop, if-then-else, sas log 21
12 An Easy, Concise Way to Summarize Multiple PROC COMPAREs Using the SYSINFO Macro Variable Lex Fennell Every time the COMPARE procedure is executed in the SAS System, the procedure assigns a code to the SYSINFO automatic macro variable. This code represents the result of the PROC COMPARE (ie, whether there were no unequal values, differing attributes, etc.). With the one-time construction of a SAS macro, the SYSINFO codes from multiple compares can be captured and placed in a common data set. This data set, which can contain information such as the TIMESTAMP of execution, compare identifier, and SYSINFO code, can be placed in a common location for all compare results. Finally, another SAS program can be created that will use this data set as input, interpret the SYSINFO codes, and output a summary report that is concise and easy to interpret. This report can be kept as a paper-saving alternative for audit documentation proc compare, proc step, macro variable, automatic macro variable, macro definition 2
13 Analyzing Ordinal Repeated Measures Data Using SAS Bin Yang This paper provides a brief review of commonly used statistical methods for analyses of ordinal response data. Generalized CMH Score Tests of Marginal Homogeneity, GEE, and random-intercepts logistic regression ordinal model for analysis of repeated ordinal response data will be particularly discussed. SAS procedures, PROC NLMIXED, PROC GENMOD, PROC IML, and PROC FREQ for categorical ordinal analysis, are described and illustrated with data from a clinical trial. A SAS macro to produce estimated marginal Probabilities will be presented proc mixed, likelihood function, proc nlmixed, odds ratio, correlation, regression analysis, proc genmod, covariance, covariance structure, longitudinal data, estimate, response variable, logistic regression, proc calis, maximum likelihood estimation, ordinal variable, repeated measures, proc step, logistic distribution 8
14 Approach to Archive Programs in PDF and Retrieve Programs from PDF Files Eric Zhang Quite often, once a project has been completed, SAS programmers are faced with the need to archive their programs. Ideally, the program files should be (1) easily archived, (2) protected from unauthorized changes and (3) easily retrieved from archive, in their original format. Storing SAS programs in PDF format is one of the most effective and efficient ways to achieve all three of these objectives . A new approach was developed for this purpose. The capabilitie s, features, and usage of the approach are described in the paper txt, sas log 12
15 Arrays Made Easy: An Introduction to Arrays and Array Processing Teresa Schudrowitz Many programmers often find the thought of using arrays in their programs to be a daunting task, and as a result they often shy away from arrays in their code in favor of better-understood, but more complex solutions. A SAS array is a convenient way of temporarily identifying a group of variables for processing within a DATA STEP. Once the array has been defined the programmer is now able to perform the same tasks for a series of related variables, the array elements. Once the basics of array processing are understood arrays are a simple solution to many program scenarios. Throughout this paper we will review the following array topics: 1) Why do we need arrays? 2) Basic array concepts a) Definition b) Elements c) Syntax d) Rules 3) Using array indexes 4) One dimension arrays 5) Multi-dimension arrays 6) Temporary arrays 7) Explicit vs. implicit subscripting 8) Sorting arrays 9) When to use arrays 10) Common errors and misunderstandings data step, array, temporary array, numeric variable, array bounds, variable, character variable 9
16 Back from the Future: Different Ways to Transfer the Values from Later to Earlier Visits Alexander M. Feigin In order to bring the values from earlier observations to later ones, SAS language has the perfect, easy-to-use tools, like RETAIN statement or LAG function. Yet often it is a common task for a SAS programmer in Clinical Trials to do just the reverse: bring the values backward, from later to earlier ones. In this presentation we compare different ways to perform this task. We offer the following approaches: 1) creating separate data set for each visit and merging them together; 2) sorting by visit in descending order and retaining the value from the first.visit, which is actually the latest one; 3) transferring the values at later visit into macro variables with call symput routine and extracting these values at any visit using symget function; 4) selecting and placing together all necessary variables from all necessary visits with PROC SQL proc step, subject visits, proc sql 8
17 Base SAS vs. SAS Data Integration Studio: Understanding ETL and the SAS Tools Used to Support It Danny Grasse,
Gregory S. Barnes Nelson
Every data warehouse, data mart and data hut needs it. Every good business intelligence interface depends on it. It has been the hallmark of what SAS programmers have done for over 30 years -beat data into submission (a.k.a. ETL - extract, transform and load data). Now all grown up and ready to take on the world, SAS software's ability to get at just about any data source, massage, cajole, beat, cleanse and transform information and then make it sing and dance in your tool of preference makes SAS the ideal choice for modern decision-support applications. So which tools, technologies and/or approaches can we use for ETL and which make sense for any given application? We will explore the world of ETL from the perspective of the tasks that we have to accomplish and compare using Base SAS tools versus Data Integration Studio (or as it is now known - SAS Data Integration Studio) fact table, surrogate key, sas base, data warehouse, data profiling, data cleaning, slowly changing dimension, data integration, sas programmer, validity, foreign key, natural key, raw data, star schema, change data capture, grid computing, proc step, proc sql 20
18 Build Your Own SAS PROC: A PARMBUFF Parsing Macro for a SAS-like Syntax Interface to Complex Macro Parameterizations Kyle McBride The SAS Macro Facility is a powerful tool for any SAS programmer. In the pharmaceutical industry we often find ourselves performing a similar task multiple times and macros are developed to repeat the task with ease. Some macros are complex in nature, whether it is a statistics macro with multiple options or a macro that has been generalized for re-use. They can often have a long daunting list of macro parameters. In some organizations macro libraries are developed to provide a common toolkit for performing statistical analysis and reporting in support of clinical trials. Often in the process, once a macro reaches the point of having many parameters, the usability of the macro suffers. The use of variable-length list parameters complicates the parameterization considerably. Also, the parameterization is usually not consistent across macros developed over the years macro parameter, macro call, macro variable, macro definition, proc step, sas syntax, macro facility, %macro parameters, macro loop 6
19 Building Stronger Axes for Your SAS Graph Wagons Don (Dongguang) Li Axes are important components of graphs. Axes are usually the simple range frames with increment units, but can be more informative and in special formats. The SAS graphic programming facilities provide options to control the expression of axes of graphs. Sometimes, building an axis that meets special requirements is challenging. This article provides some how-to tips with practical examples, in which specific graphical axes are required. SAS codes for the technical tricks are also included proc freq, format statement 6
20 CALL EXECUTE for everyone! Examples for programmer, statistician, and data manager Daniel J. Boisvert Everything changes. The data, the program names everything! This is a hard fact to learn when first working with clinical tria ls. But, it is true. Creatin g programs that only work when everything is static is not a good idea because, guess what, something is going to change. CALL EXECUTE helps to solve this problem by automati cally adapting code to the data. This paper will present three examples of its uses: one for programmers, one for statisticians and one for data managers. 1. Programmers - Run all programs in a directory 2. Statisticians - Create consistent symbols for SAS/GRAPH 3. Data Manager - Search for data through a library While these three examples are superficially unrela ted, their continuity comes with the fact that they are data driven. When the data changes behind the program no change is needed to the program code. This paper is aimed at a more experienced programmer who understands complex DATA STEP manipulation call execute, macro variable 9
21 CALL EXECUTE: A Primer Alissa Ruelle,
Kitty Moses
The EXECUTE call routine of SAS can be used for many tasks that would otherwise need many lines of code. No more multiple steps to manage data to conform for macro reference, and no more repetitive, inefficient code: CALL EXECUTE allows the programmer to operate straight from the comfort of a single DATA STEP. We provide you with some examples of how CALL EXECUTE can transform a multiple-tiered SAS program to a compact, efficient, single-tier beauty! 11
22 CDISC Implementation, Real World Applications Sy J. Truong Implementation of the CDISC data models is no longer a theoretical academic exercise but is now entering the real world. This workshop will walk you through the lessons learned from implementations of CDISC SDTM version 3.1. It will cover both technical challenges along with methodologies and processes. Some of the topics covered include: Project Definition, Plan and Management Data Standard Analysis and Review Data Transformation Specification and Definition Performing Data Transformation to Standards Review and Validation of Transformations and Standards Domain Documentation for DEFINE.PDF and DEFINE.XML The regulatory requirements are going to include CDISC in the near future and the benefits are obvious. It is therefore wise and prudent to implement with techniques and processes refined from lessons learned based on real life implementations data cleaning, excel, adverse events, proc contents, dataset, proc step, raw data, length statement, sample, in=, response variable, cdisc 26
23 CDISC Submission and Compliance Training, The New Virtual Learning Methodology Dana Rafiee,
Michael C. Palmer
The U.S. Food and Drug Administration's recommendat ions in July 2004 and March 2005 that study data submissions use CDISC standards created an industry need for training in CDISC standards. Every company expecting to make a submission within the next thr ee years should understand the ro le of CDISC standards in submissions and in study database desi gn and many, if not most, will look for training. In January 2006, CDISC, Destiny Corporation and Zurich Biostatistics, Inc. (Z BI) signed an agreement to jointly develop flexible, web and CD- ROM based, on-demand training that will be distr ibuted by CDISC itself, as well as by the other two partners. This hands on workshop will give attendees the ability to see and try out the new form of training soon to be available crf, adam dataset, cdisc 2
24 CFB: A Programming Pattern for Creating "Change from Baseline" Datasets Lei Zhang In many clinical s tudies, "Change from Baseline" analysis is frequently used to evaluate the effect of medical intervention by comparing the measures of change from baseline in some clinical characteristic between treat ment groups. One of common and recurring challenges in this analy sis is the creation of "Change from Baseline" datasets, which is often m ade complicated by protocol designs, statistical methods, sponsor SOPs, and "real world" data issues that arise during the trial. In this paper, I introduce a programming pattern called CFB (s hortened for Change from Baseline) that provides a general solution to creating various "Change from Baseline" datasets. This programming pattern is an extension to the Delta pattern described in [1] change from baseline, proc sql, proc step, treatment period, sas programmer, full join, clinical trial 12
25 Challenges in Managing a Large (20+) SAS Programming Group Paul A. LaBrec,
Daniel Golder
Managing a large (20+) SAS programming group presents many challenges. These challenges include recruitment and retention, resourcing, performance management, promoting career development, developing adequate productivity and quality metrics, workflow management, ensuring effective communication, building a team culture, conflict resolution, time management, employee satisfaction, and client satisfaction. This paper presents an overview of the key challenges and strategies for success. Important strategies include finding and rapidly assessing a large number of employment candidates, effectively recognizing and managing underperformance, adequately rewarding top performers, managing career path development, developing user-friendly metrics tracking processes; regular QA/QC oversight, streamlining the workflow process, and service-level agreements in performance and communications. Management strategies presented have an application in programming groups of any size sas programming, data governance 5
26 Client Communication: Transform Specifications into Code with Spreadsheets John Cantrell Spreadsheets are a popular tool for communication among team members, often used to define SAS program specifications. These specifications, if properly formatted by the specifier, can be used by SAS programs to generate program logic. Making the program logic and specifications come from the same source document offers several advantages, including: making the specifier more responsible for accurate, clearly defined specifications, increasing the specifiers involvement in program development by giving them more control over the program's results, requiring specifiers to write specifications before program is written, and providing all team members with an completely accurate record of what was done by the program sample, character functions, macro variable, compress function, do loop, proc sql, excel, proc step 5
27 Consistency Check: QC Across Outputs for Inconsistencies John Morrill Executing a SAS program produces a log containing ma ny notes, warnings and error messages regarding the program. There is no such log regard ing the fitness of the out put itself. For example, no SAS warning is issued when a set of outputs contain variant usages within the out put. This paper describes a naïve but effective approach to detecting such inconsistencies across outputs. All words (actually, any set of characters separated by a space) in a document are reported together, sorted with duplicates e liminated. This report brings out inconsistencies by showing similar elements adjacent to each other. The costs and benefits of reducing the volume of this report with several methods are discussed. Example input and output al ong with all SAS code are all provided. The simplicity of this approach makes this paper appropriate for beginners while its usefulness makes it worthy of consideration for all levels of SAS users txt, proc freq, proc step, sas output, correlation 11
28 Convert Oracle Database to SAS Data Sets, a Novel Approach Fuping Peng dataset, oracle, label statement, macro variable 4
29 Cost Effective Ways to Generate DEFINE.PDF & DEFINE.XML Sy J. Truong You can have greater understanding and management of your data if it is well documented with data definition documentation in the format of DEFINE.PDF and DEFINE.XML. As the number of datasets and variables increase, this can be very resource intensive. The time consuming documentation task is compounded by the fact that there are constant changes to the data so the documentation has to keep up with the changes in order for it to be useful and accurate. This paper will suggest methods and tools that would enable you to document your data definition document without purchasing a complex expensive system proc contents, excel, proc step, dataset, cdisc 7
30 Create Descriptive Documentation with Hyper-links for SAS Database Don (Dongguang) Li Creating a descriptive documentation for SAS database is a common practice in all kinds of researches. The documentation will serve like a user's manual of a production, providing full information about the database - how many data sets, how many variables in each data set, what are the attributes of the variables, how many observations in each data set, and what do those shortened variable names really mean. We all know that SAS CONTENTS procedure is designed for this purpose. It is easy to save the contents summary information to a data file that describes the database. Many times the database documentation will be shared with other data users when the database is transported externally. It is SAS professionals' responsibility to provide an integrated document. People can do this in different ways. In this article, a useful program in plain SAS code is introduced, which can create a database summary table with hyper-links to the detailed descriptive tables of all data sets proc contents, proc step 4
31 Creating a Tagset Template for the SAS XML Libname Engine Cynthia L. Zender Many tagset templates are supplied with the default SAS installation. When you create an XML file from a SAS data set using the SAS XML LIBNAME Engine (SXLE), special tagset templates are used by the SAS XML LIBNAME Engine. To generate custom XML or modify the XML automatically generated by SAS for use with the SAS XML LIBNAME Engine, you must use PROC TEMPLATE. This paper provides several examples of how to modify an existing tagset template or generate a custom tagset template for use with the SAS XML LIBNAME Engine. These techniques will be of interest to intermediate and advanced SAS programmers who have a basic understanding of XML concepts libname engine, macro variable, proc step, proc print, dataset, put statement, xml, by group processing, proc template, ods xml, libname statement, format statement 17
32 Creating ActiveX Graphs for Presentations using SAS Enterprise Guide ... And Drill-Down Graphs Too Terek J. Peterson,
Robert Gordon
This paper introduces the SAS user to the basics of using SAS Enterprise Guide (EG) to create graphs. The example project will show how to pull data from ClinTrace Oracle tables to make data sets, how to subset and merge the data sets with the point and click EG interface, how to produce a 3D ActiveX HTML Graph, and how to insert the graph into a PowerPoint presentation. Using the ActiveX graph toolbar, it will be demonstrated how to pivot, size, and zoom the graph using PowerPoint or EXCEL. A discussion and illustration will explain some of the limitations of the EG graphing capabilities. Exporting the co de generated from the example projec t in EG allows enhancements with SAS using the TEMPLATE procedure and SAS/GRAPH code to produce publication quality output. Lastly, the authors will show how to take advantage of the ODS HTML output destination to create a drill-down series of graphs of increasing detail, which end in an EXCEL spreadsheet of the data proc step, sas enterprise guide, ods html, proc template, output delivery system, adverse events, excel 13
33 Creating AND Importing Multi-Sheet Excel Workbooks the Easy Way with SAS Vincent DelGobbo output delivery system, excel 20
34 Creating Statistical Graphics in SAS 9.2: What Every Statistical User Should Know Robert N. Rodriguez Effective graphics are essential to modern statistical analysis. SAS 9.1 introduced an experimental extension to the Output Delivery System (ODS), which is used by over two dozen SAS/STAT and SAS/ETS procedures to create statistical graphics as automatically as they create tables. This extension, referred to as ODS Statistical Graphics (or ODS Graphics for short), requires minimal additional syntax, and it provides displays commonly needed for data analysis and statistical modeling, including scatter plots, histograms, and box-and-whisker plots. General ODS features, such as styles and destination statements, apply equally to tables and graphs. With the production release of ODS Graphics in SAS 9.2, many more statistical procedures have been modified to use this new functionality; see Appendix A for a list. For example, PROC LOGISTIC produces effects plots, and PROC RSREG produces contour and ridge plots. New SAS/GRAPH procedures, as well as existing SAS/QC procedures, also take advantage of ODS Graphics functionality. SAS 9.2 introduces an interactive graphics editor, with which you can make immediate, data-specific changes to your graphs, such as customizing titles and annotating points. SAS 9.2 also adds ODS styles that are designed specifically for statistical work. In addition to describing this new work, this paper presents the basics of creating, modifying, and managing graphics. output delivery system, proc step, ods graphics, proc reg, ods html, scatter plot, kaplan-meier plot, proc sgplot, ods rtf, regression analysis, box plot, data science 32
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, numeric variable, proc gplot, retain 17
36 Data Mining Methods to Link Multiple Drug Purchases and To Investigate Drug Costs to Consumers Patricia B. Cerrito When one field is used to define the observational unit in a dataset, it becomes difficult to alter the dataset to define a different observational unit. For example, customer drug purchases are usually defined by the purchase rather than by the customer. The Association Node in Enterprise Miner uses a customer identifier to link purchases when the purchase is the observational unit. However, the Association Node is inadequate when there are too many different choices for purchase. An alternative method is to change the observational unit to the customer using PROC TRANSPOSE and PROC CONCAT. In this way, all customer purchases are linked in a text string that can be examined using SAS Text Miner. A second method is to reduce the number of choices by defining larger classes that combine choices that are relatively similar. The methods demonstrated in this paper will be applied to a public dataset similar to those collected in any retail pharmacy association rules, market basket analysis, data mining, proc step, proc mixed 15
37 De-Identification of Clinical Trials Data Demystified Jack Shostak This paper discusses the de-identification and anonymization of clinical trials data. The reasons why you would want to de- identify and anonymize clinical trials data and the regulations that define the task will be discussed. Then a SAS based approach to clinical trials data de-identification will be presented. Finally, some de-identification challenges will be mentioned. The SAS code provided in this paper was developed with BASE SAS version 8.2 on UNIX, but the code should be compatible or portable to other operating systems and future releases of SAS clinical trial, clinical data, phi, clinical database, sample, sas base, macro definition, clinical research, date variable, sysdate9, study day, proc step 12
38 Developing and Managing a SAS Macro Library Margaret James,
Carolyn Maass,
Ginger Redner
A SAS macro library developed in-house is a valuable resource for providing standard tools to support statistical planning, analysis, and presentation of results for work in the pharmaceutical industry. The library ensures quality, minimizes rework and validation efforts, and facilitates preparation of regulatory submissions and responses to agency questions. The maintenance and continued growth of the library requires dedicated efforts from many developers and users. This paper will describe the organization and maintenance of a SAS macro library that has evolved over the last seven years for use by statisticians and statistical programmers to support the development of drug and vaccine products. The distributed structure of subcommittees designed to handle the communication and processing for continued growth of the library will be described. The roles of each subcommittee and the challenges faced in the management of the macro library will be discussed data cleaning, statistical programmer, regulatory submission 7
39 Developing PDF-Manipulation Macros for eSubmission Automation Lei Zhang PDF (P ortable Docum ent F ormat) is the open de facto s tandard for F DA regulatory es ubmission in the pharmaceutical and biotechnology industry . As a PDF generati on engine, SAS ODS facility is very useful in creating individual PDF docum ents; however, it lacks the functions for m anipulating P DF docum ents and acces sing their contents , s tructures and m etadata. This paper gives a simple method for developing PDF-manipulation macros so that you can handle PDF documents just like y ou deal with SAS datasets. It first discusses the motivation for developing PDF-manipula tion macros and the programming pattern behind them , and then gives exam ples to illustrates how to write m acros to m erge, extract, s ecure and interact with PDF documents by leveraging the SAS unnamed pipe mechanism, Microsoft scripting technology, and external command-line or GUI PDF tools filename statement, macro definition, macro variable 11
40 DIFFTREE: A Macro to Compare Corresponding Files under Two Directory Trees Directory Trees DIFFTREE is a macro that compares two directory trees with each other to ensure they each contain the same files, and that the files have the same data. The procedure works on both OpenVMS and Windows 2000. The program is particularly helpful when making CDs or DVDs to verify that the CDs/DVDs match the original files on a hard drive or other location. DIFFTREE reports whether or not each file from a corresponding pair is (1) the same as its correspondent in the other subdirectory, (2) different, or (3) non-existent. It uses SAS functions like FILENAME, DOPEN, FOPEN, FREAD, FGET, FRLEN, FCLOSE, DCLOSE, etc. to check both trees using two main DATA steps, reading the files in binary mode up to 32,767 bytes at a time create table, union all, proc sql, macro definition, proc step, macro loop, %if-%then-%else 25
41 Displaying Multiple Graphs to Quickly Assess Patient Data Trends Hui-Ping Chen,
Eugene Johnson
Populating multiple graphs, up to 15, on a single page allows a Data Manager to easily track data trends 'by patient'. The slope and planer qualities of the line allow for a significant increase in the efficiency of trend analysis. This can be accomplished by using GREPLAY, however, there is another option; by using DATA STEP Graphics Interface (DSGI) it is much easier to combine more than 10 graphs onto a single page. If there are 300 patients' weight changes across 8 visits under screening, it will be very efficient for Data Managers to monitor the trends of 15 patients concurrently trend analysis, proc step 6
42 Don't Just Tell Us - Show Us! Performance-Based Testing and the SAS Certified Professional Program Marc Vaglio-Laurin Since its inception 7 years ago, the SAS Certified Professional Program has delivered robust certification examinations in a multiple-choice format. To date, more than 10,000 SAS certification examinations have been delivered to a global audience. In our efforts for continuous improvement, the SAS Certified Professional Program is now developing performance- based tests. What are performance-based tests, and how do they differ from multiple-choice exams? Why and how did SAS decide to develop performance-based tests? How valid are these examinations? How can you prepare for the examinations? This paper answers these questions business intelligence, proc print 9
43 Drawkcab Gnimmargorp: Test-Driven Development with FUTS Jeff Wright One of the practices of Extreme Programming is Test-Driven Development (TDD), also known as Test-First Design. This style of development emphasizes an approach that is backwards to many programmers: writing tests before working code. Interestingly, this approach has found application in both agile methodologies and validation-intensive programming environments. TDD involves creating automated and repeatable unit tests, typically using a testing framework such as JUnit for Java and NUnit for Microsoft .NET languages. This paper will describe FUTS, a Framework for Unit Testing SAS programs in the spirit of JUnit and similar tools. Unit testing with FUTS is described, and an example of TDD in SAS is presented. In addition, pragmatic advice is given for dealing with challenges that commonly occur with automated testing proc step, proc import, sample, error message, macro variable, excel, dataset 12
44 Dynamic Column Breaking Macro and other Applications Fan Ping,
Richard Schiefelbein
This paper is about dynamic column formatting in relation to AE and Conmed listings. By using a macro which can locate the last space before the end of the column and replace it with a 'split' character, this method can automatically solve the problem of a variable splitting in a less than optimal location proc report, proc step, adverse events 3
45 Dynamic drill down based on numeric data Hsiwei Yu,
Dong-Min Shen
Problem: Have a 2*2 table, say, gender by treatment group, and each cell representing the average improvement score after treatment. Can we drill down by HTTP hyperlink on a cell to see, say; detailed statistics for events belongs to that cell? Solution: We can't simply use a numeric format to map the average in the four cells to different locations because the averages can be identical. For example both man and woman in treatment group 'A' have the same improvement scores 5.9. Our solution is to create a new variable whose value is the record number, i.e. _N_, and associate it with an artificial format. This artificial format, representing URL locations, is made up of additional variables' values. Therefore cells having 5.9 in them, say for 'man' and treatment group 'A' and for 'woman' and treatment group 'B' can point to different URL locations showing specific information proc step, proc format 5
46 Dynamic Output: Do You Have Any Observations? Lara E.H. Guttadauro If you need to create output that is dynamic and takes into account no observations that meet your specific criteria, there are several tricks that need to be applied. This paper will walk though the steps with a simple example adverse events, proc report 4
47 Effective Strategy to Set Page Breaks for ODS RTF Outputs Songtao Jiang,
Daniel J. Boisvert
PROC REPORT, combined with output deliver system (ODS), is a very powerful and widely used report generator in SAS . By allowing Microsoft Word to control the printing process, SAS users lose some of the power to control the layout of the output. This makes it almost impossible to set appropriate page breaks for ODS RTF output. This paper proposes a simple and effective strategy to force correct page breaks. By calculating number of printed rows for each data set observation, the proposed algorithm assigns each observation a page number according to the column widths and page size, which are set by the user. This approach is extremely easy, useful and efficient in day-to-day work for SAS programmers. Key word: SAS, ODS RTF, PROC REPORT, Listing, Page Break sas programmer, ods rtf, txt 9
48 Effective Ways to Manage Thesaurus Dictionaries Sy J. Truong Coding dictionaries such as MedDRA and WHO Drug can be a challenge to manage with new versions and change control. This becomes even more difficult when different collaborators such as CROs deliver coded data with different coding decisions from various dictionaries. Reconciling these differences can prove to be very resource intensive. This paper will address these challenges and suggest techniques and tools which compare and report on the differences among dictionaries. It will demonstrate strategies on reconciling and managing changes for consistent coding of adverse events, concomitant and medical history dataset, adverse events 9
49 Enhancing RTF Output with RTF Control Words and In-Line Formatting Lori S. Parsons The SAS Output Delivery System (ODS) allows output to be pr inted directly to a Rich Text Format (RTF) file. RTF can be read by word PROC essors such as Microsoft Word and WordPerfect. In SAS 8.1, options were added to enhance SAS TITLES and FOOTNOTES. Also added was the ability to use RTF control words within cells. In SAS 8.2, ODS supported in-line formatting and added the TEXT= option. All of these formatting methods give us the ability to insert formatting text into a cell or paragraph and can be used to enhance output. In this paper, an RTF file will be created with enhanced SAS TITLES, foot note markers in variable labels and values, custom footnotes, an inserted image, and an inserted hyperlink. The code was run with SAS Version 9.1.2 on Windows XP Professional. The RTF files are viewed with Microsoft Office Word 2003 ods rtf, output delivery system, footnote statement, label statement, sample, proc step 10
50 Estimate Carryover Effect in Clinical Trial Crossover Designs David Shen,
Zaizai Lu
The crossover design to study the differences in treatments yields a more efficient comparison of treatments than a parallel design. Subjects are on their own controls. The within-patient variation is less than between-patient variation. Crossover design requires a smaller sample size than a parallel design, but achieves same level of statistical power and precision. However, there might be a potential carryover effect in crossover design. The paper discusses how carryover effect may bias statistical results, and provides a method to test carryover effects. SAS procedures such as TTEST, GLM and MIXED are also included treatment effect, clinical trial, crossover study, parallel group, washout period 7
51 Evolution and Implementation of the CDISC Study Data Tabulation Model (SDTM) Tom Guinter,
Fred Wood
The CDISC (Clinical Data Interchange Standards Consortium) SD TM is a standard for submitting data tabulations to the FDA in support of marketing applications. In July of 2004, this standard became Study Data Spec ification (1) referenced in the eCTD Guidance (2). This paper/presentation will provide an overview of the SDTM and the associated Implementation Guides, commonly referred to as the SDTMIG and SEND. Included will be the evolution of the standard, the current status of the SDTM, strategic reasons for considering implementing the SDTM, and how the SDTM is used in the FDA review environment, including an overview of the tools used by the FDA to review SDTM data clinical trial, clinical data, adverse events, adam dataset, sdtm domain, cdisc 6
52 External Data Utility (EDU), a SAS Tool to Manage Data from Acquisition to Database Release Margaret Hung,
Mohit Goel,
Sheila Moody
A main objective of Data Management (DM) is to deliver a quality database to Statistics, Analysis & Reporting (SA&R) in a timely manner. Finding ways to expedite the database release (DBR) has always been a critical mission. At GlaxoSmithKline (GSK), notable endeavors in recent years are: 1. Usage of electronic data capture (EDC) software 2. Changing from paper CRF to electronic eCRF 3. Adoption of one set of data standards 4. Establishing standard processes to handle a variety data types 5. Developing bespoke tools to manage and deliver quality data in a timely manner excel, proc step, data cleaning, proc sql, error message, character variable, numeric variable, proc import, macro variable, sample, cdisc 11
53 From GLM to GLIMMIX-Which Model to Choose? Patricia B. Cerrito The purpose of this paper is to investigate several SAS procedures that are used in linear predictive models in SAS/STAT. The primary focus will be on the correct choice of model given the designated outcome variable, and the combination of input variables. Procedures to be discussed include GLM, LOGISTIC, GENMOD, MIXED, and GLIMMIX. PROC GLIMMIX is a relatively new SAS procedure, although it has been available as a macro for some time. There are three main types of variables used in linear m odels: nominal, ordinal, and interval. Nominal is defined as categorical (such as gender); ordinal is defined as categorical that can be ordered from least to most (such as employee evaluation rank); interval data can define ratios . While all of the models discussed can include all three types of input variables, the model choice is different if the outcome variable is interval or nominal. Another consideration for model choice is whether the input variables are fixed effects or random effects proc step, proc glm, proc mixed, proc genmod, regression analysis, logistic distribution, logistic regression, proc glimmix, proc reg, response variable, repeated measures, anova, fixed effects, proc logistic, covariance, sample, degrees of freedom, ordinal variable, poisson distribution 7
54 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 6
55 Generating Half-normal Plot for Zero-inflated Binomial Regression Zhao Yang,
Xuezheng Sun
The Half-normal Plot, a valuable tool in model diagnostics, is a statistical graph based on the simulated enve- lope. Michael Friendly (1998) contributed the macro %halfnormal for generalized linear models, while the macro %halfnormal can only be used in some distributions: Normal, Binomial, Poisson and Gamma distribution. Since the zero-inflated binomial(ZIB) model was well-defined by D. Hall (2000), it is becoming popular in modeling the zero-inflated binomial data, including some pharmaceutical data, such as natural immunity. And the half-normal plot is a good way to evaluate model fitting for ZIB model. The macro( %halfnormal_zib) developed in this paper can be used to generate half-normal plot for ZIB regression, which is easily implemented in practice. And we show the application of macro %halfnormal_zib via a simulated data and Whitefly dataset used in Hall's paper. binomial distribution, proc step, regression analysis, model training, estimate, likelihood function, response variable, sample 12
56 Get your SAS in gear - Automate Appendix Numbers, Titles and Footnotes Liz Taylor,
Chadds Ford
When deadlines are looming it's time consuming, as well as frustrating, to have to make last minute 'cosmetic' programming changes such as: Reordering the Appendices to accommodate for the insertion/deletion of a Table/Listing/ Figure Modifying Titles and/or Footnotes to correct misspellings or to include additional explanations that could not have been anticipated until the data was unblinded Defining Appendix Numbers, Titles, and Footnotes separate from SAS, such as in an EXCEL spreadsheet, allows the SAS programmer to concentrate on generating the bo dy of the Table/Listing/Figure without having to worry about making m odifications to the program every time a change to the Titles and/or Footnotes is required . Responsibility for the maintenance of the Title and Footnote information can even be delegated to a non - programmer. Titles and Footnotes can be 'previewed' prior to running the SAS program footnote statement, dataset, macro definition, excel 10
57 Get your SAS in gear - Automate the Production of Analysis Datasets Liz Taylor,
Chadds Ford
The production of Analysis Datasets can be greatly simplified by using SAS Macros to perform the following functions: Automatically generate a Decode Variable for every Coded Variable in the Raw Dataset or any Work Dataset Reorganize the order of the variables in the Analysis Dataset so that the Code d and Decode variables are together For an Analysis Dataset that do es not contain any derived variables, these Macros can be used to read in a Raw Dataset. For an Analysis Dataset that requires derived variables, these Macros can be used to read in a Work Dataset in which the derived variables have already been generate d adam dataset, label statement, macro variable, temporary dataset, proc step 10
58 Getting and Keeping a Job as a Remote Employee Erin M. Christen SAS Programming in the clinical environment is a career uniquely suited to remote employees. As SAS Programmers, we work almost exclusively on computer networks. We work on multi-site teams, so the infrastructure for communication from the home office to other locations is already in place. Most of us are already set up to work from home in the evenings, if necessary. The work that we do has definite deliverables so that management knows, and we can prove, that we are in fact 'working' from home. Uniquely suited as it is, getting a job as a remote employee can be difficult, but it is not impossible. This paper will cover the basics of remote employment, how to get a job working from home and how to keep it. It will also provide some food for thought for managers who may or may not be considering allowing employees to work remotely sas programming, proc step 7
59 Good Programming Practices in Clinical Trial - a Check Program John H. Adams Large pharmaceutical companies typically have many programmers, data managers and statisticians producing trial analysis and reporting programs. Each of these has their own style in programming. Unfortunately, such a large variety in program styles can lead to problems in the quality, readability, verifiability and maintainability of the program code. Establishing a central standard, or guideline, for good programming practices (GPP) is therefore a necessary first step for large companies. By requiring all programs to meet the GPP guideline, we can insure that we produce high quality programs that are easily readable by others, can be verified easily and can be easily maintained. A macro program (GPP_Check) was written that allows a user to check his/her programs against the GPP guideline (a GPP report). The macro also gives a user additional reports that essentially profiles his/her program, e.g clinical trial, data cleaning, sample, proc sql 12
60 Guiding Principles of Trusted Leadership Leadership Built to Serve and Prevail in Times of Change Sandy Paternotte Competitive industry places fierce demands on leadership as it continually challenges the quality to improve, the cost to lower, and the change to be perpetual as we strive to meet new goals with process and product improvement. Older styles of management founded in control and power can sometimes offer short term gains, but in the long run will be counter-productive, if not collapse, under the strain of these pressures. Guiding Principles of Trusted Leadership offers an exciting departure from traditional leadership principles, focusing on developing the heart of the leader who is truly motivated first to serve our most precious resource, our employees. The tried and true leadership principles outlined in Guiding Principles of Trusted Leadership give us sound and lasting strategies for building teamwork and retaining staff who are energized and invested about change and improvements, and who will prevail 14
61 Heuristic Algo: Backwards Elimination Process for a Model Varsha C. Shah Determination of the best (most important or most valid) subset of covariates and corresponding best fitting regression model for describing the relationship between a response and a set of predictors is the primary goal of many analyses. Some procedures in SAS have options to help automate this selection process. There are justified reasons why such selection procedures are not standard for all the procedures. In certain instances, the selection criteria for choosing the best model (R2, F, MSE, Cp) are not applicable because of the nature of the predictor variables (e.g., time-dependent) or the model structure. All algorithms for selecting the best model require that a maximum model be specified. If the goal of the analysis is prediction, we want to avoid including a variable that isn't truly related to the outcome (i.e., making a Type I error) and therefore only a few important variables are specified in the maximum model. If the goal of the analysis is to identify all possible important predictors or potential confounders, we want to include a large maximum model minimize the risk of make a Type II error (i.e., missing a potentially important predictor/confounder). In this latter case, when the number of predictors is large, a reasonable strategy is to delete variables one at a time in a backwards elimination process. The author describes an algorithm which implements a backward elimination procedure for evaluating models to illustrate the possibilities of combining 1) creation of macro variables with 2) powerful features of ODS retaining the results in temporary work datasets. This enables one to create own iterative processes, or extract the information from detailed output to present in a table form for summary etc. etc. One can exploit the power and flexibility of SAS to achieve the goals in very efficient way. predictor variable, macro variable, temporary dataset 7
62 Hidden Data Loss in Manipulation of Data Tim Tian Programmers and statisticians spend a great deal of time manipulating the data before reaching their final destination - Table, Listing, or Figure. In general, data steps, procedures, and functions are used to process the data. Some data steps and procedures get unexpected results (data loss) when combining various functions together. Sometimes the code works differently than you thought it would. For example, DATA STEP using DELETE with FIRST or LAST, Merge or Set followed by some functions, etc. In this paper I will show you how to avoid various data manipulation mistakes and examples of code that doesn't follow the logic you believe will be presented data step, by group processing 5
63 Highly Effective Batch Processing Haibin Shu The author developed a novel approach to processing large number of SAS programs in batch mode by overcoming the disadvantages of existing methods through re-engineering the file selecting process and implementing using highly efficient macro modules. The approach was highly consolidated in programming steps, portable from one study to another and manageable by maintaining a single source log file batch job, batch processing 3
64 HIRE Power in the Pharmaceutical Industry Neil H. Howard "The best thing you can do for your competition is to select poor quality staff." VP Recruitment, Microsoft You are interviewing a candidate in a sharp navy suit, with an im pressive resume and ten years of SAS experience. But, how do you tell if this ten years of experience is really ten years, or the same year over and over again? If, indeed, past behavior or past job performance is the best indicator of future performance, how is the SAS community probi ng for the facts? What are our assessment criteria? The author developed a survey tool adminis tered to selected SAS programmers, analys ts, trainers, human resource experts, and managers as a reality check into our per formance as interviewers and our experienc e as interviewees pharmaceutical industry, sas programming, sas programmer, data cleaning 13
65 How to Get Promoted: Planning for Career Growth Sandra Minjoe Are you stuck in what feels like a dead-end job? Did someone else get the promotion that you felt you deserved? Are you plagued with boring tasks and looking for something more challenging? Is your current management seemingly unaware of skills that you have that could contribute to the department? If you answered "yes" to any of these questions, read on for some tips that might help you grow in your career. As we spend more time in the field of SAS programming, we move from performing straightforward tasks under direct supervision of others, to working alone on a big chunk of work, to tackling more complex tasks, to supervising other programmers, and so on. As we gain experience and skills, we expect to be promoted up the line, accepting more responsibility in exchange for higher pay and a loftier title. But promotions are usually not given as a reward for doing things well, or for sticking around a long time. Instead, promotions are a way of filling a particular need of the company 8
66 How to Get Upper (or Lower) Error Bars with INTERPOL=HILOCTJ? Adeline Yeo This paper presents the interpol=hiloctj option in the symbol statement to create upper or lower standard error bars with mean response plots proc calis, standard deviation 4
67 Human Efficiency: A Factor That Can't Be Ignored When Designing a SAS Macro Michele Zhang,
Blue Bell
In the pharmaceutical industry, the most common and complex clinical trial s are the phase II and phase II I trials . Projects involving multiple phase II and phase III trials are particularly complex. For prog rammers working on these projects , o ne of the major responsibilities is to produce safety and efficacy tables to support data analyses. In order to speed up this programming effort, we often use macros to program the same type of tables across different protocols. However, the way we design our macro s can make a huge difference in our daily pro gramming work. This paper uses a case study to demonstrate how we approach our real-life problem s and how we have altered the traditional method for designing macros in order to make our programming work more efficient macro variable, macro definition, data cleaning, macro call, macro loop, %if-%then-%else 8
68 Hyperlinks and Bookmarks with ODS RTF Scott Osowski The ODS RTF output destination in the SAS System opens up a world of formatting and stylistic enhancements for your output. Furthermore, it allows you to use hyperlinks to navigate both within a document and to external files. Using the STYLE option in the REPORT procedure is one way of accomplishing this goal and has been demonstrated in previous publications. In contrast, this paper demonstrates a new and more flexible approach to creating hyperlinks and bookmarks using embedded RTF control words, PROC REPORT, and the ODS RTF destination proc report, proc step, ods rtf, proc contents 8
69 Identifying the roles and responsibilities of programmers and statisticians in the planning, in-life and post-filing activities for a new drug or vaccine product Margaret James,
Amy Gillespie,
Ying Su,
William Malbecq
A challenge facing those managing the development of pharmaceutical products is how to balance resources, while leveraging the unique contributions of statisticians and programmers, to meet the project timelines for deliverables. To effectively meet the many requirements it is imperative that statisticians and programmers work closely and collaboratively on a team. This paper provides how project tasks between statisticians and programmers might be divided and identified with a modified type of RACI matrix. The role that the statistician or programmer has in a specific task is identified as either Responsible, Accountable (A), In Support of (S) or For Information (I). The timing of when major accountable items typically occur is displayed in a modified Gantt chart which can be useful in understanding upon whom the accountability is being placed between key project milestones from protocol approval to post-filing activities data science, database lock 6
70 Implementing CDISC Data Models in the SAS Metadata Server Michael Kilhullen The SAS metadata server is a core component of all SAS 9 solutions. It delivers the power to integrate, share, centrally manage and leverage metadata across entire organizations. Through these capabilities, standard data models such as the CDISC Study Data Tabulation Model (SDTM) can be deployed and leveraged by all users in your organization without the need for developing additional metadata libraries or programs. In this paper, we examine the value that the SAS Open Metadata Architecture can bring to your organization, how the SDTM data model is implemented in the metadata server, and how the metadata can be leveraged by SAS products and solutions such as SAS Data Integration Studio controlled terminology, sas 9, proc step, data cleaning, cdisc 7
71 Implementing SAS using Microsoft Windows Server and Remote Desktop Paul M. Gilbert,
Steven Light
DataCeutics provides SAS-based clinical and statistical reportin g services to multiple pharmaceutical and biotechnology clients. This requires us to maintain a Microsoft Windows SAS programming environment that is easily and cost effectively managed by our systems administrators, supports multiple versions of SAS, sup ports related programming tools, supports electronic submission tools, allows our staff to work at the office or remotely, and provides our programming staff with a regulatory compliant environment. In this paper we discuss the advantages of using a Windo ws Server platform with user access via Remote Desktop vs. distributed Windows installations. We describe the Microsoft Windows software required to support the platform; the tools that are needed to support the SAS-based programming/electronic submission environment, and outline the qualification of this environment to meet industry systems compliance standards sas programming, data cleaning 5
72 Imputing ISO8601 Dates From Character Variables Containing Partial Dates John R. Gerlach Assume that there is an initiative to include legacy studies into a database such that the original data are converted into SDTM domains in compliance with CDISC standards. One aspect of this effort involves date variables that must follow ISO8601 rules. This sub-task would be easy if the data were stored in SAS data sets and, specifically, the dates were stored as SAS date variables. Unfortunately, the plethora of data is stored mostly as raw text files. Moreover, dates are stored as character variables in various formats (e.g., mmddyyyy, yyyymmdd). Even worse, the date variables contain partial dates and, perhaps, bogus values. This paper explains a SAS macro that imputes ISO8601 dates from character variables containing even partial dates character variable, date variable, imputation, adverse events, macro call, keyword parameter, %macro parameters, sdtm domain, cdisc 4
73 Just Enough SAS to Identify Yourself in a Networked World Na Li Do you ever issue X commands on the server, which run successfully, only to find the same commands fail on your local PC? Do you cringe at the sight of "Permission Denied"? Did you re-boot and absent- mindedly forget to re-map that network drive? If you answered 'Yes' to any of these questions, then this article is for you. We present the net.exe command, which has been a part of DOS since Windows 95. You can - from within SAS - issue X commands to synchronize time between Client and Host, check the names of available and open "shares," or even manage and control a remote system, mounting and unmounting its network drives. Your SAS program is no longer a passive, independent entity! Skill Level: Beginning to Intermediate familiarity with Base/SAS, FILENAME and LIBNAME statements libname statement, batch job 6
74 Large Scale Standard Macros - A Methodical Approach to Development and Implementation Jeremy Gratt,
John H. Adams
Much of the analysis for clinical trials in the pharmaceutical industry is done with very large standard macros. The use of these macros facilitates the goal of standardizing and accelerating the production of clinical reports within a company. Each standard macro is typically specialized to analyze and report on a specific type of data such as efficacy, safety, drug interactions, or demographics. The challenges encountered during the development of large scale SAS macros and the development process adopted at Boehringer-Ingelheim will be described. This methodical approach improves development efficiency and maintainability. Essential elements of the approach that will be covered include the software development life cycle, macro storage and versioning, modular program structure, program documentation, and common macro tools macro parameter, sample, in=, out=, macro call, macro variable, proc step, adverse events 18
75 Let the ODS PRINTER Statement Take Your Output into the Twenty-First Century Scott Huntley Since its debut in SAS 8.2, the ODS PRINTER statement has steadily become more versatile, more flexible, and more robust. Working closely with Technical Suppor t and the balloting system, we have added new items in response to our users' needs. Inline formatting, tabl e-of-contents handling, and Unicode support are some of the many new enhancements available to users of SAS 9.2. With all the new changes, ODS PRINTER will take your output into the twenty-first century and beyond proc print, title statement 10
76 Longitudinal Graphs with Annotate Jasmin Fredette The Annotate facility from SAS/GRAPH is a flexible in terface most commonly used to enhance graphics but it can also g enerate graphs entirely. In many situations graphical representations are ch osen in preference to tables to comm unicate resu lts m ore immediately and effectively. For example, when considering a sequence of events over a period of time, longitudinal graphs are bette r at illustrating comparability and pote ntial trends. However, these graphs can be difficult to produce and often require more complex programs than their cou nterpart tables to achieve the des ired result. M ore spec ifically, parameters governing the content and style of the figure can vary depending on both the graph's purpose and the nature of the data adverse events, macro variable, clinical trial, concomitant medications, macro call, sample 11
77 Macros to Create Quality Control (QC) Documents Xiaoyu (Sean) Liu,
Hong (Ellen) Xiao
Validation is an important work in clinical trial studies. One of the key task for validation is to create QC documents. It will take much time to collect the required information and enter it. However, all the information actually exists in SAS programs and LOG files. If we can automatically extract the information, combine and save it in an EXCEL file, we can not only save some time, but also find some important clues for potential issues. This paper presents two SAS macros (%dir_qc_doc and %pgm_qc_doc) for creating the QC documents. They can automatically extract table/figure/listing (TFL) titles, program names, location, datasets used, macros called, population and author, etc. from SAS programs and illegal messages, such as errors, warnings, empty datasets, unknown formats and merge with repeat, etc. from LOG files and then combine and save them into an EXCEL file excel, proc step, data cleaning, macro definition 13
78 Macros to Create Quality Control (QC) Documents Xiaoyu (Sean) Liu,
Hong (Ellen) Xiao
Validation is an important work in clinical trial studies. One of the key task for validation is to create QC documents. It will take much time to collect the required information and enter it. However, all the information actually exists in SAS programs and LOG files. If we can automatically extract the information, combine and save it in an EXCEL file, we can not only save some time, but also find some important clues for potential issues. This paper presents two SAS macros (%dir_qc_doc and %pgm_qc_doc) for creating the QC documents. They can automatically extract table/figure/listing (TFL) titles, program names, location, datasets used, macros called, population and author, etc. from SAS programs and illegal messages, such as errors, warnings, empty datasets, unknown formats and merge with repeat, etc. from LOG files and then combine and save them into an EXCEL file excel, proc step, data cleaning, macro definition 13
79 Macros to get to "Know Thy Data" Diane E. Foose Every programmer at one time or another has heard the motto 'Know Thy Data". There have been many papers on this subject over the years at all the SUGs. Well, here is a practical paper to help you to get to know your data. In this paper, we will give you some macros to use and before you know it, you will Know Your Data. Starting with printing of the data through getting metadata about your data, hopefully, you will find something that will help you get your work finished faster. These macros are a stepping stone to use while you sift through the various layers of your data. As you use them you can enhance as you see fit. The key to these macros is that they are simplistic and general in scope to apply to many different areas proc step, proc freq, proc contents, proc print, proc means, adverse events 14
80 Managing Clinical Trials Data using SAS Software Martin J. Rosenberg For over five years, one of the largest clinical trials ever conducted (over 670,000 pages from 90,000 patients and 2,000 investigators) was managed using a SAS Powered clinical data management system. All data were entered, stored, managed, and analyzed using SAS/SHARE as the database server, SAS tables for ph ysical storage, and Microsoft Windows as the operating system on both the server and desktop. Electroni c images of Case Report Forms (CRFs) were used extensively in lieu of the paper CRFs. Although it origins are in statis tical analysis, the SAS system ha s evolved to encompass many features once thought to be the exclusive province of traditional transaction oriented relational database management systems data governance, clinical data management, clinical data, clinical trial, dataset, clinical data management system, where statement, audit trail, relational database, data science, proc step, proc sql, index 7
81 Manipulating the Plot Area When Using CALL EXECUTE to Create Multiple Graphs Brandon Graham One common method for producing multiple graphs in a single SAS program is by using the CALL EXECUTE routine to create one graph for each record of a data set. The purpose of this paper is to present an approach and an overview of a macro that was developed to aid in the creation of multiple graphs when it is necessary to have consistent plot areas that are different from the plot areas that SAS will automatically define. More specifically, this approach allows for dynamically defined consistent plot ranges, tick marks, and vertical or horizontal reference lines. This paper will outline an approach to accomplish these goals and give an overview of a macro that was developed for this purpose call execute, proc gplot 5
82 Mapping Clinical Data to a Standard Structure: A Table Driven Approach Nancy Brucken,
Paul K. Slagle
Clinical Research Organizations (CROs) are often hired for projects involving mapping multiple disparate studies into a single submission database, or mapping legacy studies to Clinical Data Interchange Standards Consortium (CDISC) standards. Before programming begins, documentation containing details about the transformation is created. Then, programs are developed which incorporate the documents into logic, a process which takes considerable time and resources. Very often, such mapping systems have been developed as a series of custom macros or programs, which will work for mapping a single study into the target specifications, but break down when applied to multiple studies or projects. This paper describes a self-documenting table-driven mapping system developed by i3 Statprobe to be reusable across multiple studies and projects, which incorporates that effort into a single process out=, in=, macro call, proc step, sample, proc sql, dictionary tables, cdisc 7
83 MDMAP - An innovative application utilized in the management of clinical trial metadata Gregory Ridge,
Neeru Bhardwaj
Since 1999, sanofi -aventis has delivered all of its Item 11 components for a new drug application to the FDA in electronic format. While the product delivered was compliant with the guidance set forth by the agency, the technologies and methodologies used by the company varied from project to project. In 2003, a diverse working group was formed to standardize the method used by the Biostatistics organization when producing an electronic submission. This group's primary goals were the standardization and automation of the processes that Biostatistics used worldwide to capture, manag e and maintain the clinical trial metadata. After extensive development and validation, MDMAP (Meta Data Management and Publishing) was deployed to the users worldwide. This application, developed in SAS/INTRNET and the J2EE framework, has streamlined t he sometimes-cumbersome activity of collecting and managing clinical trial metadata audit trail, clinical trial, adam dataset, oracle, format statement, proc step, cdisc 9
84 Meta Data That You (Probably) Didn't Know That You Had: A Beginners' Guide to Using SAS Dictionaries and Automatic Macro Variables Richard F. Pless Very often programmers find themselves re-running the same code with slight modifications to reflect a new FILENAME, date or directory. How many times have you found yourself making minor edits to existing code to help it run on a new day or handle a slightly different input file? How many times have administrative notes not been updated such as who ran the code or where it is located? Even worse, how many times have deadlines been missed because a program's author wasn't there to make the necessary minor edits to the code? Thankfully SAS has a number of tools to help you reduce the tedium of manual updates and avoid their associated errors. SAS provides a number of resources that can be easily incorporated in your code to make your programs more extensible and robust. Many hard-coded dataset and variable references in your code can be replaced through the use of SAS dictionaries macro variable, automatic macro variable, sysrc, proc step, proc sql, proc compare, date variable, select, filename statement, libname statement, dataset, macro put, options statement, dictionary tables 12
85 Methods for Generating Excel Files from SAS Datasets Xingshu Zhu,
Shuping Zhang
When processing data in pharmaceutical research, it is often necessary for a SAS programmer to transform a SAS dataset to an EXCEL file format . Several methods for performing this transformation have been published in previous SAS conference proceedings. In this paper, we briefly introduce each of these methods and offer a critical assessment of the advantages and disadvantages of each approach. We also provide recommendations on the appropriate method to use when a SAS dataset must be transformed into an EXCEL file under a specific set of circumstances excel, dataset, proc step, proc export, delimited file, macro call, ods html, ods csv, macro definition 7
86 Murphy was an optimist: a realistic approach to clinical trial data Pamela L. Reading This paper is aimed at programmers and statisticians who are relatively new to the arena of pharmaceutical clinical trials. Its purpose is to help them look critically at the specifications and program code they develop when creating analysis datasets and data displays. If they approach their tasks with a healthy level of suspicion about the quality and completeness of their data, they are more likely to think about, look for, specify and code for the 'edge cases'. Edge cases are the rule in clinical data, not the exception! clinical trial, clinical data, missing value, date variable 4
87 My Experience as a Facilitator Between Biostatisticians and SAS Programmers Carey G. Smoak I was recently promoted to a supervisory position of SAS programmers in our department. One of my roles is to be a facilitator between biostatisticians and SAS programmers. In this role, it is important to be supportive of both sides. While this definitely applies to handling conflict, the same principles apply to sharing ideas between these two groups. Compromise is usually the result of this process and is usually necessary because a gap exists between what is ideal and what is realistic. Having a facilitator between biostatisticians and SAS programmers can assist in achieving compromise acceptable to both parties. The key to being a good facilitator is to have effective people skills sas programmer, data science 3
88 Numeric Precision in SAS - an Example Varsha C. Shah We are so much used to let the computers do our mathematical computations; it has become way of life.. We have more trust in the results produced by the computers than ourselves. And that is the way it should be. So what is the purpose of this article? The transition from the world of absolute mathematics to practical world of computers is so smooth, so quick, that we are under influence of perfect conviction that it is one in the same. In general, we could almost say so. However, there is a small chance when the results are close, but not identical. A small example of simple additions will illustrate one such case. Further, it illustrates that the functions in SAS handle such anomalies proc step, proc univariate 3
89 Page Breaks: Simple and Effective Ways to Neatly Present Data Suzanne M. Humphreys In the pharmaceutical reporting world, page breaks can be a remarkably frustrating experience. Some data are very simple to report, the text variables do not wrap onto the next line and there is a set number of lines you wish to display on each page. However, often this is not the case - adverse events, physical examinations, concomitant medications, or just having to report unscheduled visits in the correct date order without knowing how many there could be. This paper will present you with a range of options for setting up page break variables, solving simple to more advanced problems. All data will be reported using the REPORT procedure but the page break variable will also be useful for other reporting procedures or practices. Intended audience - beginner to intermediate, not limited to any particular operating system, based on SAS 8.2. KEYWORDS: page breaks, PROC REPORT, adverse events, counting system organ class, proc report, adverse events, proc step, change from baseline, concomitant medications, variable list, macro definition 9
90 Patient Profile: A Menu-Driven System Adel Fahmy In clinical trials, patient profiles are usually requested by medical writers and data managers. Medical writers need them to write narratives about adv erse reactions to trial drugs and their relationships with concomitant medications, pre -existing medical conditions, vital signs, and lab results. Data managers need them to resolve data issues. The process is considered one of the most complicated ones, s ince it involves gathering all information for each subject. Furthermore, it consumes valuable project time in investigating case report forms, contents of datasets and code lists, programming and validation. Unfortunately, the same process is usually repeated for new projects. We present here a user -friendly menu-driven system using SAS macros. The macros will do the investigative work, identifying datasets, variables, labels, and formats. You need to provide only 3 pieces of information: where the data is located, subject randomization dataset, and subject unique ID variable macro variable, macro definition, randomization, stored macro, %if-%then-%else 12
91 Perfecting the Publishing Process with SAS 9.1.3 P. Chris Holland Creating high-quality tables and data summaries that int egrate easily into reports and their appendices has become an age-old challenge for SAS programmers. New developments and techniques continually emerge to improve upon previous solutions. T his paper w ill pull together a number of enhancements that SAS has prov ided over the y ears, including some of the most recent ones available in SAS ve rsion 9.1.3. The techniques pertain particularly to post- script output and they address T EMPLATE PROCEDURE OPTIONS, foot noting, indenting, line breaks, bookmarking, and the ever-present "Page X of N" problem. T echniques are also provided fo r converting various output files into the portable document format (PDF) and compiling them into one fully bookmarked PDF document proc report, proc step, sas programmer, sample, file statement, macro variable, proc template, regulatory submission, ods rtf, output delivery system 12
92 Performing Deconvolution Operations in SAS for Input Rate Computation Steven Hege Deconvolution is a non-parametric technique used in the quantitative analysis of systems in different scientific fields. For example, in the pharmaceutical industry, the technique can be used in the study of input characteristics across time and bio-equivalence of two or more dosage forms. This paper presents two macros that perform these deconvolution analyses within the SAS System. The first macro provides a framework for processing of data from multiple subjects. The second macro executes the deconvolution operation for each individual using an iterative algorithm. SAS Base was the only SAS product used in this paper and there was a minor limitation for the operating system that can be easily modified as needed macro definition, input statement 8
93 Preparing CTD (Common Technical Document) for FDA Submission Charlie Xu Using Seroquel sNDA as example, the paper discusses the work and the issues coming along in the process of preparing CTD documents to the FDA when it comes to clinical data integration, table templates, local publishing, efficacy tables, data definition files, etc. The author has introduced AstraZeneca's commitment to preparing CTD's and the analysis & reporting standardization, the company's own electronic library, as well as the ongoing implementation of CDISC standards sas programmer, clinical trial, csr, sas programming, data integration, clinical data, cdisc 7
94 PROC FORMAT is Our Friend Erin M. Christen For many programmers, formats are a magical wand that Data Management waves over the data to make everything 'pretty'. With the advent of electronic-submission-ready databases and CDISC standards even this application for PROC FORMAT has begun to fade. The average programmer uses PROC FORMAT only to make output 'pretty'. With the right approach PROC FORMAT can be so much more than just cosmetic. It can make many tasks simpler, make processes more automated, make changes quicker/easier to implement and ensure consistency among programs. This paper will cover the basics of PROC FORMAT, as well as some more advanced techniques. Best of all, the paper will provide numerous concrete examples of how PROC FORMAT can become a programmer's best friend proc format, proc step, proc freq, char., missing value, format statement, out=, character variable, numeric variable, nominal variable, data step, if-then-else, error message, in=, proc options, sysdate9, sample, cdisc 20
95 PROC REPORT: Doin' It in STYLE! Ray Pass,
Sandy McNeill
The advent of the SAS Output Deliver y System (ODS to its friends) has turn ed SAS reports from machine-generated, black & white monospace bores into people-pr oduced, productive and reader-friendly information displays. One of the m ain principles underlying ODS is the use of Table and Sty le d efinitions (also known as Table and Sty le templates). Most procedures hav e a standard output la yout structure and rely on their Table and S tyle definitions to gov ern the cosmetic or stylistic appearance of th eir tables. Cert ain procedures (REPORT, TABULATE, etc), however, by the very nature of their complete structural customizability, do not rely on fixed external table definitions. For these procedures, stylistic customizations are performed through the use of the STYLE option, an ODS concept which is integrated into the heart of the procedures' syntax. This presentation will demonstrate the use of STYLEs in the REPORT procedure proc report, proc step, ods html, cpu time, user-defined format 13
96 PROC SQL: An Efficient Tool for Creating Macro Variables Louie Huang Are you a PROC SQL lover? Are you interested in creating multiple macro variables with a few lines of code? Are you interested in shortening your SAS code significantly and running your SAS files efficiently? PROC SQL offers a lot of useful features, which includes, but is not limited to: 1) combine the functionality of DATA and PROC steps into one single step, 2) sort, summarize, join (merge) and concatenate datasets, 3) construct in-line views using the FROM and SELECT clauses, 4) line up multiple macro variables using the INTO clause. In my programming practice, I use PROC SQL to solve a lot of programming problems, sometimes it is even impossible to solve a programming problem without using PROC SQL. Since the applications of PROC SQL in SAS programming are so broad, this paper will only focus on creating macro variables from SAS data using PROC SQL. Concrete examples are provided to demonstrate the advantages of PROC SQL in creating macro variables over the CALL SYMPUT routine macro variable, proc sql, proc step, call symput, dataset, sas log, proc sort 6
97 Put Down That Mouse! Daniel J. Boisvert The SAS Display Manager System is the most wi dely used interface in SAS. Understanding all it has to offer allows the programmer to write code more efficiently. This paper will present one trick to spark interest in using the Enhan ced Editor and its keyboard shortcuts. New users and seasoned pros can all benefit from this trick 5
98 QA Your SAS Job! Jianming He Although Quality Assurance is the most important stage of the entire SAS coding process, many programmers may skip it because of the shortage of resources, particularly time. This paper discusses the systematic solution to QA a SAS program. It covers the art of writing stylish code and to QA by different parties. It also utilizes the new feature of SAS 9.1 to get a SAS dataset version of a data flowchart business intelligence, sas log, sas programming 3
99 Quote Me On This: How To Make SAS Talk Database Paul D. Sherman Introducing the %qcomma() macro function. I use it all the time to go from SAS variable names, which are unquoted and space delimited, to an Oracle or DB2 list-of-values, for example, which are single quoted and comma delimited. Clinical treatment group, study number and patient id are examples of user variables which have many values. There may be many patients, each of whom undergo many studies and in each study are experimentally treated in many ways. You might want to analyze only a few patients or report only a few studies. All of this data is usually kept relationally in a big database often in normalized and long & skinny tables, and accessed and managed using SQL. The macro function presented in this article allows seemless transition between SAS and that database macro function, proc sql, macro put, variable, proc step, macro variable, macro definition 5
100 Randomization in Clinical Trial Studies David Shen,
Zaizai Lu
Randomization is of central importance in clinical trials. It prevents selection bias and insures against accidental bias. It produces comparable groups, and eliminates the source of bias in treatment assignments. Finally, it permits the use of probability theory to express the likelihood of chance as a source for the difference between outcomes. This paper discusses four common randomization methods. SAS implementation of randomization is provided with RANUNI and RANOR functions, PROC SURVEYSELECT and PROC PLAN randomization, sample, proc step, clinical trial, power analysis, sample size, proc surveyselect, proc freq 8
101 Real Time: what is it and what are we doing about it? Richard H. Phillips,
Gregory S. Barnes Nelson
Real-time computing is the term used to describe systems which are subject to constraints in time. Typical data warehousing processes are, more often than not, batch processes that are allowed as much time as needed to perform the required transformations and loading processes. Business Intelligence (BI) applications, typically built on top of data warehousing systems, demand exceptional performance by the user and people work hard to optimize for performance, yet performance problems rarely incur any serious penalty as BI applications tend to surface strategic information about the company - not the kind of information that drives the company today. This is contrary to what we believe can be achieved. SAS Software is applied in many contexts and different scenarios. Common uses include as the driver for an ETL process (to a data warehouse/mart/hut/superstore) and as a just-in-time reporting tool business intelligence, data integration, operational data store, sas programmer, data warehouse, data governance, sas 9, batch processing, sas log, data validation rules, proc sql 14
102 Sample Size Calculation and Timeline Estimate for Progression-Free Survival Chung-Kuei Chang Progression-free survival (PFS) is frequently used as the primary endpoint in phase II and III studies for late-stage diseases in oncology. PFS is the duration from enrollment to disease progression or death, whichever occurs first. The actual occurrence of disease progression cannot be observed until the next scheduled assessment (interval censoring) or when death occurs before progression. The log-rank test is commonly used in the comparison of treatment effect on PFS. The sample size for PFS without adjusting for interval-censoring or taking into account the hazard ratio of survival is very likely to underachieve the desired power . Unfortunately, major software for sample size calculation (e.g., nQuery Advisor, SAS, PASS, and East) does not have this function. The SAS macro demonstrated in this paper is focused on this unmet need and provides timeline estimate. Key words: survival analysis, progression-free survival, staggered enrollment, power simulation, timeline projection sample size, hazard ratio, sample, exponential distribution, interval censoring, median survival, progression-free survival, confidence interval, randomization, clinical trial, macro definition, proc power and sample size, uniform distribution, log-rank test, primary endpoint, rank test 10
103 SAS & Safety Signal Detection and Analysis Karthikeyan Chidambaram,
Sunandan Banerjee
adverse events, data mart, clinical trial, staging area 8
104 SAS and VMware to Create an Environment for Computer Systems Validation in a Pharmaceutical Company Wayne F. Woo 21 CFR Part 11 states that computer systems used in the clinical trials process must adhere to certain criteria, one of which is validation. The computer systems validation (CSV) paradigm exists to provide guidance and structure to this process. Within the SAS programming environment, there is a lot of debate on how to approach validation, both of the SAS programming environment itself, and the applications that get created. There often are contentious viewpoints. The CSV model calls for separate areas for development, testing, and production to ensure that there is an orderly, documented path to the development of SAS programs and enhancements to the SAS infrastructure itself. This paper examines how virtualization of systems can play a role in adhering to CSV principles for SAS systems. An example is given of how our company is using VMWARE technology to host a development and testing environment data cleaning, sas programming 5
105 SAS Drug Development: Bringing Innovation to Life Sciences David Handelsman Programmers and biostatisticians working in the cli nical research industries have successfully used SA S for many years to transform data, generate safety and effica cy results, and submit data to FDA. In many ways, the basic business process and tools for these tasks have cha nged little over the years, and any such changes ha ve largely been incremental. SAS Drug Development provides inn ovative capabilities to not only meet the historic needs of the industry, but to efficiently collaborate across tri als, phases, therapeutic areas, departmental organi zations and technologies, and ultimately get drugs, biologics a nd devices to market faster. This paper will discuss how SAS Drug Development supports established business issues like data transf ormations, statistical programming and regulatory compliance, and emerging business issues such as CDISC and the recently released "Critical Path Opportunities List" from th e FDA clinical research, clinical trial, clinical data, edc, data governance, clinical data management, interim analysis, adverse events, quality control, dataset, life sciences, sas programming, data cleaning, cdisc 12
106 SAS PROC SQL or Vanilla Flavor Angelina Cecilia Mauldin SQL is a language that is used in several relational database software systems. The basics of SQL extend to most of these packages and are known as ANSI (American National Standards Institute). SAS PROC SQL has the ANSI standards in addition to several of the SAS statements and functions that are particular to the SAS/BASE. Some of these statements and functions are not widely used maybe because there are not enough publications showing advantages for programming, computer optimization and correct implementation. This paper assumes basic knowledge of SAS PROC SQL, and describes some features of the procedure that make this procedure particularly useful and can improve plain vanilla SAS PROC SQL proc sql, proc step, data step, select, where statement, create table, having 9
107 SAS Programs from UNIX to PC and Beyond Christopher Kania Over the past two years, Biogen Idec has been in the process of moving from a PC based SAS platform to a UNIX based SAS platform. There has been a range of acceptance by the Biostatistics department, some are eager and some are reluctant to make the move. Many fall somewhere in between, they would like to move to UNIX, but don't want to give up some of the so-called PC only advantages. Moreover, we frequently work with outside consultants, partners, or Contract Research Organizations (CROs) that likely use SAS on the PC. A method was deployed that allows any user to run SAS programs from either platform, or run the program from another machine at a partner, CRO, or consultant site. This paper will discuss why some people were reluctant to make the move, and how we met their concerns, and the method used to allow people to move SAS programs from UNIX to PC and back without making changes dataset, macro variable, options statement, sas base, macro call, sas enterprise guide 8
108 SAS, GNU & Open Source: MinGW Development Tools and Sample Applications Brian P. Fairfield-Carter Although many products of the Open Source initiative have been successfully adopted in the SAS world (notably Linux, and the CVS/TortoiseCVS version control system), open source applications written by and for SAS users are somewhat under-represented. Of the 100,000+ applications currently registered on SourceForge (the world's largest open source clearing house), a search for SAS-related applications currently yields fewer than a dozen projects. The willingness of SAS users to freely exchange ideas and source code is evidenced by the popularity of SAS conferences and by the wealth of information distributed on mail lists such as SAS-L, and tends to suggest motivations similar to those driving the development and distribution of open source software (namely the desire to increase the quality of software by allowing fellow programmers to freely read, modify and re-distribute source code) proc report, proc step, excel, sample, sas output 12
109 Say 'Hello' to #BYVAL: Re-introducing a Hot Little # Stephen Hunt One of the most seldom used (and least expounded upon) of all SAS options, #BYVAL deserves more recognition that it typically receives. Although its functionality is limited to the context of titles and footnotes, creative use of #BYVAL can contribute simple solutions to both common and complex problems. Possibly nowhere is this better demonstrated than in easing the pain associated with creating patient profile listings without resorting to data _NULL_ proc step, proc report, sample, data step 6
110 Searching for the Right Search Tool Eugene Yeh,
Angela S. Ringelberg
SAS programmers work with many files of different file types (e.g. SAS data sets, EXCEL, SAS programs, log and lst, Html, PDF). Many popular search tools used to help manage all these files will be discussed, along with a comparison of their features. Some of the features include scanning multiple files and multiple directories, and displaying a preview of the matching text within each file. The strengths and weaknesses of each search tool will be reviewed. The best way to conduct some common searches for text phrases and numeric data in files of different file types will be presented. Which search tool is best suited to handle each file type? Is there a search tool that can do it all? excel, dataset, character variable, numeric variable, ascii, ods pdf, type i error, data science 12
111 Simple Tests of Hypotheses for the Non-statistician: What They Are and Why They Can Go Bad Arthur L. Carpenter Hypothesis testing is a central component of most statistical analyses. The focal point of these tests is often the significance level, but what does this value really mean and how can we effectively use it? And perhaps more importantly, what are the pitfalls and dangers in its interpretation? As we conduct statistical tests of hypotheses, are there other things that we should be doing or looking out for that will aid us in our decision making? After years of academic study, professional statisticians will spend additional years gaining a practical knowledge and experience so that they can correctly conduct and correctly interpret the results of statistical tests. You cannot gain these insights over night, however, this tutorial provides a basic introduction to the concepts of hypothesis testing, as well as, what you should look for and look out for, while conducting statistical tests of hypotheses significance level, sample, null hypothesis, type ii error, type i error, proc ttest, standard deviation, proc step, sample size, hypothesis testing, anova 9
112 Simple Ways to Use PROC SQL and SAS DICTIONARY TABLES to Verify Data Structure of the Electronic Submission Data Sets Christine S Teng In preparing an electronic submission to the FDA, we are required to follow specific requirements such as: the length of a data set name and a variable name cannot exceed 8 characters, a data set label and a variable label should be less than 40 characters in length, and no user-defined format should be associated with any variables, etc. This paper will show you how we can achieve simple quality assurance steps using PROC SQL and SAS dictionary tables without hard coding proc sql, dictionary tables, create table, proc step, macro variable 10
113 Socio-economic factors to utilization of the emergency department David Nfodjo The primary role of the Emergency Department (ER) is to treat the seriously injured and seriously sick patients. However, because of federal regulations requiring the ER to treat all who enter, ERs have become the providers of a large number of unscheduled, non-urgent care patients. The role of the ER has changed considerably in recent years to treat those without insurance, and without primary care physicians. The main purpose of this study is to investigate the use of the hospital ER for non-urgent care in relationship to socio- economic status, payer type, and diagnosis. This study will identify the Socio-economic factors related to the utilization of the emergency department for health care data mining, test set 4
114 Specifications for Derived Data (Or, Would You Build a House Without Prints?) Richard Weisman Would you consider building a house without a set of prints ? Imagine the result if even the best carpenters worked without written plans. The result may or may not be wh at the customer expected. Now imagine you wanted to add a room or install a staircase to the attic. Wouldn't it be bette r to have a set of prints to accurately see where the tie-in points and the load bearing walls are? Designing and maintaining study databases should be no different. This presentation reviews the need for creating and maintaining accurate analysis database specifications. The analysis variables and data sets used in the summary statistical ta bles, data listings, and supporting figures (TLFs) are key components to the accuracy, integrity and maintainability of a study. The variables and data sets must be carefully thought out and are often subject to change at a later time as the clinical trial progresses and analysis goals either undergo change or become more refined quality assurance, data cleaning 11
115 Stellar Graphics Using SAS (but not necessarily SAS/GRAPH) P. Chris Holland,
Yan Zhu
SAS has come a long way since its old days of text-based scatter plots. With Version 9, high-resolution graphics via SAS/GRAPH are now virtually ubiquitous throughout SAS statistical procedures and the output delivery system (ODS). These tools can help advance SAS's stature for producing publication-quality graphics. There are still, however, other lesser-known alternatives that, despite their ease-of-use and high-quality, continue to hide in the shadows of the more cutting-edge pure SAS-based solutions. This paper demonstrates some of these alternatives and compares them with those that instead involve exclusive use of SAS/GRAPH for producing graphical output excel, scatter plot, bar chart, proc step, proc gchart, proc export, proc gplot, data step, dataset, missing value, proc greplay 12
116 Streamlining Specimen/Label Shipment Process Christina Carty,
Elizabeth R. Spence
A primary challenge of the Pe rry Point data management staff is to provid e a system for tracking the c ollection and transfer of samples between clinical sites and the specimen repository. The tracking system allows us to validate the case report forms (CRFs) that contain the label information, determine eligibility for sh ipment, provide notification to the clinical sites regarding specimens cleared for shipment, and produce reports for auditing. Base SAS was used to design the four step tracking system and encompasses a variety of programming techniques including macros, Output Del ivery S ystem ( ODS), PROC REPORT, and email c apabilities. The validation process includes a che ck for dup licate la bels, a nd verification of the label num bers reported on the CRFs. Eligi bility is determined when all CRFs have passed standard edit checks and all four periods are accounted for proc report, proc step, clinical trial, data governance, data cleaning, %if-%then-%else 7
117 Survival (Kaplan-Meier) Curves Made Easy Carey G. Smoak With the advent of ODS GRAPHICS for SAS 9.1, survival (Kaplan-Meier) curves can easily be created. Previously one had to create an ODS output dataset from PROC LIFETEST and then use SAS/GRAPH to create a survival curve. This is no longer necessary. This paper will show you how to generate and enhance a survival curve using just a few lines of code. Enhancements to the graph can easily be done using PROC TEMPLATE and PROC FONTREG. Version 9.1.3 of SAS on a Windows platform was used proc step, proc template, ods pdf, footnote statement, proc report, ods rtf, options statement, output delivery system 9
118 Systematic Inductive Method for Imputing Partial Missing Dates in Clinical Trials Ping Liu In any phase of clinical trials, dates are very critical throughout the entire trial. However, since incomplete dates are inevitable during the clinical data collection process, and missing dates will cause numerous problems to the study, there is a need to investigate the method of handling the missing dates. We do have different imputation methods for partial missing dates in different companies or different therapeutic areas, but we don't have a systematic method for varied missing situations. Developing a systematic inductive method for imputing the missing dates in varied situations is the topic of this paper. The paper will categorize missing dates into three status (whole date missing, month and day missing, only day missing), and utilize a systematic inductive method to impute the partial missing dates. A simple SAS macro will be included. This method serves as a hint for handling missing dates in different situations and different time points imputation, clinical trial, sample, macro definition 8
119 Techniques for Creating Reviewer-Friendly SAS Programs Mario Widel Based on the recent regulatory guidelines, FDA has been asking to include SAS program files in submissions that are executable in a PC environment. These submitted programs would save FDA statistical reviewers' time to understand how data are derived and analyses are conducted. Reviewer- friendly programs will likely speed up the review process. This paper will present several practical techniques and some examples to discuss approaches to create reviewer-friendly programs data step, proc step, data cleaning 6
120 The Design and Use of Metadata: Part Fine Art, Part Black Art Frank C. DiIorio,
Jeffrey M. Abolafia
macro variable, excel, proc step, dictionary tables, sas log, attrib statement, quality control, macro definition, proc sql, dataset, libname statement, options statement 20
121 The Skinny on Processing Very Large Health Claims Data Sets Gopal Rajagopal,
Blue Bell
Peering into the future of an average SAS professional processing health claims data, from health claim data vendors such as Ingenix, Medstat and GPRD to support Epidemiology, Health Economics and Pharmaco-vigilance oriented studies/analysis, it seems likely that many will be processing larger and larger data sets. The typical SAS program uses relatively small data sets and may not scale well. The focus of this paper is to present general SOPs/tips for processing very large health claim data sets and evaluate some SAS techniques to mitigate the local and immediate programming burden of the occasionally onerous I/O intensive 'DATA' step. Incrementally, as needed, one could consider global options which include changing the SAS environment, buying more hardware and disk space etc. Moving from local to global options, especially in a multi user SAS resource constrained environment, can produce a more uncertain outcome that potentially results in diminished control and increased costs proc step, numeric variable, proc sql, hash table, character variable, big data, sample, where statement, insurance claims, work library, proc append, proc format, dataset, proc freq, length statement, put statement, set statement, surrogate key, data cleaning, if-then-else 10
122 The Utter Simplicity of the TABULATE Procedure Daniel E. Bruns Well, here we are again Tabulate fans. It never ceases to amaze me how many folks give up on using tabulate because they cannot quite figure out how to get it to produce the table they want. Once you learn the basics, it is quite simple to produce relatively simple reports/tables. But as you want to produce more complex tables, it does not seem to be quite as simple-especially percentages. During this workshop we will introduce you to some of the more advanced features TABULATE, i.e. percentages, multilevel formats, new statistics, new options, and maybe even a trick or two. class variable, proc step, proc tabulate, proc contents, missing value, proc format, label statement 17
123 Transforming Business Requirements into System Solutions Yongcun Zhang data cleaning, clinical data, data science, statistical programmer, clinical trial, pharmaceutical industry, clinical programming, data validation rules, data governance 10
124 Update: CDISC Interchange Abstract Harmonizing CDISC Models - SDTM & ADaM Edward D. Helton,
Stephen J. Ruberg,
Cathy Barrows,
Musa Nsereko,
Greg Anglin
Submission of data to FDA has been a requirement for many years and will continue to be so in the future. CDISC has focused considerable efforts on standardizing these efforts in order to help FDA understand industry data, to minimize programming and rework of the data at FDA for review, and to maximize the integration of data across studies and pharmacological class for broader scientific/medical evaluation. CDISC has worked closely with FDA on these matters and the Submission Data Tabulation Model (SDTM) and the Analysis Data Model (ADaM) have matured to a point that they are commonly referenced in industry forums. They have garnered the attention of many in the industry as the industry seeks to implement them in ways that will streamline submission and facilitate review of the data. CDISC recognizes that the unity or interoperability of data standards is a requirement for both the submission and the review and approval process. This presentation will discuss the use of these ADaM and SDTM models in the near-term as they emerge as useful data submission standards. It will then focus on the desired future state for CDISC models and a reasonable transition to that future state. There will be an update on the CDISC ADaM/SDTM Pilot Project with the US FDA to unify the implementation and application of these models and to explore the iterative process to standardize the e-submissions required by the FDA. adam dataset, clinical data, cdisc 3
125 User-Written DATA Step Functions Jason Secosky For years, users have requested the ability to write functions in DATA STEP syntax. The day has come when this is possible. In SAS 9, PROC FCMP, provides the ability to write functions using DATA STEP syntax. In SAS 9.2, these functions can be called from DATA STEP. This paper will introduce how to write functions with PROC FCMP, how these functions are invoked from a DATA STEP, and caveats to be aware of when calling PROC FCMP functions from DATA STEP proc step, proc fcmp, return, put statement, file statement 9
126 Using Multiple SAS Sessions in the PC Environment to Facilitate Programming Rubin Nan,
Douglas Criger
SAS versions 8.0 and above support multiple SAS sessions in the PC environment. This provides SAS programmers not only with the ability to edit multiple SAS programs, but with additional capabilities to facilitate programming. This paper describes some of these additional capabilities, including macro testing, partial or individual programming fulfillment within a whole project and remote submission of SAS programs to a server macro variable, sas programmer 3
127 Using ODS Document with SAS/Graph to Remove Unwanted PDF Bookmarks John Reilly Using description=' ' with SAS Version 9.1 does not remove null bookmarks when using ODS PDF along with SAS/GRAPH as it does in SAS Version 8.2. See SN-011888. Using a null graph description does not remove the Table of Contents (TOC) entry/bookmarks. This paper describes a method to remove TOC bookmarks by using ODS Document with SAS/GRAPH in conjunction with ODS Output proc step, macro variable 5
128 Using SAS ETL Studio to Convert Clinical Trials Data to the CDISC SDTM Barry R. Cohen A new industry standard for clinical and preclinical trials data (the CDISC SDTM model) has been developed and is quickly being adopted by the pharmaceutical industry. Thus, for future Marketing Applications to the FDA, companies will need to convert their clinical and preclinical trials data from vari ous legacy and current-standards (and non-standards) to the new industry standard SDTM. This will be a major undertaking for any organization, and a data warehouse tool can be of significant help in this process. ETL St udio is the new SAS product des igned to support a warehous e building process. Octagon Research Solutions uses ETL Studio as the key software applicat ion in the complex process of converting its clients' clinical trials data into submission-ready data based upon the CDIS C SDTM. This paper will discuss various aspects of Octagon's SDTM conversion process that uses SAS ETL Studio clinical data, sdtm domain, dataset, raw data, data warehouse, data standard, data cleaning, excel, clinical trial, etl developer, sas programmer, data transformation, data mining, response variable, cdisc 10
129 Using SAS to Manage and Report Long Text Fields in a Clinical DBMS Na Li Using SAS to manage and report data containing long text fields in a clinical Database Management System (DBMS) can be a daunting task. A long text field can be a memo field, comment field, or narrative field, ranging from a couple of characters to over thousands of lines with several paragraphs. Within the text field, there might be special embedded symbols such as carriage returns, line feeds, tabs, and page breaks. In order to report such text fields with a meaningful layout and to be able to programmatically select certain sections of the text field, it is essential to understand the retrieval process of the text field and to manage these special embedded symbols. This paper shows a step-by-step flow of the entire data retrieval, management, and reporting process proc sql, adverse events, proc step, output delivery system 7
130 Using Table-Driven Solution in Clinical Safety Pause Rule Reporting Xiaoming Liang,
Paul OldenKamp
In clinical vaccine trials, participant safety is of great importance. A safety monitor program is required to check for lab abnormalities and adverse events that might trigger a vaccination pause. With the rapid growth of HIV vaccine trials, the challenge of programming support is to develop a safety monitor program that can be applied across protocols with minimal changes. This challenge can be met by using the table-driven approach. The project specifics are built into metadata tables. The CALL SYMPUT routines are used to assign the table columns (variables) to a series of macro variables. The indirect macro variable referencing (double ampersands) technique is applied to use metadata for dataset sorting, pause rule checking, and message displaying in the final report macro variable, call symput, adverse events 5
131 Utilizing the Stored Compiled Macro Facility in a Multi-user Clinical Trial Setting Mirjana Stojanovic This paper will demonstrate the stored compiled macro fa cility in the multi-user clinical data management environment of Cancer and Leukemia Group B (CALGB). CA LGB is a large cancer res earch cooperative group. Clinical data is gathered from hundreds of in stitutions and sent to the CALGB statis tical center, where it is stored in a single database and processed by dozens of statistici ans, programmers and data mana gers. At any given time CALGB coordinates more than 80 actively accruing clinical trials. This setting necessitates the need for streamlining data cleaning, data queries, and reports. The compiled stored macro facility permits all production leve l macros to be stored in one common location. In the multi-user setting it is crucial that al l changes to the stored compiled macros in the macro catalog are authorized stored macro, macro facility, options statement, macro catalog, macro variable, macro definition, proc step, libname statement 8
132 When a Shortcut is More Than a Quick Fix Robby A. Diseker One of the often overlooked but extremely useful concepts in the SAS language is the use of the shortcut notations, e.g, _NUMERIC_, _CHARACTER_, and, probably the most often used, _ALL_. While documentation on the use of these shortcuts is sometimes scarce, these notations can be used in a variety of ways to make the SAS programmer's life easier. They can facilitate everything from data management to debugging programs and data analysis. In a flash, find bugs in the log file using put. Build arrays in a snap. Swiftly produce a list of contents used to manage your working library. This paper will address the use of shortcut notation in each of these areas and more and show how taking a shortcut is not only a quick fix, but a productive way to program keep statement, proc step, proc contents 6
133 When There Are Too Many Macro Parameters and We Need One More The Challenges of Writing and Using a Complex Macro Eric Qi,
Blue Bell
In business, we are of ten challenged to increase productivity while maintaining efficiency and high quality. SAS programmers use this as an opportunity to develop standardized macros. However, in building complex, robust, and flexible macros, we encounter the challenge of hav ing too many macro parameters and the inability of the user to fully utilize the macro because it lacks a functionality they wish it had. This paper explains the resol ution of these two important issues by way of the %PDLC macro. An EXCEL spreadsheet is used to capture macro p arameters and utilize EXCEL's cell protection features. For that additional functionality or task that the macro was not designed to do, the macro keeps a gate open, and a llows the user to use data steps to process data and get the processed data into the macro through the gate, herein referred to as the Open Gate Macro Design. This paper will show how these two features make the macro more powerful excel, laboratory data, laboratory abnormality, macro parameter 9
134 Zipping Right Along: Push-Button SAS Transfers via Command-Line Invocation of the WinZip32 Executable Stephen Hunt,
Brian P. Fairfield-Carter
Among the plethora of non-programming tasks frequently required of SAS users is the manual compression/loading of assorted SAS programs, logs, and output files for transfer or archival purposes. The Windows application most frequently recruited for this task is Winzip. Unfortunately for SAS programmers, who are accustomed to manipulating data via a keyboard-driven programming interface, the point-and-click front-end of the Winzip application generally represents a bottleneck in the smooth flow of program development--> execution--> delivery. This paper builds on the documented list of command-line options associated with the WinZip32 executable file and demonstrates several ways in which the adventurous programmer can operate this application in a SAS programming environment to avoid the manual tedium involved in the typical use of this popular utility sample, macro definition 7

Back to Conf go 2007 go 2005

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.