HOME QUICK SEARCH AUTHORS KEYWORDS HELP BUGS

PharmaSUG 2004 Papers - Index

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

# Title
×
Authors
×
Abstract
×
Keywords
×
Extras Pages
1 "Dualing" Arrays: Reducing DATA Step Passes with Array Look-Ups Nancy Brucken,
Lisa R. Reeves
As part of an analysis of the effect of treatment group and subject order in study entry within site (subject number) on change in certain laboratory values, we were asked to provide pairwise comparisons of treatment effects by subject number. With the Output Delivery System (ODS), we were able to retrieve the required p-values, and store them in a SAS dataset. The problem then became one of extracting the p-values for the desired comparisons. Using the DATA STEP in a non-traditional way and building look-up tables with arrays allowed us to identify the LSMEAN numbers for the desired comparisons and then pull off the p-values calculated for those comparisons in a single DATA STEP, with only one pass through each of the associated datasets. least squares mean, proc glm, proc genmod, proc step 7
2 "Haven't We Met Somewhere Before?" and Other Useful Lines (of code) to Get to Know Their Data (Version 2.0) David Rucker "Know Thy Data". As programmers, we see all types of data, in all forms, on all media, from different operating systems, from different customers, and possibly in different languages. We may never agree on the approach used in our code. We may never agree on programming standards. We may never agree on data presentation. Nonetheless, any user of the SAS System will tell you this is what he appreciates most about the product. Surely, the one thing we can all agree on is that you MUST know your data. The first step in this new relationship is to introduce yourself. In this paper, I will discuss several fundamental methods and possibly some new ideas and concepts to facilitate learning about the data. Although the intended audience for this paper is the novice programmer, it may provide the more seasoned programmer with new ideas and tools. (Base SAS, Microsoft Windows operating system) proc step, proc freq, excel, proc contents, proc format, pharmaceutical industry, proc sql, proc univariate, sas log, sample, data science, %if-%then-%else 10
3 "LAG With a WHERE" and Other DATA Step Stories Neil H. Howard This tutorial illustrates the importance of understanding the internals of DATA STEP processing, particularly when you invoke functions such as LAG, code RETAIN statements, rely on WHERE constructs, and start combining various features of the DATA STEP language and performing conditional execution of certain functions. This anthology includes such spellbinding stories as: "LAG With a WHERE ", "To LAG or to LEAD", "A DIFferent LAG", "When RETAIN Doesn't Retain", "Don't Order My Variables Around", and "The Case of the Missing Values" lag function, missing value, proc step, dataset, proc print, retain, proc contents, where statement 14
4 %ArrayPerm: A SAS Macro for Permutation Analysis of Microarray Data Deqing Pei,
Wei Liu,
Cheng Cheng
Microarray has become a common tool for identifying genes of interest that are differentially expressed under different biological conditions. Software packages such as Spotfire, GeneSpring, and Xcluster are commonly used in research laboratories. These packages provide a set of analysis tools for accessing, visualizing, normalizing and filtering data with modest learning curve for biologi sts without statistical background. However, wide applications of DNA microarray technology in gene discovery, disease diagnos is, pharmacogenomics etc. r equire more sophisticated statistical analysis methods beyond simply looking for genes up- or down-regulated, thereby requiring solid data modeling on the basis of valid statistical methods. When the expressi on data or their transformations cannot be assumed to distribute normally, or t he investigator wants to assess the reliability of gene-selection procedures, permutation tests are often desired stored macro, p-value 5
5 %Cox_PH - An enhancement of SAS PROC PHREG Hong (Lily) Zhang,
Robin Mogg
SAS PROC PHREG is widely used to model time to event data via Cox regression; however, without the familiar CLASS and CONTRAST statement s available in other SAS procedures , extra programming effort is required to handle categorical variable(s) or interactions between two covariates in the model, or to test the significance of a linear combination of the regression parameters. The Survival Analysis Macro (SAM) committee at Merck reduced the limitation s of PROC PHREG through t he development of a %Cox_PH macro . The %Cox_PH macro provides the user flexibili ty to specify categorical variables or interactions between two covariates in the Cox regression model , as well as the capability to make pair -wise comparisons, possibly with different reference groups, among different levels of a multi-leveled categorical variable. This is particularly useful when comparisons between three or more treatment groups are required proc phreg, proc step, interaction effect, regression analysis, nominal variable, binary variable, confidence interval, survival analysis, clinical trial, regulatory reporting 8
6 2D-gel Proteomics in Biomarker Discovery Mark Carpenter,
Craig Rowell,
Heath McCorkle,
Coral Lamartiniere
Recent adv ances in techn ology make poss ible th e l arge-scale application of pr oteomics for bi omarker discov ery i n cancer models and the exploration of the action mechanism of drugs. Comparative proteomics using 2D-gel technology, coupled with mass-spectrometry, is curr ently a widely appl ied to ol i n the discovery of un ique pr oteins, as well as, mechanis ms an d pathways for a variety of complex biological systems. Because 2D-gels can potentially present thousands of proteins covering dynamic ranges of express ion, new approaches in d ata processing, database design and quantitative statistical ana lysis are required. In this paper we describe SAS solutions to the data processing and analysis of 2D-gel experiments, the creation of interactive and standardized databases and differential protein expression profiling. T he SAS sol utions involve basic DATA STEP and MACRO progr amming and the applications of the GL M, MIXED, T TEST, MULTTEST and GPLOT procedures sample, proc freq, anova, data science, multiplicity, proc genmod 7
7 A Guide to Understanding Web Application Development Corey Benson You have been asked by your manager to port a legacy, fat-client application to the web. There are so many directions you can take in completing this project. It is har d to know where to start and what technologies to use. The main focus of this paper is to introduce you to server-side Java. We will answer questions like: What is server-side Java technology? What are servlets, JavaServer Pages and custom tags? What are the benefits of using server-side Java technology? What is the Model-View-Controller(MVC) architecture? What is the Struts framework? What are the benefits of using webAF for Web application development? * How do you customize the look of your Web application? These topics will be covered while also highlighting how SAS AppDev Studio TM 3.0 makes it easier for you to build Web applications that are lightweight, easy to manage and instantly connect to SAS software data cleaning, business intelligence 17
8 A Macro Generating a Report-Ready Table in Different Layout and Format Renda Cheng Generating comprehensive and report-ready tables for clinical studies has been very challenging to SAS programmers. In order to meet this need a macro called Table Macro was developed in the Oncology Group of BMS two yeas ago. Since the macro went into production, the quality of the table has been highly recognized by our customers (clinicians and statisitians). It has saved a lot of our programming time and shortened the process of application for NDA. The macro has the following features macro call, macro variable, nominal variable, proc freq, numeric variable, character variable, variable list, dataset, interval variable, class variable, proc step 12
9 A Quicker Way to Inputting and Sorting Large Dataset Using SAS Lin Yan,
Des Plaines
This paper is concerned about the speed of inputting and sorting large dat asets using SAS. Usually people use the only one SAS procedure PROC SORT to input data and sort data as well. However, this procedure is not efficient when the dataset is large. A tw o-step method by which first the data is input us ing DATA STEP and then is sorted using PROCEDURE SORT can enhance t he speed of inputting and sorting a large dataset. Experiments on large clinical datasets show that the two-step method reduces the run time greatly. Key words: inputting, sorting, one-step method, two-step method, large dataset, CPU time. Platform: OS/390. SAS product: SAS/BASIC version 8.2 cpu time, proc sort, proc step 2
10 A SAS Database Search Engine Gives Everyone the Power to Know Eugene Yeh This application finds the matches to a search parameter that you specify from the contents of all SAS data sets in multiple file directories. The application appears similar to an internet search engine, therefore it is practical for everyone to use. After you enter a search parameter and click the "GO" button, a summary of the search results is displayed in an HTML or RTF file. The file displays the names of all directories, data sets, variables, and observations that contain a match to the search parameter. By clicking on any data set name, you hyperlink to either the source data set that contains a match or to a newly created data set. This new data set is a subset of the source data set, retaining only observations that contain a match to the search parameter. Advanced features can explicitly include or exclude data sets and variables by name, search for formatted values, and save search parameters excel, where statement, raw data, dataset, proc report, label statement, proc step, date variable 11
11 A SAS Macro for Rapid Identification of Missing Data Records Kim Truett "Does Your Database Contain all Expected Records for each Subject?" The comprehensive review of clinical trial databases should include verification that each dataset contains all expected records for each subject/visit. Because this verification step is time consuming and missing data can be difficult to detect, it is often omitted or done inconsistently. However, this verification step is critical to ensure that the database is complete prior to locking the database so that that statistical analysis can begin. To facilitate this review, a generic macro was developed that outputs a graphical representation of the data records present for each subject at each visit. The macro produces "one grid per visit" indicating the presence or absence of a record within every dataset for each subject. This graphical format simplifies review and allows for rapid identification of all missing records macro variable, clinical database 7
12 A Simplified Way to Create Flags for the Three-Dimensional Prior, Concomitant, and Post Medication Classification Aileen L. Yam A three-dimensional classification of non-study medication into prior, concomitant and post medication categories was proposed at CDISC. Please see Section I of this paper for the classification. This paper presents a simplified way to create fl ags for each condition. This paper also puts forth for consideration a conservative method of imputing partial dates. I. PROPOSED RULE FOR DETERMINING THE PR IOR, CONCOMITANT OR POST STATUS OF concomitant medications, macro definition, imputation, cdisc 5
13 A Technique to Create a Numeric Variable from a Character Variable Hany Aboutaleb If you have a character variable in your dataset, and you wish to transfer this variable to numeric variable instead, this article can help you. I will describes and illustrate by example how to use PROC SORT, and Format with the help of SAS Macro facility to create a new numeric variable in your data set from your character variable character variable, numeric variable, macro variable, missing value, proc step, proc format, sample, macro call, macro definition 6
14 A Useful Macro for Converting SAS Data sets into SAS Transport Files in Electronic Submissions Xingshu Zhu,
Shuping Zhang
In 199 9, the FDA issued a guidance im posing certain requirements on electronic submissions. Under this guidance, an analy sis dat a set must be converted i nto a SAS tr ansport file. As a result, it is im portant for programmers to have a convenient and reliable tool to perform this conversion. We have developed such a tool in the form of a utility macro. This macro can also be u sed to effici ently and effectively split data sets when they exceed the FDA-i mposed size limitation. We have tested this macro in many projects, and it has proved to be a very efficient and advantageous tool in FDA submissions dataset, data step, proc step, macro variable 7
15 A Visual Introduction to PROC SQL Joins Kirk Paul Lafler Real systems rarely store all their data in one large table. To do so would require maintaining several duplicate copies of the same values and could threaten the integrity of the data. Instead, IT departments everywhere almost always divide their data among several different tables. Because of this, a method is needed to simultaneously access two or more tables to help answer the interesting questions about our data. This paper visually illustrates how a join process works and then shows how a PROC SQL query is constructed so some or all of the specified tables contents can be brought together where statement, proc sql, proc step, data merging, select 5
16 An Animated Guide: The Data Step Debugger Russell M. Lavery,
Chadds Ford
Use of the DATA STEP Debugger (DSD) simplifies the job of 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 gives you control over the 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 and check if the code is correct while the code is running, rather than checking for correct ness by writing a series of PROC PRINT statements. 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 goal of a programmer learning the DSD should be to learn the DSD commands and how to link them to a key. Linking a series of commands to a key makes the DSD much more powerful data step, if-then-else, sas log 6
17 An Experiment with Experimental Proc RobustReg Shuang Lu PROC ROBUSTREG is an experim ental procedure in SAS/STAT version 9. It implements the most commonly used robust regression techniques, including M (Maximum likelihood-like) estimation, LTS estimation, S estimation and MM estimation. A macro developed by the Mer ck Research Laboratories, Merck & Co., Inc. also carries out M estimation of General Linear Models. This paper provides a com parison of the output from an experimental data test and suggests possible improvements in PROC ROBUSTREG, based on the author's experience with the in-house macro proc robustreg, proc step, regression analysis, estimate, macro definition, macro variable, proc calis, outlier 5
18 An FDA-Requested XML Replacement for SAS Version 5 Transport Files in U.S. Regulatory Submissions Michael C. Palmer At the FDA's request, a CDISC-sponsored group has developed an XML-based replacement for the SAS version 5 transport files that are currently used to send case report tabulations clinical trials data to the FDA. Limitations of version 5 transport files such as 8 character variable names, 40 character labels for variables, a 200 character limit for character data, an idiosyncratic representation for dates and times, and sparse built-in metadata stored with the data have become noticeable and troublesome as such limitations have disappeared from other software used in clinical data management. CDISC has developed the more flexible XML-based Operational Data Model (ODM). ODM provides XML analogs to "forms" and "fields" and it has built-in support for extensive metadata. ODM does not specify names for clinical domains (i.e., adverse events, medical history) or data fields. CDISC's Submissions Data Standards (SDS) specifies a structure and metadata for clinical domains and data fields clinical trial, clinical data, character variable, label statement, adverse events, cdisc 5
19 An Introduction to SAS Applications of the Windows Scripting Host Stephen Hunt Analysis Programmers in the Pharmaceutical industry are often confronted with a variety of requirements that are peripheral to the more common tasks of data manipulation and summarization. These include supporting multiple output file types (.doc, .rtf, .ps, .pdf), making operating system calls (for example, to retrieve file attribute information), and carrying out file-handling operations. These tasks are often satisfied through more obscure components of Base SAS (DDE, System functions, 'pipe' FILENAME access, x/DOS commands), and through code- writing macros (custom output 'drivers'), that allow SAS interaction with other applications. This paper introduces the Windows Scripting Host (WSH) as a simple, powerful, and comprehensive tool for meeting all of the requirements listed above proc sql, excel, txt, dataset, create table, data step, sas output, connection string, proc step, conditional do loop, macro variable, macro definition, sas programmer, raw data, sample 12
20 Apply Response Surface Analysis for Interaction of Dose Response Combine Treatment Drug Study Tung-Yi (Tony) Wu Combination treatments are widely used in medicine. When a clinical trial employs two (or more) drugs and is expensive, a matrix design with response surface analysis become an essential statistical method to obtain an overall profile, a minimum effective dose and/or maximum percentage change from baseline. In this paper, the author will demonstrate one example of a SAS program (using PROC RSREG and PROC G3D) to obtain response surface results. An example of low-cost response surface method design that does not require all possible dose-pair combination is also included proc step, response variable, clinical trial 8
21 Automate Pharmacodynamic Analyses of Repeated Measure in Clinical Trials Using SAS Mixed Procedure Adeline Yeo,
Grace Li
Statistical analyses are often performed in clinical pharmacology studies to dete rmine differences in pharmacody namic (PD) responses of subjects due to drug administration. Variability of PD responses is also reported to support future study designs. An improvement to business process is to create a common SAS macro customized fo r PD analyses. With the automation of the SAS code, it will decrease our turnaround time from clinical data to specif ic results and speed up t he process of reporting. In addition, repeated validation of sim ilar SAS programs for PD analy ses may no longer be necessary. This SAS macro is suitable for cross-over or parallel design with repeated measurements and it uses the linear mixed effects model in SAS's PROC MIXED (Version 8.2 or higher). This paper provides the macro variables needed for the operation of the SAS macro and an overview of the SAS macro macro definition, macro variable, covariance structure, covariance, proc mixed, interaction effect, proc step, fixed effects, pd, treatment effect, sample, normal distribution, lognormal distribution, least squares mean, confidence interval 5
22 Automating the Documentation of Oracle Clinical Database Specifications Kyle McBride This paper will demonstrate how custom study documentation can easily be generated by using SAS to tap into a clinical trial database system such as Oracle Clinical. With an understanding of the Oracle Clinical database structure, what sometimes is a manually compiled (and labor intensive) document can be automated using SAS/ACCESS to Oracle, PROC SQL and ODS. An example is given for a database structure document. Advantages over other reporting options or existing tools are mentioned dataset, proc sql, clinical database, format statement, clinical trial, proc step, macro definition 9
23 Automation of Patient Narratives Using SAS and Analysis Datasets David C. Izard FDA and ICH guidance documents call for the submission of subjects' study experience in narrative form for those subjects who meet specific criteria. This narrative text is typically developed manually utilizing word processing technology and information sourcing from subject line listings or individual case report form tabulations. Historically this is a manual, labor intensive process requiring significant human resource and lengthy timelines. This paper will explore the use of SAS to identify subjects requiring narratives, and automate the development of subject narrative text and make it available to clinical colleagues in a readily usable form, thus reducing the effort and time required to produce this regulatory requirement adam dataset, crf, csr, clinical trial, regulatory submission, adverse events, concomitant medications 6
24 Backups at the Click of the Mouse Jim Box,
Joey Morris
Creating a backup of SAS program s, output files and datasets is an important task for any computing project. Unfortunately, it is also one of the more tedious and error-prone tasks. This paper will show you how to configure your PC to automatically perform these backups (create indexed archives) with one click of the mouse macro variable, dataset 5
25 Be Careful When You Merge SAS Datasets! Yan Lei When doing SAS programming, we often need to merge two or more datasets into one. The problem that arises with merging is that when MERGE, IF-THEN statement were used within one DATA STEP, the results may be wrong or it may cause confusion. This paper presents two examples that show clearly what happens when you use the above method to do MERGE and also provides tips to avoid these kinds of mistakes data step, proc sort 4
26 Box plots and Radar Plots for Pharmaceutical Studies: Some of the Better Ways to get a Clear Picture of Study Results Mary Cowmeadow Box plots, bar graphs, histograms and histograms are among the most useful plots in the pharmaceutical industry. It is possible to plot virtually anything in a clinical trial dataset with one or the other. If the data is discrete, use a bar graph or histogram; if it is continuous, use a box plot. The reason these simple plots are so appropriate is that treatment group is almost always a discrete entity. A change variable such as the difference in labs from baseline to final plotted by treatment group is the perfect setup for box plots. For smaller studies, other types of plots such as radar plots can be useful as well. For many years good box plots have not been available to the general pharmaceutical user in SAS, but, with the advent of version 8, really good plots can now be found in SAS/STAT as PROC BOXPLOT. In this paper you will explore box plots styles, uses and options, and how the block variable concept solves the axis problem box plot, spaghetti plot, proc boxplot, proc step, histogram, outlier, excel 8
27 Build Portable Structures and Programs for Electronic Regulatory Submissions Wei Cheng The Food and Drug Administration (FDA) continues to update a series of guidance documents on electronic regulatory submission as the technology evolves. The FDA provides recommendations and examples for the procedures, structures, and file formats for sending electronic submissions. Most of the companies in the pharmaceutical industry are moving toward their goals of submissions in electronic format in place of paper. This paper will discuss how to build portable structures and programs to support efficient regulatory submission in electronic format. It is intended for SAS programmers of all skill levels and for SAS Systems on different operating systems regulatory submission, sas log, macro variable, sas output, data science 6
28 Building a Powerful Clinical Decision Support System Using SAS/IntrNet Nick Pászty Simply put, SAS/INTRNET is very clever at providing flexibility to do essentially one thing: web-enable your SAS data. This paper will present some helpful strategies and techniques we used to develop a Clinical Decision Support System (CDSS). Considerations relating to navigation, data presentation, cross study standardization, browse r versus file system output destinations and use metrics are pr esented. In addition to the SAS language, integral technologies like DHTML and JavaScript will be briefly discussed macro variable, proc report, proc step, excel, put statement, file statement, data science, adverse events, data step 10
29 Building and Using User Defined Formats Arthur L. Carpenter Formats are powerful tools within the SAS System. They can be used to change how information is brought into SAS, how it is displayed, and can even be used to reshape the data itself. The Base SAS product comes with a great many predefined formats and it is even possible for you to create your own specialized formats. This paper will very briefly review the use of formats in general and will then cover a number of aspects dealing with user generated formats. Since formats themselves have a number of uses that are not at first apparent to the new user, we will also look at some of the broader application of formats. Topics include; building formats from data sets, using picture formats, transformations using formats, value translations, and using formats to perform table look-ups proc format, proc step 9
30 CDX - clinical data management and report programming environment Gunilla Sköllermo,
Pål Edman
The CDX system has been developed at AstraZeneca R&D in Södertälje, Sweden, to serve as the main tool for clinical data reporting work. The main activities supported by CDX are creation of a clinical study reporting database, report work and analysis of the clinical study data for submission, regulatory defense and commercial support. CDX enables SAS programmers and statisticians to work closely together and facilitates their collaboration during the clinical trial process as well as satisfies all regulatory demands regarding traceability and security clinical trial, change from baseline, batch job, data governance, sas programmer, character variable, raw data, trial elements, data science, clinical data 7
31 Changing that Pesky Datetime to a Date Stanley E. Fogleman Databases and spreadsheets commonly store both the date and the time in a single field. Often, the time field is initialized to midnight. Here is a simple macro that can change a DATETIME to a date sysdate9, datetime, excel, date variable 3
32 CheckAll: a Routine to Produce A Frequency of Response Data Set from Multiple-Response Data Ronald J. Fehd Multiple-response data from survey questionnaires where questions have the instruction "check all that apply" present a challenge to the SAS software programmer. For a simple question, the answer may be either A or B; the sum of percent response is 100%. For the series of variables in a multiple-response question, the answer may be both A and B; because response rate for each variable in the series is dependent upon the other variables, the sum of the percent response may be greater than 100%. This paper examines the PROC FREQ output data set and discusses the construction of a standardized data set containing frequency of response information for multiple-response data. The algorithm illustrated here encom- passes both those presented in [2] and [3] as macros. Combining the processes and optimizing the algorithm has reduced the number of statements by two thirds proc freq, proc step, macro variable 5
33 Clinical Trial Randomization Design: Blocked Randomized Response Adaptive Method K.Y. Trudy Poon The blocked response adaptive randomization method combines the strengths of both blocked design and response adaptive methods. The SAS code of the our model divides study participants by the randomized blocked method, and then applies the response adaptive procedure to randomize study participants within each block. Through this randomization, the conflict between collective and individual ethics in clinical trial practices is balanced. We demonstrate how this SAS code can also be modified to incorporate other block randomization designs to mitigate covert biases randomization, clinical trial, if-then-else 4
34 Clinical Trials Terminology for SAS Programmers Sy J. Truong The drug development process is a clinical process that has its own language. It is not required that SAS programmers function as a MD or a regulatory expert, but working knowledge of the terminology is important to be effective. This paper will walk through the drug development process from discovery to Phase IV. It will explain a wide range of acronyms such as IND, NDA, GCP and MedDRA. It will also describe some of the terminologies used within the process of clinical trials as a drug is developed and submitted to the FDA. This will give SAS programmers a larger perspective and context to their work during the analysis and reporting of clinical trials data. After an enjoyable summer of R&R following his graduation from the University of California, James browses through the want ads to confront the adult world of employment. James has a vague notion of what a Pharmaceutical company does in that it performs research and development of drugs adverse events, clinical trial, crf 6
35 Common Error: Wrong Result Varsha C. Shah The routine, frequent use of functions, internal automatic variables, etc. creates such familiarity that it becomes second nature and forges a friendship. This in turn creates such confidence that once in a while there is a relaxed approach toward checking the results. It is extremely important to emphasize that the above mentioned tools in SAS are very powerful, but what could taint the results is the concurrent environment. This paper illustrates two examples of how your algorithms could lead to erroneous conclusions - 1) when the LAG function is used improperly, and 2) when you have irregular data lag function, proc freq 5
36 COMPAREXLS - A Powerful Comparison Tool for Spreadsheet Difference Resolution Difference Resolution All pharmaceutical companies are required by regulatory agencies to report the overall safety and efficacy drug profile resulting from years of data collection from all phases of clinical trials. If the substance was licensed in from another company or university that collected clinical data, then this data must be gathered and homogenized to fit into the company's data structure. Likewise, if the drug under study is novel or a new therapeutic area for the company, the knowledge gained after each clinical trial results in a better understanding of the drug mechanism which in turn can modify the underlying data structure. In an effort to address the need for overall reporting as quick as possible and in a manner that allows the pooling of data from all phases of the drug development process, Boehringer Ingelheim has developed the "Extensible Project Database Loading and Table Translation Program" (XPDL) process (1) excel, proc compare, dataset, clinical trial, proc step 11
37 Constructing Analysis Files: A Multi-Tiered Approach Tyler Cole Data for clinical studies are often organized into analysis f iles which are typically used for statistical analyses as well as for generation of tables, figures, and listings. Analysis files generally have a number of user-created and non-user created variables shared in common. As a result, programs used to create these files may contain copies of the same code. If many analysis files are needed, uncontrolled code duplication becomes a significant problem impairing the consistency and maintenance of programs. A system design able to control redundant code is thus desired. This paper, intended for intermediate to advanced user s of BASE/SAS, describes one innovative programming approach which can be implemented to organize and contai n the data steps and SAS procedures used to create analysis file variables. With this approach, SAS statements are grouped into function-specific macros stored separate from analysis file programs data step, macro definition, macro call, proc step, clinical trial, macro variable, sample, proc datasets, adverse events 7
38 Controlling Graph Size: Building Thumbnails and GIF Files Using SAS/GRAPH Arthur L. Carpenter,
Richard O. Smith
GIF is one of the primary file forms used for graphs that are to be displayed on the web. However because of differences in browsers and the need to control the size of the graphic display, the standard GIF device that is defined with SAS/GRAPH is not always appropriate. This paper discusses alternative methods that can be used to create GIF files that will display graphs of various sizes. Since secondary considerations as to graph contents, options, and control alternatives become necessary when the size of a graphic display is reduced, these issues are also presented proc step, proc gplot 6
39 Create All Those Tables and Call PROC SQL Once! Stanley E. Fogleman When creating extracts for clinical trial reporting, it is often the case that more than one dataset is created at a time. There is a great deal of overhead involved in calling or exiting PROC SQL (or many other SAS procedures, for that matter). The following presents a methodology for creating multiple datasets from one invocation of PROC SQL proc sql, proc step, macro definition, create table 3
40 Creating a Mixed Case Format for Monocase Data Using an Input Control Data Set with Proc Format Lisa A. Soberano PROC FORMAT is a useful Base SAS tool for displaying data in a more preferable manner, without altering the data itself. Applying formats to our data is like using "make-up". We want the data to look its best, whether presenting data to a client or internally. This article assumes a basic familiarity with the DATA STEP, PROC FORMAT, and the LIBNAME statement. We will review a commonly overlooked function of PROC FORMAT, which is how to create a format using an input control data set (the CNTLIN= option on the PROC FORMAT statement), as well as how to output formats to a data set (CNTLOUT= option). The example application in this article is also handy for displaying large amounts of monocase characters. We will create a mixed case format for character data that is stored in either all upper or all lowercase proc format, proc step, character functions, do loop, format statement, tranwrd function, proc sort, char., concomitant medications, sas function, upcase function 7
41 Creating PDF Files for SAS Programs Eric Zhang Documents produced in the Portable Document Format ("PDF ") are becoming popular among pharmaceutical companies. SAS programmers might wish to a rchive SAS programs after projects are finished in order to protect them from unexpected modifications. Creating PDF files of SAS program s is one of the best ways to achieve this goal. This is due to the fact that Acrobat Reader is available free on the internet and PDF files can not be easily modified . There are many tools available to convert SAS programs to PDF files and /or build hyper -links between the PDF file , "Table of Contents" , and individual PDF files. However, these tools are developed outside SAS and might not be portable across operation systems. It's also hard to modify existing features of these tools for the specific requirements we need. In order to avoid the inconvenience of using existing tools, a SAS macro, called PGM2PDF, was developed to have these similar features without any third -party software support txt, adverse events 9
42 Creating Word Tables using PROC REPORT and ODS RTF Carey G. Smoak With the introduction of the ODS RTF destination, programmers now have the ability to create Word tables using SAS. This paper focuses specifically on the use of the ODS RTF destination with PROC REPORT to create Word tables. Demographic data from a research study is used to illustrate how to create Word tables. Some basic methods for generating Word tables are demonstrated. Several problems are illustrated and solutions are presented. Version 8.2 of SAS on a Windows platform was used proc report, proc step, footnote statement, txt 11
43 Critical Success Factors in Pharmaceutical Innovation Thomas H. Burger,
Michael S. Lajiness
Technology is one of the most important factors that will influence which pharmaceutical companies prevail in the information age. Effective, efficient and timely implementation of tools that speed information delivery is a primary driver of competitive advantage. However, difficulty often arises in determining how to adopt tools and integrate them into the business. Interruptions to the business and failures in software acquisition are frequently costly, in terms of money, resources, and lost opportunities necessitating an innovation-based approach. We discuss strategy and considerations essential to matching SAS technologies with key business drivers at the corporate scale. In addition, we will discuss our vision for future software opportunities that would significantly enhance pharmaceutical research. Below is an outline summary of this paper. The final paper will be distributed at the presentation data mining, business intelligence 4
44 Customizing Clinical Data Warehouse for Business Intelligence An analyst's view Haibin Shu Barr Many c ompanies choos e SA S/BASE, SAS/ACCESS etc as the analy tical tool, and data warehousing software other than SAS for data warehouse management. This paper discusses the analyst perspectives in such s etting to de al with data lo ading, extraction an d data cle aning. It shows basic methodology in d ata extraction and data management for achieving the business goals and making strategic business decisions efficiently. SAS users ne ed to work with d atabase administrators effectively to m ake t he data warehouse more users friendly data warehouse, relational database, lookup, create table, extract, load, business intelligence, data mining, clinical data, format statement, txt, data cleaning, proc sql 8
45 Cutting the SAS LOG down to size Malachy J. Foley Looking through a large SAS LOG (say 250 pages) for NOTE's and WARNING's that might indicate a problem with your SAS program is necessary, but no fun. This paper presents a SAS program which distills the SAS LOG to list only the critical messag es in a LOG. The use of the program increases program reliability and programmer productivity sas log, macro facility 7
46 Data Standards with and without CDISC Sy J. Truong Data standards can make data and its associated programs more portable. Team members who work with the data also become more portable since they can understand and use data with more ease. This makes the development and validation of SAS programs within a regulated environment much more efficient. This paper will present strategies on working with the new CDISC Submission Data Model version 3.0 along with other data standard strategies that are independent of CDISC. Some of the approaches include: 1. Automated evaluation of existing data structures against CDISC standards 2. Automated evaluation of existing data structures and formats among each other 3. Designing new data standards from existing data structures PORTABILITY OF DATA Establishing data standards and applying the standards across all studies and projects can be resource intensive. It is reasonable to ask the question whether it is worth all the effort data standard, proc step, proc contents, label statement, cross join, proc sql, adverse events, cdisc 8
47 Data Summary at a Glance Varsha C. Shah This paper, for intermediate level SAS users, introduces techniques for producing documentation, in the form of summary tables, to accompany public use data sets. These tables must be comprehensive enough to serve their purpose of enabling potential data users to quickly get a feel for the data, yet the production technique must enable processing of many data sets in an automated fashion. This automation is accomplished via use of macro features. A highlight of the presentation is a technique for displaying multiple frequency tables on a page in a columnar layout character variable, numeric variable, proc freq, sample, proc step, macro call, ods rtf, proc means 8
48 Defining and Validating CDISC Data Standards to XML in SAS Technology Anthony L. Friebel We wish to demonstrate the Base SAS technology and tools to use and report investigational data in XML according to the CDISC Operational Data Model (ODM) v1.2 schema in Base SAS. The Operational Data Model (ODM) is a vendor neutral, platform independent format for interchange and archive of data collected in clinical trials. The model represents study metadata, data and administrative data associated with a clinical trial. Program fragments used for forward and backward conversions of data from SAS to ODM v1.2 format will be presented, along with displays of the data before and after conversion. The implications of data transmission using this standard will be discussed, including how to display data in ODM v1.2 format, how to validate imported and exported data, and how to otherwise assess conformance of the data with the model sas base, libname engine, raw data, proc step, clinical trial, metadata management, format statement, sas model manager, sas 9, dataset, cdisc 6
49 Developing and Deploying Java Applications Around SAS: What They Didn't Tell You in Class Jeff Wright Java is one of the most popular programming languages today. As its popularity continues to grow, SAS' investment in moving many of their interfaces to Java promises to make it even more prevalent. Today more than ever, SAS programmers can take advantage of Java applications for exploiting SAS data and analytic services. Many programmers that grew up on SAS are finding their way to learning Java, either through formal or informal channels. As with most languages, Java is not merely a language, but an entire ecosystem of tools and technologies. One of the biggest challenges in applying Java is the shift to the distributed n-tier architectures commonly employed for Java web applications. In this paper, we will focus on guiding the programmer with some knowledge of both SAS and Java, through the complex deployment steps necessary to put together a working web application dataset, proc step, data cleaning 10
50 Different Decimal Places for Different Lab Tests. Angelina Cecilia Mauldin This paper will show how to present the value of one variable in multiple formats. The representation of a variable can depend on the value of a second variable or in the value of the observation itself. In this case, the representation of the results of a laboratory test will depend on the name of the laboratory test. The format used for each laboratory test is independent from other laboratory tests. Each laboratory test can have its own appropriate number of significant decimal places and the number can vary from test to test. This method guarantees that significant results are not truncated, and also, only significant decimals are presented. Through this paper, a series of examples will show how to use the PUTN function with two, three or four parameters, and the difference between rounding or not rounding before formatting character variable, putn 7
51 eCTD - A New Standard for FDA Electronic Submission Shawn Wang The future is here, eCTD is playing a more and more important role in FDA electronic submission. The eCTD can be seen as an Open Standard. It is vendor-neutral for submission assembly. Any eCTD-compliant submission prepared in any compliant environment can be transferred to another environment built on technology from another vendor. FDA reviewer can now easily use EVS processor performs rigid validation of backbone against DTD which requires strict adherence to specifications and do not add or modify leafs within the backbone. Once a submission is sent in eCTD format, all future submissions for the application should be in eCTD format: What doesn't change? Data files submitted in SAS XPORT format. Documents submitted in PDF Format. Acrobat 5 is available to all reviewers. Draft labeling submitted in MS Word. * Office XP is current standard excel, proc step, data cleaning, dataset 11
52 Effective Ways of Validating SAS Programs Sy J. Truong Validation is normally a laboriou s and arduous task. This paper will present methodologies and tools developed i n SAS that w ill make the process painless. The goal is to add little or no effort from the user's perspective, yet gain the benefit of having a secured, audit trail of all SAS programs during the development and verification process data cleaning, sas programmer, audit trail, proc step, dataset, label statement, sas programming, proc contents, date variable, macro definition, txt 11
53 Extending ODS Output by Incorporating Trellis Graphics from S-PLUS Robert Treder,
Jagrata Minardi
In the past decade many new ideas in graphical displays (Cleveland, 1993) have made their way into common usage in technical papers and reports, especially in the pharmaceutical industry. In particular, the TrellisTM graphics found in S-PLUS provide a level of detail in a multi-dimensional context that no other display can match in clarity or graphical brevity. Though these displays are not available in SAS GRAPH, they may be incorporated in standard SAS ODS output by running S-PLUS alongside SAS and incorporating S-PLUS graphical output into the ODS report. This extends the possibilities of an ODS production report in a substantial way. This paper demonstrates the simple mechanism for incorporating graphics from another non-SAS system into a standard ODS report and describes important examples using Trellis graphics in pharmaceutical studies box plot, ods html, fixed effects, proc step, regression analysis 12
54 Five Ways to Create Macro Variables: A Short Introduction to the Macro Language Arthur L. Carpenter The macro language is both powerful and flexible. With this power, however comes complexity, and this complexity often makes the language more difficult to learn and use. Fortunately one of the key elements of the macro language is its use of macro variables, and these are easy to learn and easy to use. Macro variables can be created using a number of different techniques and statements. However the five most commonly methods are not only the most useful, but also among the easiest to master. Since macro variables are used in so many ways within the macro language, learning how they are created can also serve as an excellent introduction to the language itself. These methods include: %LET statement macro parameters (named and positional) iterative %DO statement using the INTO in PROC SQL * using the CALL SYMPUT routine macro variable, macro facility, macro put, macro loop, proc sql, put statement, do loop, macro call, proc step, missing value, macro parameter, macro definition, %macro parameters, call symput, automatic macro variable, symbol table, keyword parameter, select 12
55 Frequency Generation Using Indicator Variable Jinshi Zhou A quick and easy way of generating entries for frequency table is presented. It involves the construction of indicator variables that correspond to those properties in the t able in data steps and a call of PROC UNIVARIATE from SAS on these indicator variables to generate a data set that cont ains all of the key quantities in the table. It then uses these key quantities in a DATA STEP to create all entries for the table. Finally the data set is presented in the way requested via PROC REPORT or DATA _NULL_ binary variable, proc step, proc univariate, proc freq 3
56 Generating Least Square Means, Standard Error, Observed Mean, Standard Deviation and Confidence Intervals for Treatment Differences using Proc Mixed Richann J. Watson Have you ever wanted to calculate the confidence intervals for treatment differences or calculate the least square means using a mixed model but can't always recall the correct options or layout of the model for PROC MIXED? If so, the macro presented in this paper will appeal to you. The DOMIXED macro allows for the calculation of least square means, standard error, observed mean, standard deviation and confidence intervals for treatment difference. The macro will also calculate p-values proc calis, standard deviation, confidence interval, least squares mean, fixed effects, macro variable, proc step, proc mixed, change from baseline, treatment effect, response variable, class variable, macro loop, output delivery system, %if-%then-%else, macro definition 12
57 Generating N Shell Programs for N Reports in a Clinical Trial John R. Gerlach The Statistical Analysis Plan (SAP) in a clinical trial identifies all the reports for a protocol, often consis ting of well over one hundred Tables, Graphs, and Listings (TGL's). Assuming that the analysis programmer writes one SAS program per report, there will be as many programs that contain, hopefully, several standard features, such as a program header. Rath er than employ the usual cut -n-paste process of writing SAS programs, it behooves the SAS analyst to be more efficient, as well as consistent. This paper explains a method for generating all the SAS 'shell' programs for a clinical trial clinical trial, macro variable, proc report, dataset, data science, proc step, proc sql 8
58 Graph the R Matrix in Linear Mixed Model Jian Wu,
Peter Button
In the longitudinal studies, subjects are usually measured repeatedly over the time. Accordingly, the independence can not be assumed between the data collected within the same subject. Biased inference could result from the longitudinal data analysis without accounting for the within-subject correlation. Linear Mixed Model allows for the within-subject correlation and is a proposed model to analyse longitudinal data. The elements in the R matrix for the Linear Mixed Model reflect the within-subject data relationship (residual covariance structure). One of the tasks for the model building is to select the most suitable residual covariance structure for the R matrix. More than 30 types of structures for the R matrix are available as an option in SAS Version 8. In addition to numerical methods, visual inspection of the various covariance structures has proved to be helpful in selecting the most suitable one for the R matrix covariance, proc step, proc mixed, covariance structure, fixed effects, correlation, proc gplot, within-subject correlation 8
59 GSUBMIT: Simple Customization of your SAS Application Toolbar in SAS for Windows Robert Howard Have you ever wanted to delete all your working SAS datasets without closing your SAS session or without having to type "PROC DATASETS kill; run; quit;"? Do you have a SAS program that you run often but you don't like to search for it in your directories? Ever wished you could execute a PROC PRINT without typing? Well, there is a simple way to add a customized button to your Application Toolbar that will run a specific SAS program or SAS code - all at the click of your mouse proc step, proc print 2
60 Helpful Hints on Developing a User Friendly Database with SAS/AF Sy J. Truong Developing an effective database application requires an interface that is easy for the user. This paper will explore the features of SAS/AF in SAS version 8.2 and methodologies of building a successful database. It combines user interface suggestions for the front end while also suggesting back end SCL, SQL and DATA STEP logic that makes the software efficient to program and to operate. The majority of the examples are technical tips but there are also shared lessons learned from collaborating with end users which prove to be very important in creating an effective application dataset, proc sql, audit trail, data step, proc step 8
61 How SAS Thinks or Why the DATA Step Does What It Does Neil H. Howard The DATA STEP is the most powerful tool in the SAS system. Understanding the internals of DATA STEP processing, what is happening and why, is crucial in mastering code and output. Concepts covered: Logical Program Data Vector (LPDV or PDV), automatic SAS variables and how are they used, the importance of understanding the internals of DATA STEP processing, what happens at program compile time, what's happening at execution time, how variable attributes are captured and stored, and * handling data defaults, conversions, and missing values. This paper focuses on techniques that capitalize on the power of the DATA STEP and working with (and around) the default actions. By understanding DATA STEP processing, you can debug your programs and interpret your results with confidence proc step, proc format, missing value, dataset, put statement, lookup, sas log, automatic variable, if-then-else, raw data, retain, length statement, proc sort, character functions 17
62 How to Develop User Friendly Macros Sy J. Truong SAS macros help automate tasks that are done repeatedly. However, if they are not easy to use or debug, they may never be used. This paper will describe approaches to developing and maintaining SAS macros that are easy to use. Some of the topics covered include: effective documentation of macro header portable code for use with different OS error and warning message handling paper and online documentation use of nested macros and nested macro variables keeping macros simple for debugging A little effort can go a long way towards creating a successful SAS macro. This paper will present tips and techniques that are not always obvious. Besides getting the resulting numbers to the user, a user friendly macro can enhance the entire experience macro definition, macro variable, error message, proc step 5
63 Implementing an Audit Trail within a Clinical Reporting Tool Paul M. Gilbert,
Troy A. Ruth,
Gregory T. Weber
This paper is a follow -up to "Overview of a Browser -Based Clinical Report Generation Tool," pres ented at PharmaSUG 2003. Improved c ontrol over the reporting environment was stated as one of the next steps, with the planned addition of a Move to Production facility and accompanying system audit trail. The discussion in this paper will focus on the i mplementation of the system audit trail. An audit trail is a useful tool for management to record and review the activities of staff responsible for development and maintenan ce within a Clinical Reporting E nvironment. A system audit trail is a vital com ponent in a system intended to satisfy 21 CFR Part 11 and other regulatory requirements . DataCeutics has developed a system audit trail for the DataCeutics ' Report Portal TM (DRP), to further establish the DRP as a comprehensive Clinical Reporting Tool, s uitable for use on clinical projects intended for submission audit trail, 21 cfr part 11 6
64 Incremental Methods of Imputation for Longitudinal Data with Informative Missingness Naum M. Khutoryansky In longitudinal clinical trials, missing data are mostly related to dropouts. Some dropouts appear completely at random. The source for other dropouts is withdrawal from trials due to lack of efficacy. One of the approaches to comply with the intent-to- treat principle is the imputation of incomplete data. When the dropout process is related to the outcome process (informative dropouts), it creates tremendous challenges in analyzing such data. No commercial software currently considers the dropout mechanisms in dealing with informative or non-random dropout. Consequently, the results can be biased and misleading. This paper deals with the incremental methods of imputation applied to incomplete longitudinal data sets with informative dropouts. It is shown by simulation that the incremental methods are more precise than some other imputation methods (including the last observation carried forward method, the multiple imputation method, mixed models) sample, imputation, missing value, clinical trial, correlation, multiple imputation, sample size, longitudinal data, markov chain, proc mixed, response variable, last observation carried forward 4
65 Instant SAS Applications With VBScript, Jscript, and dHTML Brian P. Fairfield-Carter,
Tracy Sherman,
Stephen Hunt
For a programmer with limited experience outside of Base SAS, the objective of setting up an application that runs SAS as a 'back-end', and that works with SAS source code outside of the SAS system, can be somewhat daunting. Naturally, the first thing you'd ask would be 'what is the simplest, cheapest environment that I can get started with?' A good answer seems to lie in the combination of Windows Scripting technologies (VBScript and Jscript), dynamic HTML, and SAS integration with the Windows Component Object Model (COM). HTML provides a very simple environment in which to create a graphical user interface, which can be made dynamic (as in, responsive to end user actions) by placing VBScript and Jscript components between <SCRIPT> and </SCRIPT> tags. The script components can, in turn, instantiate SAS sessions, run SAS code, and retrieve and display SAS output and data txt, proc step, proc report, proc print, conditional do loop, proc contents, sample, macro definition, dataset, adverse events, ods html, proc sql 12
66 Integration of Microsoft Office and SAS Software: Implementation of a Graphical User Interface and Automation Rubin Nan This paper describes techniques that use MS-Office embedded Visual Basic tools or the Visual Basic software to create a Graphical User Interface (GUI). Using this interface, users can direct the SAS session, DATA steps, or SAS procedures to run and even input SAS macro parameters (macro variable values) from a front end to resolve macro variables in SAS programs. To clarify our description, we use simple examples to demonstrate how to create a GUI, to set up component properties, and to write the Visual Basic and the SAS code to implement the integration and automation macro variable, excel 5
67 INVALID: a Data Review Macro Using PROC FORMAT Option OTHER=INVALID to Identify and List Outliers Ronald J. Fehd Data cleansing, or as it is more euphemistically known: data review, often occupies too much of a programmer's time and energy . With a properly written data dictionary , a data set will contain appropriate formats for each variable; one can then cut and paste the format definitions into PROC FORMAT value statements and label all outliers with the value statement option: other = "Invalid" . This routine combines a format catalogue and the contents of a data set, then uses that information to write data steps which select all outliers. Reports are written, by identifier, for print review and to file, for later use as an %INCLUDE for updating purposes. Expected audience is intermediate and advanced programmers and macro users proc format, proc step, macro variable, proc freq 5
68 Is the Legend in your SAS/GRAPH Output Telling the Right Story? Justina M. Flavin When generating plots using the GPLOT procedure, a third variable, such as a treatment or dose group, is often used as a grouping variable. GPLOT automatically uses the values of this variable in the LEGEND, but very often the designers of the plots will want particular symbols, line types, and/or colors to be specified for the display of specific values of this variable. Of course consistency is important, and if the program is subsequently run on a subset of the original data, some values of this discrete variable may be absent in the subset. This can result in an inconsistent representation (symbol, line type, color) of a particular value of the variable in a series of plots. This paper will present macro and non-macro solutions for producing plots with consistent attributes for each distinct value of the grouping variable, showing how to maintain this consistency regardless of the subset used macro variable, proc gplot, proc sql, macro function, proc step, macro definition 7
69 Making Model Selection in Linear Mixed-Effects Models An Easy Process: A SAS Macro Procedure Henry Cheng,
Yuli Xie,
Elizabeth Reinbolt
PROC MIXED is widely used for statistical analyses of clinical data in pharmaceutical research. Although PROC MIXED is specially designed to fit fixed-effects models, it can also model random and mixed-effects data, repeated measures, spacial data, data with heterogeneous variances and auto-correlated observations. In model selection, one wants to select the model that performs best. However, model selection can be lengthy, tedious, and time consuming. This paper presents a practical solution using a simple SAS macro procedure to make model selection an automated and efficient procedure. The same strategy can also be used for other SAS linear model selection procedures. The reader is expected to have basic statistical knowledge and be familiar with PROC MIXED, SAS macros and macro variables. Key words: mixed model, automated, SAS macros, statistical analysis feature selection, proc mixed, macro definition, proc step, clinical data, data science, covariance structure, repeated measures, covariance, likelihood function, maximum likelihood estimation, restricted maximum likelihood, longitudinal data 4
70 Mergers, Consolidations and Proc Compare Fang Dong This paper discusses how to verify data integrity after database consolidations. System and database consolidations may follow organizational consolidations or corporate mergers. A critical need in the database consolidation process is to ensure the integrity of the data. In the heavily regulated pharmaceutical industries, it is also important to ensure reproducibility o f analysis and report output. This paper will describe how to use SAS PROC COMPARE and macro utilities to help meet these needs. Detailed explanation and examples will be provided to demonstrate how to construct a SAS program to check large amounts of data proc compare, proc step, macro variable, clinical trial, macro definition 8
71 Module to create Global Macro Variables with distinctive names matching Date values they carry Anatoly V. Kulinsky Macro Function is designed to generate various uniquely named Global variables to hold date values corresponding to the names. Macro variables created automatically for future use in SAS code. Available arguments include date formats and time intervals, alignment within the intervals, explicit starting point or default system date, number and direction of iterations - up to seven parameters with assigned default values. This flexibility allows using same tool with different arguments to produce multiple macro variables of different date format representing essentially same date, if requires. The INTNX function is used to shift time interval. CALL SYMPUT routine uses date values to create macro variables. Implementation allows referencing and comparing dates stored in the variables or embedded into various SAS names, external file or database names macro variable, date variable, label statement, macro function, sysdate9, sas log, user-defined format, data wrangling, exception handling, error message, sysrc, macro flow control, call symput 7
72 More Customization? Creating Symbols In RTF Files Using ODS Richard Rowell,
Palo Alto
If you are using SAS ODS to produce RTF files you may run into problems if you need to put symbols in your tables or listings. This paper will show you how to put various (mathematical) symbols used in statistics on to your report. It will sho w some of the problems the authors have had in creating certain symbols and how you can "troubleshoot" if you have difficulty in putting out your symbol macro variable, proc template, proc step 5
73 MULTILABEL - A useful addition to the FORMAT procedure Venky Chakravarthy This paper examines the MULTILABEL option that was added to the FORMAT procedure in SAS Version 8.2 and its application to clinical trials repo rting. The MULTILABEL option allows for the specification of (1) overlapping ranges across labels and (2) secondary labels to the same values. Two examples are covered - one illustrates an application with overlapping ranges and the other with secondary l abel values. The latter has relevance to a New Drug Application (NDA) filing. Both are relevant to table generation in the Pharmaceutical Industry proc step, clinical trial, proc format 9
74 One Frequency Macro for All Frequency Tables Sam Mao Frequency tables are one of the major components of safety analysis for a clinical trial. Those frequency tables include various adverse event, concomitant medication, surgic al history, and subject disposition tables. While these tables vary in forms, one common characteristic is that they all calculate and present frequancies, from one to three levels of counts in a single table. Following the m odular design principal, one frequency macro has been developed to do this common task. Using this macro as the back bone, together with other macro modules, any frequency table can be generated. In this paper, the design and implementati on of the macro is discussed, and examples of using the macro are demonstrated. Key words: frequency table, modular design, adverse event table, concomitant medication proc freq, system organ class, adverse events, concomitant medications, out= 9
75 Organizing and Building a Centralized SAS Macro Library Snow Fu,
James Wu
In many pharmaceutical companies, w riting and sharing SAS macros has become common prac tice in the statistical programming area. T o properly manage this proliferation of SAS macros, it s eems more and more necessary for a pharmaceutical company to build and maintain its ow n centrally controlled SAS macro library. T hese libraries may contain many types of macros, including statisti cal, utility, text-handling and data-manipulation macros. In this paper, w e will discuss some suggestions for effectively organizing and building a centralized SAS macro library data cleaning, macro definition 4
76 PROC MIGRATE: How to Migrate Your Data and Know You've Done It Right! Diane Olson,
David Wiehle
Migrating your data to a new version of SAS presents challenges; depending on the attributes of your data libraries, your migration can be relatively simple or complex. Some issues to consider when adopting SAS 9 include the version of SAS in which your data currently resides, what member types exist in your libraries and whether you must move members from 32-bit libraries to 64-bit libraries. To address these issues, SAS 9.1 includes a new utility procedure, PROC MIGRATE. PROC MIGRATE streamlines the process of moving libraries forward to a new release. This paper introduces PROC MIGRATE and discusses pitfalls of migrating with the traditional methods - PROC COPY, PROC CPORT/PROC CIMPORT and PROC CATALOG. Base SAS also provides tools that can help you guarantee the content and attributes of your data after migration. We discuss how PROC DATASETS, PROC CONTENTS and PROC COMPARE are used in validation tools to validate the integrity of your migrated libraries proc step, data cleaning, audit trail, proc compare, sas 9, constraint, sas log, sas output, proc contents, proc sql, sample, libname statement, proc copy, sas library, macro definition, data integrity 14
77 PROC POWER: V9.1 Deborah J. Bauer Features were added to SAS V9.1 STAT that will allow many users to do all their power and sample size calculations in SAS. Two free STAT Procs (PROC POWER and PROC GLMPOWER) can allow companies to save money by canceling their licenses for software packages that only do sample size calculations. Not only are these Procs full featured, but the ODS capabilities in SAS make it easy to take the results into a finished document. This paper will quickly review the logic of power calculations and give examples of SAS syntax typically used in a pharmaceutical setting. Finally, it will present a table that compares the features of SAS to several power calculating packages. It is hoped that this table can be used to determine if SAS V9.1 can meet all of the reader's needs for power and sample size calculations sample, sample size, fisher exact test, proc power, proc step, adverse events, exact test, rank test, proc power and sample size, effect size, standard deviation, primary endpoint 6
78 Processing Large Lists of Parameters and Variables With Macro Techniques Eugene Tsykalov Use of SAS arrays and Macro language is demonstrated to automatically handle large lists of variables and parameters in normalized (vertical) datasets without using the names of the variables (parameters) again and again. Practical examples include subsetting and manual transpose of normalized datasets and cross-checking of Laboratory parameters in a Clinical Trial data macro variable, array, conditional do loop, clinical trial, laboratory data, proc step 6
79 Producing Data-Driven Plots for Microsoft Word Using SAS/GRAPH and the SAS Macro Language Robert W. Graebner SAS/GRAPH is a powerful tool that provides a broad range of graphing capabilities. When combined with the power of the SAS macro language, SAS/GRAPH allows users to develop flexible applications that can automate the production of graphs. The ability to output graphs into the most common graphic file formats allows publication quality graphs to be easily created and imported into the commonly used personal computer applic ations. This paper presents the basics of using the SAS macro language to automate the process of pr oducing graphs and importing them into Micr osoft Word. Four basic uses of the macro language are covered; automatically gener ating plots for all defined subsets of data, tailoring each plot to the data in a particular subset, outputting the graphs to computer graphics metafiles (CGM) for importing into Microsoft Word and generating Visual Basic source code to insert the figures into a Word document and resize t hem macro variable, macro facility, macro definition, proc step, proc gplot, put statement, data step, clinical trial 7
80 Programming Squared (Writing Programs that Write Programs) James R. Johnson This paper will demonstrate several techniques using Base SAS and macros that will take your programming skill s to a new level by giving you the power to write programs that write programs. These simple techniques, which are powerful used alone, are awesome when combined. Using these techniques when your application is appropriate, you can write one program that will act as though you wrote dozens of individual programs. These programming techniques will give you the ability to write more robust, highly flexible, intelligent programs that can extract data from little known sources, make decisions, write and exec ute program code depending less on user input. Programs using these techniques are more difficult to debug, but once validated, can be used over and over again by many projects. Although the techniques are simple, this paper is aimed at experienced progr ammers who know when it would be appropriate and efficient to use them macro variable, dictionary tables, proc step, proc print, proc sql, sas base, flat file, data cleaning, macro definition 12
81 Programming Tips and Examples for Your Toolkit John Morrill,
Kristi Wiser
This paper describes several independent ideas that perhaps should be in the toolkit of intermediate level programmers. We cover methods of supplying missing summarization levels using SAS 8.2 PROC MEANS options and the DATA STEP UPDATE statement. We examine a nifty example of adverse event reporting by month. We suggest an alternative to standard if-then-else logic, the DATA STEP SELECT statement. We review PROC TABULATE and a macro to obtain a quick glance at all data sets in a directory. We also present some thoughts on formats and a few other ideas along the way proc step, raw data, proc tabulate, select, update statement, adverse events, study day 8
82 Progress in SAS Scientific Discovery Solutions: Genetics, Microarrays, and Proteomics Russell D. Wolfinger,
Wendy Czika,
Kristen Kleiss
The SAS Genomics team is making steady progress in leveraging existing and new SAS technologies for more effective approaches to scientific discovery. This paper presents an overview of SAS/GENETICS, SAS Research Data Management (RDM), and the SAS Microarray Solution, as well as introduces the two latest additions to the SAS Scientific Discovery Solutions line, the SAS Genetic Marker Solution, and the SAS Proteomics Solution. Release 1.3 of the RDM platform contains several major improvements, including an expanded architecture for supporting input engines and analytical processes, as well as advanced GUI support via XML. The SAS Genetic Marker Solution is built on the RDM platform and features analytical processes invoking SAS/GENETICS procedures in the background. The SAS Proteomics Solution is also an add-on to the platform and focuses on the management and analysis of spectral data, enabling advanced data analyses and profiling of peptides or metabolites proc step, proc mixed, proc freq, anova, normalization, dataset, sample, correlation, regression analysis, excel, proc sql 18
83 Reading and Writing XML Files from SAS Miriam G. Cisternas XML (eXtensible Markup Language) is gaining popularity as a medium for data exchange. SAS Institute has added additional support recently for reading and writing XML files under both 8.2 and 9.1. The purpose of this workshop is to provide a quick introduction to XML, show the ways in which XML is read and written from SAS, and then present hands-on examples for reading in and mapping XML files to SAS datasets and writing out SAS datasets to XML files dataset, proc step, proc print, proc contents, key, clinical trial, libname engine, character variable, foreign key, sysdate9, raw data 18
84 SAS and Microsoft Excel for Tracking and Managing Clinical Trial Data: Methods and Applications for Information Delivery Na Li Microsoft EXCEL is widely used in the pharmaceutical industry and therefore frequently requested due to familiarity and ease of use. This paper outlines an automated data communication between EXCEL and SAS programs such as how to consolidate data from multiple EXCEL files, MS ACCESS files and other data sources, establish a data warehouse by manipulating and integrating information in SAS, and deliver information in EXCEL format applying EXCEL templates with reusable macros or by dynamically creating multiple EXCEL worksheets. Several SAS methods are explored including DATA STEP, SAS/ACCESS (PROC ACCESS, SQL Procedure, PROC DBLOAD, PROC IMPORT/EXPORT), DDE (Dynamic Data Exchange), and ODS (Output Delivery System). The pros and cons of each method are also summarized. Furthermore, the scheduling of SAS executions on a daily basis is addressed excel, proc step, proc import, proc sql, dataset, sas output, output delivery system, clinical trial, create table, adverse events 11
85 SAS Application in 2x2 Crossover Clinical Trial Wuwei Wayne Feng Crossover clinical trial design attracts a lot of attention in today's drug development environment because of its unique characteristics. This paper will start with an introduction of a 2 * 2 crossover clinical trial design, then a review of advantages and disadvantages of cross over studies compared with parallel studies. Different types of SAS@ procedure, such as PROC TTEST, PROC GLM and PROC MIXED will be used as demonstration on how to analyze the data if response variable is continuous. McNemar test, Mainland-Gart test, Prescott test will also be reviewed if the outcome measurement is a binary variable. The paper closes with an example using simulated data proc step, response variable, treatment effect, null hypothesis, proc genmod, treatment period, proc glm, proc mixed, clinical trial, proc freq, proc ttest, crossover study 10
86 SAS with Style: Creating your own ODS Style Template for RTF Output Lauren E. Haworth Once you've started using the Output Delivery System, you'll quickly discover that your taste in output design probably doesn't coincide with the built in ODS styles shipped with SAS software. While you can edit your RTF output in Word to improve its appearance, a better approach is to create your own style template. This workshop will take you step by step through the process of creating a custom style for your RTF output. You'll learn how to make minor modifications, and how to give your output a complete makeover. If you'd like all of your SAS output to be in hot pink with a gigantic script font, this workshop will show you how! Or, if you'd just like to use fonts and borders that coordinate with your corporate style guidelines, you can do that too. The workshop will also provide tips and tricks for taking advantage of the RTF destination, including the generation of custom page numbers and page breaks. The workshop will walk through the TEMPLATE procedure, showing how you can redefine the default style elements and attributes to customize fonts, colors, and borders to suit your own personal or corporate style. You'll be given a basic style template that you can customize during the workshop and then take home to try out on your ODS output. While many of the techniques in this workshop apply to other ODS destinations, the focus will be on RTF. The workshop is aimed at beginning to intermediate ODS users, and is based on SAS versions 8.2 and 9. sample, proc step, proc template, ods rtf, footnote statement, proc report, title statement, output delivery system, options statement, proc freq 20
87 SASUnit: Automated Testing for SAS Gregory S. Barnes Nelson Data management is one of the cornerstones of SAS as a language and critical to pharmaceutical research and development. SAS programs that access, manage, analyze and report data are often taken from vast libraries of tools that are used and reused for consistency; their reuse in similar projects is another benefit. Over time, the number of potential uses of any one program or macro is challenged by the amount of time it takes to test, retest and validate these programs. As these programs become part of the production eco-system in a clinical research environment, their testability, robustness and manageability as "built-in" to the software development process become increasingly important. This paper discusses a specific approach to "building in" a process for every program that monitors the conditions SAS programs encounter and proactively tests for and announces validation issues proc step, sysrc, data validation rules, proc print, proc sql, if-then-else, numeric functions, sas programmer, data cleaning, macro variable 15
88 Simultaneous Nonparametric Inference in a One-Way Layout Using the SAS System Paul Juneau The process of discovering a novel medicine is one fraught with many unknowns. Even if a fundamental understanding of the biological systems involved in the disease process exists, the effect of a novel agent or agents on an organism may be difficult to predict or characterize. Moreover, knowledge about the corresponding measurement properties (e.g., distribution) is generally very limited. For the statistician, this setting is a perfect one to apply nonparametric statistical methods for data analysis. A one-way layout with three or more treatments is a common study design employed in basic drug discovery research for the analysis of continuous responses. The goal of such an experimental design is often to make inferences amongst several treatments (e.g., all pair-wise comparisons, all comparisons to a control, etc.) sample, sample size, standard deviation, proc means, box plot, inferential statistics, macro variable, proc print, title statement, class variable, data science, macro definition, anova, proc step 17
89 So You Want To Write A PharmaSUG Paper? That Paper About Writing A Paper Dianne Louise Rhodes You just attended your first Users' Group conference, and you come out of one really good session thinking, "Hey, I could write a paper like that about My Project!" That's what happened to me after I attended my first NESUG in 1996. And it has happened to others; just recently, in fact, a colleague asked me where he could find "That Paper about Writing a Paper." We couldn't find anything providing specific guidelines on how to approach the process. This paper will introduce the paper writing process: choosing a topic, researching it, developing an outline, and actually writing the paper. I'll also walk through developing a presentation from an outline created in PowerPoint. That's the best way I've found to ensure that the presentation and paper are in sync. I'll go over tips on making an effective presentation. Finally, in the reference section I'll provide other resources for writing good papers and giving good presentations proof of concept, quality control 7
90 So You're Still Not Using PROC REPORT. Why Not? Ray Pass,
Ray Pass
Everyone who can spell SAS knows how to use PROC PRINT. Its primary use may be as a development tool to help in debugg ing a long multi -step program, or as a simple report generator when all that is really needed is a quick look at the data, or even a basic low -level finished report. However, if a report generation/information delivery tool with powerful formatting, summa rizing and analysis features is called for, then PROC REPORT is the solution. PROC REPORT can provide the standard PROC PRINT functionality, but in addition, can easily perform many of the tasks that you would otherwise have to use the SORT, MEANS, FREQ a nd TABULATE procedures to accomplish. PROC REPORT is part of the Base SAS product, can run in both an interactive screen -painting mode or a batch mode, and should be the basic tool of choice when there is a need to produce powerful and productive reports from SAS data sets proc report, proc step, class variable, character variable, proc print, numeric variable, proc tabulate, proc means 19
91 Statistical Application of SAS in Method Comparison Analysis David Shen It is common to study the agreement of measurements between two methods in clinical studies. Many techniques consisting of exploratory graphics and statistical analysis are introduced to identify the relationships between the results from two methods. All SAS codes related to the topic are also presented in this paper correlation, sample, proc step, anova, regression analysis, standard deviation, confidence interval, proc univariate, proc means, sample size, null hypothesis, proc reg, proc mixed, data science, histogram 13
92 Statistical Simulations for Sample Size Calculation with PROC IML Izabella Peszek This paper describes some techniques for sample size calculation via statistical simulation with PROC IML. The simulation approach may turn out to be the most practical way to calculate sample size when trial design is very complex. The concept is illustrated in a case example: showing how to validate a sample size calculation program from the public domain using simulation methods. The basic concepts of statistical simulation are described and corresponding IML code is provided sample size, sample, proc iml, proc power and sample size, proc step, hazard function, exponential distribution, rank test, log-rank test, monte carlo 8
93 Submission of Analysis Datasets and Documentation: Scientific and Regulatory Perspectives Dave Christiansen Analysis data submitted in support of new drug applications should allow statistical reviewers to identify, understand, replicate, explore and confirm the analyses performed and submitted by the sponsor. In addition to the datasets per se, the sponsor must provide clear descriptions of the creation and content of the datasets and the analyses performed. This paper will discuss the structure and content of analysis datasets and documentation for regulatory submissions. Topics will include met adata for datasets and variables, the submission of analysis programs, the generation of analysis datasets and the concept of analysis-level metadata. The authors will discuss both the scientific and regulatory aspects of creating and documenting analysis datasets 6
94 Swiss Army Knife of Listing All Filenames For Multiple Libraries William C. Csont SAS Software is a great tool for obtaining the same results from a variety of different programming techniques. In this paper we will e xamine t wo distinctly different meth ODS of arrivi ng at the same result: a report that lists indiv idual file names from different li braries. The older method emp loys SAS ma cros, PROC CONT ENTS and PROC SORT; the ne wer metho d employs SAS code that utilizes a PROC FORMAT and a DATA STEP that accesses the SAS Dictionary Tables. The code for each method ends with a PROC TABULATE to aggregate the resu lts in a pr esentation format. Ea ch method is useful for documenting SAS data sets and libraries proc step, proc contents, proc sort, sashelp 4
95 Testing Normality of Data using SAS Guangbin Peng Many statistical tests require data to be approximately normally distributed. Usually, the first step of data analysis is to test the normality. Also, we often test the normality of residuals after fitting a linear model to the data in order to ensure the normality assumption of the model is satisfied. SAS has offered four statistical tests that provide an easy way to test the normality. However, we should be cautious when we use these tests due to their limitations. In some cases, we may draw incorrect conclusions by only looking at the test statistics and p-values. Graphical methods are powerful in displaying distribution characteristics of the data and can serve as a useful tool in checking the normality. Combining graphic methods and statistical tests will improve our judgments on the normality of the data. In this paper, I will present these methods SAS uses by applying them to the real data from a clinical trial normality test, sample, normal distribution, qq plot, anderson-darling test, sample size, data science, response variable, probability distribution, proc step, density plot 6
96 The Analysis of Gene Markers and the Use of SAS Procedures to Examine MicroArray Data Patricia B. Cerrito The purpose of this paper is to demons trate SAS procedures that can be used to investigate gene marker data. Gene markers are often studied through microarray analysis where a chip containing identified genes is treated with a specific drug and then examined. The paper includes discussion of t he use of SAS/GENETICS and SAS/MICROARRAY as well as PROC KDE and PROC CALIS in SAS/STAT. PROC KDE is used to find the population distribution of gene markers for one treatment, or multiple treatments. PROC CALIS is used to develop structural equation mode ls that can provide a means to examine the relationships between gene markers proc step, proc calis, correlation, proc freq chisq, proc mixed, data mining, anova 14
97 The Big Button Approach for Quickly Running and Printing Large Numbers of Tables Mary Cowmeadow To meet speed goals, it is important to produce all study tables as fast as possible at certain points during the study and at final database release. Traditionally one table had been run and printed at a time, a slow and tedious manual process. A much quicker method was needed. Also the work team needed to slice and dice, pool and collapse, integrate and subset in order to look at the data in many ways for an exploratory study. The "Big Button" driver was developed to help meet these goals. With one "submit", all programs would run. In SAS the Output Delivery System and PROC TABULATE were chosen because of their slice and dice capability and nice output. As a consequence, the study workgroup, rather than asking for more and more, actually decided instead to reduce the number of tables quite substantially. Finally, Microsoft Binder, a part of Microsoft Office which few people seem to know they have, was a useful way to print large numbers of tables proc tabulate, proc step, macro variable, excel 6
98 The FORMAT procedure - more than just a VALUE statement Lawrence Heaton-Wright The FORMAT procedure is most frequently used to define formats for variables. However, there is also extended functionality available within the FORMAT procedure which allows users to define informats, picture formats, create data sets of formats, use data sets (also known as control data sets) to create formats and to display the formats catalog information. This paper aims to show users how informats and picture formats work, how to create and use control data sets and how to display the formats catalog. The audience for this paper does not have to be of a high technical level but should be familiar with the workings of base SAS. The contents are not restricted to one particular operating system proc format, character variable, proc step, numeric variable, date variable, sysdate9 9
99 The Implementation of Automatic Obvious Data Modifications (ODMs) on Late Phase Trials Using SAS PROC SQL Kathleen Kushner,
Philip Pellicone
Many clinical trials utilize Obvious Data Modifications (ODMs) to amend hard to clean data (i.e. patient diaries). ODMs are database updates that are self-evident and pre-approved by sponsors/investigators, and consequently can be made without querying a site. The application of these ODMs are frequently used in many late-phase trials where patient Quality of Life and diaries are completed. Since the patient captures this data, it is usually very dirty and unable to be queried. The utilization of approved ODMs allows this data to be corrected resulting in an effective statistical analysis. The manual process of updating large amounts of data is very time consuming and has a high risk for human error. The time, and ultimately costs, associated with data management staff manually updating potentially thousands of ODMs does not seem a feasible process to continue. Automatic ODMs would serve by creating better quality data in less time proc step, proc sql, data governance, proc compare, proc print, where statement, data cleaning, adverse events, sas log, audit trail, data validation rules 6
100 The Meta-Analysis (PROC MIXED) of Two Pilot Clinical Studies with a Novel Antidepressant Lev Sverdlov,
Park Ridge
proc mixed, proc step, clinical trial, fixed effects 6
101 The Paired T-Test: Does PROC MIXED Produce the Same Results as PROC TTEST? Jack S. Nyberg The paired t-test is a common technique to assess pairwise treatment differences when all treatments are given within the same experimental unit (e.g., subject). When data are paired, it is reasonable to assume that the observations within experimental unit are positively correlated. By taking advantage of that correlation, the analysis will achieve more power than by using a 2-sample t-test in which the observations within experimental unit are assumed to be independent. In SAS v.8.2, PROC TTEST can easily perform the paired t-test with the PAIRED statement. However, the data format requirements (horizontal structure) for PROC TTEST are at odds with the common data structure required to use PROC MIXED. As PROC MIXED is a standard analysis engine within the pharmaceutical industry, it is desirable that it could be used to perform a paired t-test proc step, proc ttest, proc mixed, degrees of freedom, sample, treatment effect 5
102 Tools to Facilitate the Creation of Pooled Clinical Trials Databases Patricia Majcher Data collected from individual clinical trials offer critical information. Of perhaps even greater importance is information that can be gleaned when data from individual trials are pooled. Such pooled databases can be used for several purposes: to answer health authority questions more efficiently, to support publications, and for data mining. However, data from different studies, particularly for long-term drug projects, may utilize different data model structures. Mergers between companies can also introduce variability to a company's data model standards. At Johnson & Johnson Pharmaceutical Research & Development, L.L.C., the Data Warehousing department supports several SAS macros, which can be used to facilitate the creation and verification of pooled databases. These macros utilize Base SAS and SAS Macro Language and can execute on both UNIX and Windows. This paper will present an overview of these macros raw data, crosswalk, nominal variable, adverse events, proc step, proc format, data standard, proc contents, clinical trial, response variable, proc freq, macro facility 8
103 Traditional Repeated Measures Analysis Versus Random Coefficients Models Using PROC MIXED Radhi Abdulnabi A longitudinal data set is defined as a data set in which the response for each experimental unit is observed on two or more occasions. In the paper I will present different types of Longitudinal Data Analysis, and review the traditional approaches to longitudinal data analysis including mixed models and repeated measures analysis of variance. I will concentrate on random coefficient models showing their greater power and other advantages over traditional methods. I will try to show the similarities and differences between the repeated measures and random coefficient analyses by comparing their results using the same data set. I will use simulated data with high dropout rate to evaluate the missing data effect on these approaches. I will also present the SAS code for MIXED procedure for each method and when we have to use the time as fixed effect and when as random effect as I will try to show the differences between the time as a class variable and the time as a continuous variable repeated measures, proc mixed, fixed effects, repeated measures anova, regression analysis, longitudinal data, random intercept, covariance, likelihood function, class variable, interval variable, covariance structure, main effect, predictor variable 9
104 Transposition of Variables with Different Formats Peter Lin Sometimes with clinical trial data, several variables need to be transposed into a single variable with multiple observations. At the same time, the transposed variable needs to keep the different formatted values of the original variables. It is impossible to use PROC TRANSPOSE in one step to accomplish the transposition. This paper introduces a macro that transposes all variables (numeric or character) into one character variable while retaining the different formatted values of the original variables. If a variable does not have a format, its character value is kept in the transposed variable. Users can also define the name and the length of the transposed variable proc transpose, proc step, character variable, by group processing 5
105 UltraEdit - The Elegance and Ease of SAS Programming On a Server Eugene Tsykalov The use and features of UltraEdit, a powerful and practical Program Editor application, are described for creating, editing and saving SAS program code when working on the PC and remote servers. UltraEdit is a Windows application, which runs on a PC and has a familiar and user-friendly interface. It has common for Windows-editors features like text highlighting with the mouse and shift-arrow keys; same commands for copy, paste, cut; etc. What makes UltraEdit unique is its ability to work with files on any remote server transparently for users, as if you are working with files on your local hard drive. Using a built-in FTP engine, UltraEdit allows programmers to easily open/save/reload files residing on any PC-based or mainframe server and in any operating system (Unix, VMS, Windows NT, etc.). While some other editors (MultiEdit, SlickEdit) provide similar FTP features, UltraEdit has by far the most convenient, intuitive and complete implementation of remote work with files sas programmer, sas programming, proc contents, excel, proc step 7
106 Undocumented and Hard-to-find SQL Features Kirk Paul Lafler The SQL Procedure contains many powerful and elegant language features for advanced SQL users. This paper presents SQL topics that wil l help programmers unlock the many hidden features, options, and other hard -to-find gems found in the SQL universe. Topics include CASE logic; the COALESCE function; SQL statement options _METHOD, _TREE, and other useful options; dictionary tables; automatic macro variables; and performance issues. Finding the First Non-Missing Value The SQL procedure provides a way to find the first non -missing value in a column or list. Specified in a SELECT statement, the COALESCE function inspects a column, or in the case of a list scans the arguments from left to right, and returns the first non-missing or non-NULL value. If all values are missing, the result is missing. When coding the COALESCE function, all arguments must be of the same data type. The example show s one approach on computing the total number of minutes in the MOVIES table proc sql, proc step, macro variable, sas library, missing value, macro definition 9
107 Use Regression Algorithm Identifying Repeated Use Patients Haibin Shu,
Bala Cynwyd
When a task cannot be done within one process or procedure, a regression method can be explored to reduce the task until it's completely resolved. A regression algorithm can then be designed to achieve the task of identifying patients with different patient numbers in a clinical trial engaging repeated use of study drugs, the result being a link among all numbers assigned to the same patient regression analysis, clinical trial 4
108 Use That SAP to Write Your Code Sandra Minjoe In this electronic age we live in, we usually receive the detailed specifications from our biostatistician in an electronic statistical analysis plan (SAP). We often then turn around and retype much of these specs into our programs. This paper describes and gives examples of how we can take those electronic specs, from, say, an Microsoft EXCEL spreadsheet or Microsoft Word table, and convert them into a dataset or code logic. This prevents us from introducing typos because we no longer have to retype information already provided. The real savings come later on, though, when the specs change (as they so often do). By using the techniques outlined in this paper, when specs change we simply need to rerun, rather than recode excel, macro variable, proc sql, medical history, proc step, clinical data 9
109 Using a Decision Table to Program Complex Date Logic Arthur Collins Programming tasks involving complex date logic, such as to determine treatment emergence of adverse events or medication concomitance, can be time consuming and prone to error. This paper will propose and demonstrate an approach utilizing a decision table, which systematically handles all logical possibilities. This approach promises to make the programming easier and more efficient, while offering more control to the study statistician. The statistician can be the one to set up the table, allowing them to ensure accuracy and correctness, as well as being able to easily make changes to the logic when necessary. Finally, the statistician can use the table to define illogical values, such as a resolution date prior to onset, which they would like brought to their attention for review adverse events, trial elements 4
110 Using Compute Blocks in Proc Report Sharon Dunn PROC REPORT is widely used to generate tables and listings. By incorporating the use of compute blocks within the PROC REPORT, we can utilize data null capability to get around some common challenges. For anyone still using a version of SAS 8.1 or earlier, there is a 10 line text limitation for titles and footnotes. Compute blocks will allow for as many lines of text as needed, as well as letting you create page specific titles and footnotes. They can also be a very useful way of specifying varying category titles within the report body, particularly if the data dictates which titles should be used. Another advantage of using compute blocks is to create the line 'Number of Patients Dosed' without having to add an observation to your dataset. You simply calculate macro variables for these N's and use a compute block to output the information into the report proc report, proc step, macro variable 4
111 Using Cyclomatic Complexity to Determine Test Coverage for SAS Programs Michael C. Harris The Cy clomatic Complexity metric described by W atson and McCabe 1 provides an objective measure of the complexity of a given module of program code by examining its decision structure. T his article examines issues related to using the metric. These include identifying relevant SAS flow control constructs, creating flow graphs of SAS programs, and methods for deriving test cases from basis path analysis. Emphasis is placed on programs typical of the biotechnology and pharmaceutical industry, but the principles are applicable to any kind of program data step, macro definition, conditional do loop, sas programming, pharmaceutical industry, sample, macro facility 5
112 Using Macro to Create a New Format to Transpose Differently Formatted Values Differently Formatted PROC TRANSPOSE is a useful procedure used almost daily in SAS programming. One powerful feature is the variable created by PROC TRANSPOSE to identify the source of the values in each observation in the output data set. But this feature limits the transposition of formatted values, particularly when the variables in the input data set have mixed and/or complicated formats. This paper will demonstrate the use of a macro to create a new format to transpose differently formatted values proc transpose, proc step 2
113 Using PROC LOESS With Sparse Data Kenneth S. Liu,
Alison Kellock
PROC LOESS generates "smooth" curves through data which are often used in graphs. Sparse data (≤5 data points) cause computational difficulties for PROC LOESS. If extrapolation occurs when producing "scored results," PROC LOESS issues warning messages. This paper illustrates and provides solutions to these problems proc loess, proc step, regression analysis, predictor variable, response variable 7
114 Using SAS Drug Development as a Report Management Application Barry R. Cohen Many statisticians and statistical programmers in the pharmaceutical industry will first come to know SAS Drug Development as a product that addresses their regulatory-compliance issues (auditing, versioning, and security) as they develop their on- going analysis programs, data, and documents for NDA filings. However, the product provides a full, flexible processing environment that can be used in other ways. In this paper, I examine standard features of SAS Drug Development that allow it to serve as a Web-enabled report management application for a library of SAS-based report programs. The application covers typical functions such as (1) loading SAS macro report programs to the environment; (2) building report parameter-solicitation screens; (3) providing a user interface to select report programs, set report parameter values, and execute reports; (4) managing report output sets and providing a user interface for output file viewing clinical research, macro variable, macro definition, statistical programmer, sas programmer, dataset 8
115 Using SAS to Speed up Annotating Case Report Forms in PDF Format Dirk Spruck One of the first things programmers do before they start working on clinical data is to create an annotated case report form (CRF). Variable names are written on the CRF to provide a link between the fields on the form and the variables in the data sets. Annotating the CRF electronically increases the readability and reusability of the document. For electronic submissions the Food and Drug Administration (FDA) requires a completely annotated CRF in PDF format. This paper describes the technology used to place annotations in a PDF file and the process of copying annotations between pages. SAS is used to write the variable names from specified data sets and the associated formats as notes in Forms Data Format (FDF). After the CRF is converted to a PDF file the notes are imported into the PDF document and manually placed in the appropriate position on the CRF page. For repeat pages the notes are exported. Using SAS the exported notes are copied and the page numbers are replaced annotated crf, sample, cdisc 7
116 Using the SAS Windowing Environment for Program Development Wei Cheng The SAS System Windowing Environment provides many new features to assist SAS programmers in developing their SAS programs and applications. This paper gives examples of customizing the SAS Windowing Environment to build a program development environment. Topics include building a help page to find answers to SAS questions, building a toolbar icon to scan the Log window, setting up Favorite Folders in the SAS Explorer, setting up File Shortcuts in the SAS Explorer, and setting up colors for different windows sas log, sas output 6
117 Using XML to Create Excel Spreadsheet in SAS: A Step-by-Step Guide Raj Juneja Creating MS EXCEL Spreadsheets with SAS DDE has a variet y of shortcomings. Starting with SAS 8.2, SAS XML support has a solution to these shortcomings. This paper covers how XML and EXCEL interface with each other and how SAS can be used to populate EXCEL Spreadsheets with the help of XML Spreadsheet language (XMLSS). It also gives examples of XMLSS tags that can be used in SAS with generic XML to format an EXCEL Spreadsheet. This paper assumes basic SAS and XML knowledge excel, dataset 6
118 Version 9 Changes and Enhancements Dana Rafiee This document is an excerpt from Dest iny Corporation's Version 9 Changes and Enhanc ement course materials, Copy right 2004. It is designed to give a brief overview of what Version 9 has to offer. The primary goal of Version 9 is to provide support for a new level of computing that supports faster execution of applications, centralized access of data and support of t he latest computing technology . These materials are designed as an overview of what is available and new and complement the online documentation that ships with the software output delivery system, sas management console 19
119 Version Control on the Cheap. A User-Friendly, Cost-Effective Revision Control System for SAS Tim P. Williams Revision control, an integral component of code development in many languages, is often absent from SAS programming. Cost and ease of use are often cited as two of the primary reasons why a revision control system is not in use. However, t he need for such a system is growing. Producing an audit trail for changes to code is becomi ng increasingly important within the pharmaceutical industry. From a programmer's perspective there are many advantages to a system that can easily differentiate between programs that are under development, have been validated, or were used for specific p roduction runs (such as an interim analysis or final analysis). The ability to roll back changes during development and easily compare revisions to files can greatly increase programming efficiency. This paper describes the implementation of free, open s ource components that comprise an easy to use revision control system for SAS programs interim analysis, audit trail, final analysis, data cleaning, quality control, production run, adverse events 11
120 Web Services Integration and the SAS Drug Development Platform Christopher R. Olinger The SAS Drug Development (SDD) platform is an extensible, web-based application for the hosting, processing, and management of clinical and pre-clinical data. The system is 21CFR Part 11 compliant, runs over the Internet, integrates with SAS, and p rovides direct interfaces for controlling the various c omponents of t he system. The system employs J ava EJB technology, Web Services, and a WEBDAV interface to deliver Internet-based clinical functionality, and to p rovide integration po ints for controlling ba sic functionality s uch a s auditing, uploading, downloading, and versioning. This presentation discusses the application of Web Services and reviews the primary methods for integrating with SAS Drug Development (as there are several). The paper is intended for individuals with Java/Web experience, and for SAS programmers that would like to see what you can do with the platform web service, clinical research, audit trail, clinical data 14
121 Why SAS is the Best Place to Put Your Clinical Data Steven A. Wilson The SAS System contains an incredible amount of functionality for managing your data files as a database. In most respects, including data storage, data access, and data management, SAS can be considered a database. This paper will review the database functionality available within the SAS System and how this relates to the task of clinical trails data management. Sample code, which illustrates many of these database techniques, is provided audit trail, constraint, key, dataset, proc step, foreign key, proc sql, missing value, data integrity, clinical data, clinical trial, proc datasets, proc print, sas base, libname statement, traffic data, view, adverse events 12
122 XML Data Mapping under SAS 9 - From the Perspective of Electronic Submissions Tianshu Li Like most other government agencies, the Food and Drug Administration ( FDA) is adopting extensible markup langua ge (XML) as one of the standard data formats for electronic submissions . Nevertheless, since SAS will still remain as the ma jor analytical tool in the foreseeable future, the integration and compatibility between XML and SAS software are becoming critical in adopting XML for electronic submissions. The switch from traditional SAS Xport data format to XML presents opportunities because of the huge potential of XML for web- based technologies, and faces new challenges because of the fundamental differences in data structures between them. This paper focuses on the testing and evaluation of the mapping process between SAS data and XML. In addition, the readiness of the SAS 9 XML engine for electronic submissions is assessed. Future improvements and suggestions are also discussed sas 9, data science 7

Back to Conf go 2005 go 2003

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.