HOME QUICK SEARCH AUTHORS KEYWORDS HELP BUGS

PharmaSUG 2008 Papers - Index

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

# Title
×
Authors
×
Abstract
×
Keywords
×
Extras Pages
1 "Backup Early, Backup Often" Backup Your SAS Programs using SAS Display Manager Paul D. McDonald This is a quick tip on how to put a special "button" on your SAS Toolbar in SAS Display Manager that can allow you to quickly backup your SAS programs to unique date-time-stamped files in PC SAS. Trademarks and Copyright Notices SAS, the SAS Software System, and its components are registered trademarks of The SAS Institute, Inc. in Cary, NC, USA. Microsoft Windows and its components are registered trademarks of Microsoft in Redmond Washington, USA. Disclaimer This system works with the SAS Display Manager system and has been tested only in Microsoft Windows (specifically, Microsoft Windows(XP) in SAS v8.2) but it should work well in any display manager system. Who Doesn't Want to Backup Their Programs? How many times have you been pounding away on a program in SAS Display Manager when all of a sudden you realized that you made a huge, huge, huge mistake! But then an even bigger problem hits you-you overwrote the program and have to start completely over 7
2 "Which Subjects?" Combining a Summary Table and a Data Listing to Answer Clinical's Favorite Question Kim Truett You've programmed, reviewed, QC'ed and double checked the monthly summary table for a clinical trial. You know the N's are right, and the percents are calculated correctly. You deliver the table, and the question you get back is all too familiar "How does this compare to the last time you ran this for me?" and "Which subjects are these?" pointing to one specific number on the table. This paper presents a simple way (that is, no macros or complex loops) to create a combined table / listing that presents both current and incremental data, and includes both the statistics and the study subjects that comprise that statistic, or that includes summary statistics on the bottom of a listing. Or you program a listing, and the question becomes "Can you tell me how many of these subjects . . .?" proc freq, proc means 6
3 %CHCKFRQS - A Macro Application for Generating Frequencies for QC and Simple Reports John Iwaniszek,
Natalie Walker,
Laura Lovette
There are occasions when data must be summarized quickly and efficiently, with minimal formatting, and displayed in a format that is easily interpreted. The macro described below was written with that goal in mind. It is used most often in QC where table results must be reproduced and QC results compared to target tables. The most basic frequencies can be generated using SAS PROC FREQ, but the default output is usually organized in a manner that is loaded with excess information. A SAS macro, %CHCKFRQS, was written that produces frequencies of categorical variables alone or stratified by one or more BY variables. By default it bases the denominator on the input data set, but it also has an option allowing the entry of a special denominator file (useful of multi-record dataset like adverse event or other multi-response data) proc freq, medical history, proc print, proc step, macro parameter 8
4 %LOGCHECK: a Convenient Tool for Checking Multiple Log Files Suzanne M. Humphreys This paper presents a useful and easy-to-use tool from within SAS for checking multiple log files and producing a summary report of the findings. Although checking logs while programming is an almost universal practice, it is usually necessary to check all logs once a production run has been completed. The report produced can be reviewed and any outstanding messages of concern can be signed off and documented. The macro uses the FILENAME PIPE device-type to access all log files in a user-specified directory, reads through them for errors, warnings and other messages of concern and produces a report to the same directory. Uses of PIPE device-type with FILENAME, resolving macro variables within single quotes, producing user specified macro variables and other handy tips will be utilized. Intended audience - intermediate to advanced, Windows platform, based on SAS 9.1.3, interactive SAS macro variable, character variable, filename statement, macro definition, macro quoting function 9
5 %PUSHTITLE and %POPTITLE An Easy Way to Manage Title and Footnote Changes in SAS Paul D. McDonald This is a quick tip to help manage a large number of title and footnote changes for reporting output in the SAS Software System. It requires a basic knowledge of Base SAS Software. call execute, footnote statement 8
6 %YAMGAST: Yet Another Macro to Generate a Summary Table Zang Xiong,
St. Jude Children's
There are many published macros that generate a summary table for clinical study report. All of these macros require users to define both the type of descriptive statistics and the method of statistical test. However for a fixed sample size, when the type of descriptive statistics is chosen, there is usually a standard test for statistics comparison. For example, when we report the mean with standard deviation of a continuous variable, we use two-sample t-test or ANOV A to test whether the variable is distributed differently in the groups of interest. If the sample size is small, an exact test might be more appropriate. This paper introduces a user friendly macro, which can automatically choose an appropriate test based on the type of descriptive statistics and sample size. It produces a highly customized and ready-to-publish table in RTF format sample, sample size, interval variable, proc means, exact test, csr, %if-%then-%else, proc sql, standard deviation, clinical trial, proc freq, proc step, macro loop, anova 10
7 A Hands-on Tour Inside the World of PROC SQL Kirk Paul Lafler Structured Query Language (PROC SQL) is a database language found in the base -SAS software. It enables access to data stored in SAS data sets or tables using a powerful assortment of statements, clauses, options, functions, and other language features. This hands -on workshop presents core concepts of this powerful language as well as its many applications, an d is intended for SAS users who desire an overview of the capabilities of this exciting procedure. Attendees will explore the construction of SQL queries, ordering and grouping data, the application of case logic for data reclassification, the creation and use of views, and the construction of simple inner and outer joins proc sql, where statement, proc step, select, order by, inner join, index, data merging, view, right join, sas log, create view 18
8 A Quick Introduction to SAS/GRAPH or Twenty Three Quick Tricks with the GPLOT and GCHART Procedures Ben Cochran The power and flexibility of SAS/GRAPH software enables the user to produce high quality graphs, charts, and maps. With all this strength and flexibility, th e new user is sometimes overwhelmed and discouraged from using these powerful tools. However, learning how to use the tools of SAS/GRAPH can be a pleasant experience. This paper introduces several ways to generate graphical representations of your data. Starting with the importance of understanding their data, users are lead in a step by step process that ends with the generation of high quality plots and graphs. Let us begin. Step 1: Understanding Your Data. Is some data more appropriate for generating graphical reports than other data? What data is most appropriate for plots and graphs? The first data set to be examined is the SASUSER.RETAIL table. A quick look at the first ten rows reveals only 2 columns or variables: SALES, and DATE. The SALES variable has a descriptive label associated with it. Both variables are numeric proc gchart, proc step, bar chart, proc gplot 10
9 A Quick Introduction to the Powerful REPORT Procedure Ben Cochran When the REPORT Procedure was first introduced by SAS with the advent of Version 6, most of the SAS world was mainframe users. This new procedure brought with it a great deal of power and flexibility that added much strength to SAS' arsenal of report generating procedures. It had powerful formatting, summarizing, and analysis capabilities that made it easier to create anything from a simple listing to a very complex report. However, some critics have stated that, while it has awesome features, it looks like a mainframe report. That was true until SAS released the Output Delivery System (ODS) experimentally in Version 7, and in production mode in Version 8. If the REPORT procedure was a cake, then ODS delivers the icing to generate truly beautiful reports. This paper offers a quick overview of the types of reports that can be generated with PROC REPORT, and how to add some of the ODS features to deliver stunning reports proc report, proc step, output delivery system 12
10 A regulatory submission "DEFINE"d: The who, where, and what Robby A. Diseker,
Lindsay Dean
A statistical SAS programmer assigned to work on a regulatory submission may not be aware of the scope of work involved. This could be particularly true where there may be teams assigned to each particular task involved in preparing a submission where only a few leaders might grasp the overall scope of work. This paper covers three basic elements of the FDA's electronic submission format: 1) The Common Technical Document (eCTD), 2) the electronic case report tabulation (eCRT) and 3) the integrated study. The primary objective of this paper is to serve as an overview of where and what we are submitting, provide examples of the functionality of an eCRT and examples of subject profiles, as well as identifying key strategies for developing an integrated study including unifying structure and content, mapping datasets, variables, and formats, and unifying dictionary coding sas programmer, adverse events, macro variable, regulatory submission, dataset, excel 9
11 A SAS based solution for define.xml Monika Kawohl When submitting data to the FDA, a data definition file, describing the structur e and contents of the data, is a mandatory deliverable. For data submitted in the CDI SC SDTM format the define.xml as published by the CDISC define.xml team is the preferred type of a data definition file. Compared to define.pdf, the previous data definition file forma t, define.xml is more suitable for providing the different types of metadata required to adequately describe data in the SDTM format. An additional benefit of define.xml is its machine-readability. After Accovion successfully implem ented an automated process for defi ne.pdf in SAS, building a SAS based automation process for define.xml was the logical consequence. This paper illustrates the process chosen by Accovion to compile all the necessary me tadata and build a define.xml as described in the CDISC Case Report Tabulation Data De finition Specification (define.xml) V1.0 Standard [1] sample, excel, annotated crf, data dictionary, sas base, sdtm domain, controlled terminology, proc step, dictionary tables, cdisc 18
12 A SAS Macro for Single Imputation Shuping Zhang,
Jane X. Liao,
Xingshu Zhu
Single imputation is often used to replace the missing value of a variable in a dataset because this approach is both simple and efficient. Single imputation is particularly useful when working with an extensive dataset containing millions of records and a large number of variables. In this case, it would be highly impractical, or maybe even impossible, to use the multiple imputation method, performed by the procedure PROC MI [ref1], because of the overwhelmingly large number of datasets that would have to be created. In this paper, we introduce a simple SAS macro that allows the user to create a "complete" SAS dataset through single imputation by selecting different statistical methods and applying them to data on a given patient or to information from the entire dataset. KEY WORDS: Missing data, Mean, Multiple Imputation, data imputation methods, RANNOR imputation, missing value, multiple imputation, proc mi, proc step, sample, dataset, macro definition, data science 8
13 A Toolkit for CDISC Implementation Robert T. Stemplinger Implementation of the CDISC standards presents a number of challenges and issues, and is a time and resource intensive process. But many of those challenges are related to the mapping of legacy or existing data structures to the SDTM domains. Once the necessary domains, variable attributes, and associated controlled terminology have been properly specified, the actual programming of the structures is not radically different from the tasks most reasonably competent SAS programmers are currently performing. Furthermore, since the SDTM domains represent a true standard structure, that is, one where variables can not be added or deleted (other than permissible variables), or their attributes changed, there is much opportunity for associated code standardization. This paper will detail areas where such standardization is possible, for the creation of SDTM compliant structures as well as their verification, and show examples of code where actual implementation has occurred controlled terminology, sdtm domain, data step, cdisc 6
14 A Utility to Automate the TLG DEFINE for eCTD Submission Chip C Chhun According to the FDA guidance and the company s tandard the eCTD submission will include all programs used to create the analysis datasets and TLG in addition to SAS Transport files for the Analysis Datasets, Raw Datasets and their Data Definitions. The utility discussed in this poster will extract the information from TLGs such as table or listing numbers, titles and program names using SAS ODS to produce a TLG Define in spreadsheet as part of the eCTD. This utility uses PROC REPORT and ODS HTML to produce a file to be imported into EXCEL. It is developed with the X command, SAS procedure and SAS ODS in Unix proc report, proc step 8
15 Access to Relational Databases Using SAS Frederick E. Pratter SAS software currently provides many of the features of a database management system, including database views and an extended superset of ANSI SQL. However, it is often impractical or just plain impossible to convert desktop or organizational databases into SAS. Consequently, SAS software provides several procedures for access to relational databases. This paper will review how to use the various SAS/ACCESS products for linking networked workstations to remote servers. Most of the examples will use the SAS/ACCESS for Oracle, but the principles described apply equally to local databases in Microsoft Access, as well as other client/server systems such as DB2 and MySQL proc sql, proc step, libname statement, sql pass-through, dataset, sample 10
16 Adding Control to Your Data Using SAS System and Dataset Options David W. Franklin Controlling access to your data and keeping track of any changes to it is becoming an increasingly important task. A lot is at risk when data becomes compromised, and depending on the event, regulators may become involved. This paper looks at a way that SAS provides of controlling who has access to the datasets for modification, and also looks at two alternatives for tracking changes, first through an audit trail and second using SAS dataset "versioning" audit trail, dataset, proc contents, proc compare, proc step, proc sql 6
17 An Alternative Method of Transposing Multiple Variable for Report Generation Li Luo While the PROC TRANSPOSE procedure may be flexible enough to generate a variety of report formats. It may not be efficient when you have to deal with several variables and the desired output requires a single-record per by statement to fit a specific format for summary report. PROC TRANSPOSE usually requires transposition by one row or by column. If we have multiple variables in VAR statements, the result will be one record per variable in the output dataset. This paper discusses the use of Do-Loop and arrays to transpose multiple variable data into single-record per by statement proc step, proc transpose, by group processing 7
18 An Animated Guide: Comparing Files without Proc Compare Alejandro Jaramillo,
Russell M. Lavery
This paper provides an easy to understand SAS -based programmed method for comparing files and has several advantages over PROC COMPARE when the files are expected to be different. This method produces a small volume of output and allows easy creation of reports to summarize and analyze the differences. This automated analysis of differences helps resolve differences. It should be noted that PROC COMPARE is excellent if differences are small. This paper discusses comparing files in the context of a system migration, or a change of vendors, where many (hundreds) files from an old vendor/system must be compared to fi les from a new vendor/system. If the programmer is asked to compare hundreds of files - and there are issues with the new files- the programming problem becomes embedded in a management problem. Some effort must be spent tracking: file checked, files pass ed/rejected, status of rework of rejected files, communicating results and managing the timeline of the project proc step, proc compare, proc means, proc freq 10
19 An Animated Guide: How %Str and %NRStr Work Russell M. Lavery This paper builds on a NESUG 2002 paper that described the general functioning of the SAS Macro Processor.This paper explains details of two macro masking functions: %Str and %NRStr. Basic concepts for this paper are: 1)the map of the SAS Supervisor 2) Tokens flow/pASS through the parts of the system 3) parts of the map monitortokens as they pass through 4) the idea of SAS tokens as rule triggers for actions to be taken by parts of the map and5) macro masking prevents the triggering of rules by preventing their recognition. Figure 1 is a map of the SASsystem - the SAS Supervisor. It is suggested that this map is a very useful paradigm for understanding the SASsystem. Boxes on the above map are either subroutines or storage areas and tokens flow through the components ofthe supervisor as SAS processes programs.INTRODUCTIONThis paper builds on material from a NESUG presentation titled "An Animated Guide: The Map of the SAS MacroFacility" symbol table, macro catalog, macro quoting function, macro variable, %if-%then-%else, macro trigger, proc step, &variable, macro definition, macro facility, proc print, macro loop, sas base, macro function, macro call, if-then-else, txt 18
20 An Animated Guide: Speed Merges with Key Merging and the _IORC_ Variable Russell M. Lavery The key mege (A.K.A. _IORC_ merge) is an efficiency technique. It is a method of merging two files without having toperform a slow, and disk-space-consuming, pre-sorting of the files. Because this merge does not require pre-sortingof the files to be merged, it can be faster and uses less disk space than a by merge.The _IORC_ merge is considered one of the "Table Lookup Techniques" and as such is a competitive technique for"by merges", formats, if-else if blocks, key-indexing, bitmapping, hashing and SQL joins. It is a useful technique forSAS programmers because it is fairly fast (faster than a "by merge") and easy to understand. Additionally, _IORC_merging is part of the material in the SAS certification exam.This paper accompanies an animated presentation at NESUG and can not duplicate the animated effect. It willoutline the features of the _IORC_, as were presented set statement, lookup, data step, key=, dataset 9
21 An Animated Guide: Using the Put and INput functions Yanmei Lu,
Russell M. Lavery
input statement, char., numeric variable, put statement, character variable, proc step 19
22 An Annotated Guide: Using Proc Tabulate And Proc Summary to Validate SAS Code Yanmei Lu,
Russell M. Lavery
This paper discusses how PROC TABULATE and PROC SUMMARY can be used to help a programmer avoid errors. Thispaper might be especially useful for new programmers.A programmer should know were "every observation goes". Additionally, Good Programming Practice requires that aprogrammer "exercise" (check in some way) every combination of the clauses in every IF statement to see howobservations are classified by the IF. PROC TABULATE is an excellent, fast and simple tool for doing that checking.Importantly, PROC TABULATE produces a pattern, in its output, that makes checking fast. Additionally, using ProcTabulate allows a programmer to account for every observation in the data set, a "comforting" fact.Many programming tasks require taking subsets of the data, based on logical rules. Programmers are often told tocheck the number of observations in the starting data set and not to lose, or create, observations without knowingwhy. With PROC SUMMARY we can also suggest that a programmer also check the sums of important variables (Dollars, Scripts, units sold) in the source data set and never change the sum without knowing why. proc step, proc tabulate, if-then-else, proc means, missing value, excel, proc freq 13
23 An Application of the SAS Hash Object John Henry King This paper describes an application of the SAS hash object that captures and writes to a data set the values of SAS automatic variables and other variables created with statement options that are not normally output. While this is an academic exercise it illustrates some useful hash techniques including dynamic declaration of hash object data elements using CALL VNEXT hash table, pdv, data step, automatic variable 3
24 An Automatic Process to Compare Files Simon Lin Comparing different versions of output files is often performed in the validation stage of work. When the number of output files is minimal, the simplest way to compare different versions is to manually open each file and check it visually. When files to be compared are in a standard format, a more systematic approach is to use SAS. In certain applications, thousands of output files may be generated for one project. Because it is tedious to enter thousands of file names in the SAS code to accomplish a comparison, there is a need to automate the process so all file names for specified folders are read automatically via SAS. This paper presents how the X command features in SAS compares multiple folders without the need to specify individual file names, and the files compared can be word documents, SAS programs, output logs, text files, and datasets. In addition, decisions comparing a specific pair of files are made automatically based on defined file attributes txt, proc step, dataset, options statement, proc compare, proc report, macro parameter 6
25 An Identification of Diagnostic and Procedure Codes Related to Death and Malnutrition, but not Length of Stay or Total Charges Salina Burns The purpose of this paper is to evaluat e the causes of death as related to malnutrition of men and women between the ages of 64-88 and to analyze them wi th regards to length of stay and to tal charges. The data evaluated were obtained from The National Inpatient Sample and reviewed with special c onsideration of diagnostic and procedure codes. The results of this study were calculated by comparing logistic regressions with respect to mortality and linear regressions of total charges and lengt h of stay with respect to morta lity, gender, payer, race, median household income for patient's zip code, and diagnostic and procedure codes. We were able to determine that diagnostic code 272.4 - Hyperlipidemia, is associated with mortality, but not total charges or length of stay regression analysis, proc reg, logistic regression, logistic distribution 15
26 Animated Guide: Explaining SQL to Beginners - A SQL process flowchart, and rules, makes SQL easy Russell M. Lavery This paper shows a flowchart of PROC SQL internals that makes PROC SQL easier to learn. Knowing the flowchart allows creation of simple rules that can be used to explain how to code PROC SQL queries. Without the flowchart, PROC SQL is a black box. Teaching "black box" PROC SQL has usually been a process of showing examples until the student can say, "I know what will happen when I code like this, because I've done this query before". Mastery only happens as students recognize situations encountered. This paper says "here is the PROC SQL process and here are rules for its behavior". The "process and rule" based learning is faster and a more precise learning method. The major deliverable of this paper is that it offers a graphical representation of the SQL process and some rules for describing/predicting the SQL process. The internal process described below is not in any documentation and likely will remain so. While this process has been judged to be a close approximation of the current PROC SQL process by knowledgeable SAS employees, it is not guaranteed to be carried into future versions of PROC SQL. proc sql, proc means, where statement, proc step, having, pdv, group by, class variable 19
27 Annotate facilitates data-driven graphs Meera G. Kumar,
Jeffrey Cortez
This paper gives an example of how we used the annotate dataset in SAS/GRAPH to make the plot symbol vary in size in proportion to the sample size of our clinical data sample, relative risk, sample size, in= 5
28 Approximate Simultaneous Nonparametric Confidence Intervals for All Pair-Wise Comparisons and Comparisons with a Designated (Control) Group in a One-Way Layout Using the SAS System Paul Juneau,
Aditya Sikka,
Jiawei Qiao,
Michelle Gayari
The SAS System (Version 9) presents users with the ability to perform standard parametric multiple comparisons for a one-way layout with PROC GLM and PROC MIXED using the means and lsmeans statements, respectively. Options in these statements exist to construct simultaneous confidence intervals for all pair-wise comparisons or all pair-wise comparisons with a designated (control) group and may be used under circumstances where the measurement error is approximately Gaussian (normal). It is quite common in the early phases of medical research for investigators to have limited knowledge regarding the distributional properties of their measurements (Juneau, 2007). Moreover, in later phases of clinical research, previous experience with important efficacy measurements suggests that the distributional nature of the errors associated with some of them is non-Gaussian confidence interval, proc step, proc glm, sample, sample size, proc genmod, box plot, treatment effect, confidence level, anova, keyword parameter, %macro parameters, normal distribution, data cleaning, histogram 19
29 Automate Compiling Clinical Appendix Tables and Listings into a Review Package with a Hyper-Linked Table of Contents Xiangchen (Bob) Cui,
Wei Zhang
Compilation of a large number of tables and listings in clinical studies from SAS outputs into a user-friendly review package with a hyper-linked table of contents (TOC) is a labor-intensive process in clinical study reporting. A complete TOC is not only a key for publication purpose, but also serve as a key element to both medical and statistical review at every stage of a clinical trial. This paper introduces a SAS macro and Microsoft VBA macros that are executed under SAS environment to automatically generate such a review package with a hyper-linked TOC. Specifically in our case, each of TOC entries contains leading dots before a given page number for a clinical report. This format also applies to a table of all footnotes and titles as separate files macro definition, safety population, system organ class, dataset, conditional do loop, clinical trial, sas output 20
30 Automated Drug Safety Signal Detection with Guided Analysis Eric C. Brinsfield,
David Olaleye
Issues associated with drug safety continue to make headlines in the media. Combining SAS advanced analytics with new Data Integration and Business Intelligence capabilities yields an efficient way to detect drug safety signals and investigate their cause. The resulting software solution includes: data import from drug safety systems metadata management updates of drug safety data marts execution of industry-standard and new signal detection algorithms ranked lists of possible safety signals drill-down to supporting information and patient detail During the presentation, Eric and David will discuss a case study using veterinary drug data. They will highlight the architecture, user interfaces, and analytical methods and review them with respect to success and applicability adverse events, business intelligence, clinical trial 5
31 Automated SAS Macro for Adverse Event Logistic Regression Analysis Suhas R. Sanjee Logistic regression analysis can be used to determine whether demographic or other factors are associated with the occurrence of adverse events (AE) in clinical trials. In this paper, we begin by introduc ing the SAS procedures GENMOD and LOGISTIC for performing logistic regression analyses. We then present a SAS macro which generates multivariate and univariate models dynamically for adverse events satisfying prespecified conditions. In these models, the outcome vari able is defined as wh ether the subject had an AE of interest, and the covariates includ e age, sex, race, and weight. Both univariate and multivariate models were fit for each AE under consideration. Scenarios are presented if an AE did not occur in the refere nce category for a categorical covariate. If any given AE did not occur in the reference category for a given cat egorical covariate, the univariate model was not run for that covariate and the multivariate model did not include that covariate logistic regression, adverse events, logistic distribution, regression analysis, odds ratio, sample, proc genmod, proc step, likelihood function, degrees of freedom, nominal variable, multivariate analysis, proc logistic, adam dataset, interval variable, predictor variable, response variable, univariate analysis, out=, maximum likelihood estimation, cdisc 8
32 Automatic Creation of a Makefile for Clinical Trial Vikas Gaddu From a programming perspective, there are many datasets, summary tables, listings and graphs to produce in order to prove the safety and efficacy of a drug in a clinical st udy. We know that as the st udy progresses, the number of programs in the study increases proporti onally. Within a clinical study, after a dataset program is updated, we then need to re-run that dataset program and all of the associated table, listing and graph (TLG) programs that depend on this particular dataset. In this way, we will update all of the TLG reports affected by the dataset changes. When done manually this process can be time consuming and error prone, but we can automate the process by using a Makefile. To create a Makefile one has to follow strict syntax, which the make utility on UNIX can understand. This rigid syntax causes mistakes to become very hard to debug. Thus, one has to be very careful while creating and editing a Makefile adam dataset, clinical trial, create table, input statement, proc sql, group by, proc step 8
33 Automating the process of choosing among highly correlated covariates for multivariable logistic regression Michael C. Doherty,
Xiaochun Zhang
In observational studies, there can be significant differences between the characteristics of a treatment and a control group. To reduce the potential for confounding, controls are matched to members of the treatment group using propensity scores estimated by multivariable logistic regression analyses. Propensity score modeling can involve the inclusion of hundreds of covariates including patient diagnoses, medical procedures, and medication exposures, highly correlated variables can complicate the multivariable logistic regression. This paper describes a statistical method to remove the variables automatically, with little input from the programmer. By utilizing the R statistic output from PROC CORR, followed by a MACRO to select which variables to keep and which ones to remove from the model, the programmer can save time in selecting the covariates to be used in the model statement in PROC REG logistic regression, propensity score, proc step, regression analysis, propensity modeling, logistic distribution 8
34 Avoiding the "Ooh Nasty" David W. Franklin Typically, when you build a small garden shed you should first do some planning, then do construction, and finally look it over and check what you have done and that it is going to do as intended. A similar process is used for writing programs - we should first do some planning, construct the program, and check it over to see that it producing what was asked. This paper takes a brief and lighthearted look at each of these stages, providing a few tips for avoiding some of the many pitfalls and gives a few pieces of SAS code that are useful in the development of your program, hopefully avoiding having to say that dreaded phrase, "Ooh Nasty" proc step, adverse events 9
35 Bayesian Data Analysis Using %WinBUGS Lei Zhang WinBUGS is a powerful statistical tool for Bayesian analysis using Markov chain Monte Carlo (McMC) methods. It has been used to construct and analyze a wide variety of Bayesian m odels in many application areas; however, it has very limited capabilities for data manipulation, graph customization, and co mparison with other st atistical methods. Th e SAS System is a dominant statistical platform with rich fu nctions for data management, graph generation, and analyt ical statistical solutions. Therefore, making WinBUGS work with SAS will create much -wanted synergy. This paper introduces a macro called %WinBUGS that gives you the edge to perform a Bayesian analysis using WinBUGS from within the SAS System. With %WinBUGS, you can convert SAS datasets into WinBUGS data files, invoke WinBUGS to pe rform the intended Bayesian analysis, and then get back results into SAS for further analys es and reporting dataset, sample, bayesian statistics, macro variable, posterior probability, density plot, acf plot, sas log, regression analysis, variable, missing value, normal distribution, error message, data step, prior probability, proc means, predictor variable, markov chain, weibull distribution, correlation, proc mixed, proc step, sas output 18
36 Benefits of Using Bridging Metadata Doug Janssen As working on analyzing clinic trail data for pharmaceutical companies, we first collect subjects' information through either electronic forms or paper forms. However, both are raw data and cannot be used for analysis purposes. Therefore, we need to build up analysis data based on the information we collected. While creating data we need to define the formats for each variable such as variable name, label, type, and length. You can input those formats in the program as part of DATA STEP. You also can input formats in EXCEL spreadsheet as a dataset. Whereas the later is easy for user to input, check, and modify if necessary. This paper provides an idea about how to generate analysis data through Bridging Metadata, which connects Source data (such as data location and variable name) and Target data (such as data location, variable name, label, variable type, variable length, and formats) raw data, response variable, macro variable, macro loop 4
37 Building OLAP Cubes with SAS 9: A Hands on Workshop Gregory S. Barnes Nelson On-Line Analytical Processing (or OLAP) has long been part of the data storage and exploitation strategy for the SAS professional. From the early days of MDDBs to the current-day equivalent of OLAP Cubes (part of the SAS 9 OLAP Server), these data structures provide a means for us to store our data, which allow us to slice and dice and drill through and around our data. In a previous hands-on workshop (Nelson, 2006), we demonstrated how to use Data Integration Studio to load a sample star-schema and a similar workshop on the planning and design of the data warehouse (Nelson, 2007). In this workshop, we will focus on what it takes to build a cube using a design time tool such as OLAP Cube Studio. Here, we will seek to understand our input data, data aggregations, summary options and how we create jobs to populate that structure. In addition, we will explore the concept of OLAP metadata and review how we create, register and manage that metadata. Finally, we will discuss best practices for refreshing data, promotion of changes in a production environment and setting permissions on cubes to ensure that your data is secure. libname statement, slowly changing dimension 27
38 Building the Better Macro: Best Practices for the Design of Reliable, Effective Tools Frank C. DiIorio The SAS macro language has power and flexibility. When badly implemented, however, it demonstrates a chaos- inducing capacity unrivalled by other components of the SAS System. It can generate or supplement code for practically any type of SAS application, and is an essential part of the serious programmer's tool box. Collections of macro applications and utilities can prove invaluable to an organization wanting to routinize work flow and quickly react to new programming challenges. But the language's flexibility is also one of its implementation hazards. The syntax, while sometimes rather baroque, is reasonably straightforward and imposes relatively few spacing, documentation, and similar requirements on the programmer. In the absence of many rules imposed by the language, the result is often awkward and ineffective coding. Some amount of self-imposed structure must be used during the program design process, particularly when writing systems of interconnected applications macro variable, macro facility, macro definition, macro loop, macro put, data cleaning, automatic macro variable, keyword parameter, %macro parameters, sas log, error message, sysrc, %if-%then-%else, symbol table, macro function, autocall macro, macro parameter, options statement, proc step, dictionary tables 16
39 Calculating Medication Compliance, Adherence, and Persistence in Administrative Pharmacy Claims Databases R. Scott Leslie Compliance, adherence, and persistence are outcomes easily measured in pharmacy claims databases. However, these measures are often interchanged and calculated differently. The research community should settle on a common set of definitions and methods. This paper briefly explains compliance and persistence terminology and methods commonly used in observational pharmacy claims research and furthermore presents a preferred manner adopted by the Medication Compliance and Persistence Special Interest Group of ISPOR, the International Society for Pharmacoeconomics and Outcomes Research do loop, binary variable, proc step, proc sql 8
40 CALL EXECUTE: A Hidden Treasure and Powerful Function Rajkumar Sharma CALL EXECUTE is a very useful DATA st ep function which helps you stack up many SAS statements and run them together. It interacts with SAS Macro facility for immediate macro execution during the execution of DATA STEP. CALL EXECUTE can be used for many tasks that would otherwise need many lines of code, it thus helps to create very compact and efficient SAS Codes. This paper will expl ain details about CALL EXCUTE function and how to use it with examples. It also expl ains difference between st andard macro call and call made by CALL EXECUTE call execute, macro facility, macro variable, proc step, call symput, data step, macro call 6
41 Case Report Form Auto-Annotation in PDF Files with a Metadata Database and SAS ODS XML Tagsets in a Data Management Unit David M. Escobar,
Ann Fowler,
Barbara Mathewson
Case report forms (CRF) are essential tools in clinical research, used to gather data during the course of a clinical study. A common and useful task of data management personnel is to annotate the CRFs with appropriate variable names from the study data dictionary. Various authors have written on the topic of using SAS to automate the annotation of CRFs, but with different approaches. Spruck and Kawohl propose a method creating a Forms Data Format (FDF) file, which is then uploaded into Adobe Acrobat1. Cavaliere and Yeh illustrate a SAS macro to annotate CRFs and create a CRF library (using HTML code) allowing form re-use2. We utilize a metadata database, as proposed by DiIorio and Abolafia3, and XML TAGSETS to create an XML Forms Data Format (XFDF) file for use with Adobe Acrobat Standard 7.0 proc step, macro call, proc template, clinical research, clinical trial, macro variable, proc sql, macro definition 5
42 Case Study: Analysis and Metrics of End-to-End Legacy Data Conversions into SDTM, ADaM, and Define.xml Robert T. Stemplinger Implementation of the CDISC standards for legacy data conversion presents many difficulties and challenges, and is a time and resource intensive process. Legacy data conversions offer a myriad of issues; incomplete or inconsistent data across studies, varying data structures, inconsistent application of coding dictionaries and/or terminology, all exacerbated by closed sites that offer no opportunity for querying for clarification. This paper will present, analyze, and discuss the implementation process for three projects consisting of 19 studies, reporting metrics from each project and trends that developed as learnings from one project were carried to the next sdtm domain, data transformation, data cleaning, controlled terminology, cdisc 5
43 Centralizing Data Manipulation in SAS and Eliminating Hundreds of Excel Formulas and VBA Programs: a Streamlined Reporting Approach Amos Shu,
Jim Fang,
Reddy Ayyalapu,
Patrick Dunleavy
Sanofi-aventis currently receives syndicated data from multiple third party vendors. Information Services (IS) integrates data from these vendors with internal data and then generates periodic (weekly and Monthly) reports. Business users (Market Research, Brand Managers, Sales VP's and Executives) prefer receiving these reports in a customized/pre-defined EXCEL and PowerPoint format so that they can spend their energy to focus on data interpretation rather than on reports generation. They also prefer receiving data used for generating these reports in EXCEL. The team that originally built this application separated the whole reporting process into two parts: data manipulation in SAS and data calculation in EXCEL worksheets in order to meet the end-user's requirements. Once the data integration is completed in SAS, SAS datasets are transferred into hundreds of EXCEL worksheets which has hundreds of formulas/functions, defined names, and complex VBA code. This approach has many challenges/issues in data accuracy, reporting performance, flexibility, scalability, maintenance, and managing production runs. It is very difficult to debug and resolve issues. This paper presents a scalable, flexible, stable, time/space saving, and streamlined approach to automate repetitive reporting activities, simplify process, and significantly improve reporting quality and performance. This reverse engineering process centralizes all data manipulation in SAS by utilizing structured SAS modules and SAS macros while eliminating all EXCEL functions/formulas and majority of VBA code. It also makes it easy to support this new process. Finally pros and cons are compared between old and new solutions. excel, dataset 5
44 CHECKERS, We are Keeping the Table Joseph J. Hantsch The CHECKERS macro is a validated SAS macro for improving the practice of verifying clinical trial tables and listings. CHECKERS reads in unmodified RTF files, received from in-house statistical programmers or CROs and compares their content to a user-created dataset from the raw datasets. This parallel analysis either confirms or denies the validity of the original table's programming. CHECKERS does this complex task in a staged fashion. That is, the instantiation of macro parameters can be accomplished a few at a time. The staging is controlled by a single parameter. Initial, exploratory work progresses stepwise; follow-up work (or subsequent runs on subsequent versions of the table) can be executed swiftly. To facilitate rapid reruns of all tables reporting on a clinical trial, multiple calls to CHECKERS, set to pass/fail mode, can be placed in a script. There are three advantages to using CHECKERS: greater productivity, greater accuracy and greater efficiency data cleaning, clinical trial, statistical programmer 7
45 Clinical Programming at a Crossroads: Meeting Today's Challenges and Preparing for Tomorrow David J. Polus Consulting in the Clinical Programming world is more competitive than ever. The demand for a good programmer with clinical knowledge is always increasing. At times, it seems the ideal candidate for a position doesn't exist anywhere. What makes clinical programming so different, anyway? This paper will review how to recruit, identify and hire the best candidates for the position. Once they're in the fold, mentoring and training become the keys to long term retention. Personal growth and a sense of belonging ensure a happy consultant, and a happier client. Finally, there are times when you have to perform damage control with a particular consultant. A well designed and executed Action Plan can help strengthen your relationship with both the client and the consultant clinical programming, sas base 4
46 Clinical-Data Acceptance Testing Procedure Sunil Kumar Gupta In the pharmaceutical industry, there is a regulatory responsibility, 21 CFR Part 11, to analyze only the clinical data that has passed data acceptance testing or is considered 'clean data' after a database lock. Clinical data acceptance testing procedure involves confirming the validity of critical data variables. These critical data variables might need to be non-missing, consist only of valid values, be within a range, or be consistent with other variables. If incorrect clinical data is analyzed, then invalid study conclusions can be drawn about the drug's safety and efficacy. In 2001, the Data Warehousing Institute conducted a survey of over 600 business professionals. Across all industries, the survey results estimate that data quality problems cost U.S. corporations more than $ 600 billion per year data validation rules, clinical data, macro call, data cleaning, clinical trial, crf, adverse events, raw data, proc step, macro parameter, statistical programmer, proc freq, database lock, proc compare, where statement, macro definition 15
47 Cost-Effective Solution to Automating the Creation of CDISC define.xml: Using SAS Data _Null_ with Relational Data Model via SAS/AF Application Annie S. Guo CDISC define.xml is the Data Definition Document in XML format required for FDA electronic regulatory submission. It provides a description of the SAS data sets and the variables of each data set included in the submission. While most of the information in the document can be extracted from SAS Dictionary views, creating such a XML file may not be a typical task for a SAS programmer, and keeping it up to date with the constant changes to the study database is time consuming. This paper presents a SAS/AF application that streamlines the data flow from the study database to define.xml. The backbone of the application is a relational data model with integrity constraints complying with the define.xml schema. The application serves as a user interface, enforces the data integrity constraints at the application level, and incorporates an external SAS program that consolidates the data in the relational database, and generates define.xml with DATA _NULL_ step and PUT statements foreign key, key, constraint, macro variable, data standard, put statement, regulatory submission, structured data, sas programmer, annotated crf, controlled terminology, format statement, cdisc 12
48 Create Flowcharts Using Annotate Facility Priya Lakshmi Saradha,
Gurubaran Veeravel
With mounting significance to the graphical presentation of data in different forms in the pharmaceutical industry, as well as in other industries, the need to create non-traditional graphs (flowcharts, super-imposing different types of gra phs, et c.,) h as increased i n recent times. This paper will lay a strong fo undation for the creation of flowcharts with the help of the ANNOTATE facility by discussing the newly developed macro, FLOWAN. FLOWAN can create a highly-cu stomized flowchart with multiple levels usi ng ANNOTATE macros and functions. Using a dataset as input, FLOWAN can represent various populations in a study or any other type of data in the form of a flowchart. This macro uses very few p arameters like, t he number of tiers (levels), the n umber of boxe s in each level, the vari ables to display and the li nk or predecessor for ea ch of the boxes. The output from thi s macro will present the data in an in novative way in=, bar chart, line chart, disposition table, adverse events 6
49 Creating and Maintaining large Metadata EXCEL files John H. Adams,
Boehringer Ingelheim
Many large SAS applications in the pharmaceutical industry use metadata to control their internal processes. In order to provide a manageable user interface to this metadata, many applications resort to using EXCEL spreadsheets. There is a large community of EXCEL capable users, so generally users of the applications are able edit or modify the metadata with little difficulty. There are a number of different Methods to programmatically read the data from spreadsheets and in turn write to them - if needed. There is DDE, ODB , ODS, PROC ACCESS, PROC IMPORT, PROC Exports, just to name a few. However, they all have one common problem, the number of columns in EXCEL is limited to 256 ! If you exceed this maximum you have to find your own solution. One solution might be to use multiple sheets within a workbook. However, in SAS 8.x you can read, but not write to individual sheets within a workbook excel, proc step, dataset, macro variable, proc import, %if-%then-%else 11
50 Creating Complex Reports Cynthia L. Zender Are you confused about whether you need a detail report or a summary report? Do you wonder whether you are using the right reporting procedure for your report? Have you ever spent a lot of time going down the road with one procedure, only to discover that you need to switch to a different procedure to get what you want or closer to what you want? This paper is for intermediate SAS programmers who want to see a gallery of complex reports and review the code that produced them. It covers the pros and cons of PROC REPORT, PROC TABULATE, and DATA _NULL_ for each report. All report output is produced using ODS (rather than LISTING) output. Get out your wrenches and tool belts and fasten your seat belt for the ride, this is going to be a real nuts and bolts paper presentation proc step, proc report, proc tabulate, proc print, proc sql, excel 18
51 Creating Graphs with Your Choice of Axes Using Annotate Abraham Pulavarti In Clinical Research, Programmers and Statisticians often have to produce a variety of graphs and in many instances the standard output from the SAS/GRAPH procedures must be altered and customized to suit individual requirements. One such requirement is to re -label and customize the axes. By default SAS/GRAPH procedures uniformly distribute or equally space the values on the axes. This built -in functionality need s to be change d in situations where the axes are to be drawn to scale , where, for example, the visits in a clinical trial are not conducted at equal intervals. This paper discusses in detail the different ways to overcome this problem of customizing the axes to individual needs and also presents simple solutions to modify the labels on the axes. This paper will show the graphic options available to address the issue and also put forth an efficient solution using th e Annotate Facility proc gplot, proc step 12
52 Creating Special Symbols in SAS Graph Wei Zhou This paper will present several techniques to embed special characters and special symbols into SAS graphs. The special symbols can be Greek letters, mathematical symbols, subscription, superscription, underline and custom-designed symbols. The symbols can be created in the titles, footnotes, axis labels or on the graph area of a SAS graph. This presentation is prepared for an intermediate and advanced audience. Key Words: Special Symbol, Special Character, SAS/GRAPH, NOTE-MOVE, Subscription, Superscription, Underline, Customized Font sas output, proc step 6
53 Detecting Incorrect P-values John Morrill There may be hundreds of p-values among the tables that support a clinical study report. This paper demonstrates how to quickly sift through these hundreds of p-values to detect suspect values. By viewing the distribution of p- values, questionable p-values can be checked out and corrective steps can be taken, if necessary. This method is expected to detect p-values inadvertently produced using models without properly changing macro parameters but can detect problems created in other ways as well. It does not find all p-value errors. For this method to work, it is necessary to have a large number of p-values such as might be found in various adverse event or efficacy tables. While this method is appropriate for quality control reviewers and regulatory agency reviewers, it should first be used by the programming team producing the report. The code, an adaptation of previously published consistency check code, is simple enough for an intermediate level programmer to use and is provided proc freq, quality control, outlier 5
54 Display gene network using Data Step Graphics Interface (DSGI) Wenjie Song,
Ke Yang
correlation, proc iml, network data 7
55 Do Which? Loop, Until or While? A Review Of Data Step And Macro Algorithms Ronald J. Fehd This paper reviews the three looping constructs: loop-repeat, do until and do while and offers examples of their use. The purpose of this paper is to provide both pseudo-code and examples so that programmers may understand the difference in logic and make an appropriate choice for their algorithm. The two DATA STEP loop processing verbs: continue (return to loop-top), and leave (exit) are illustrated. Macro examples using %goto are shown for continue and leave. The Whitlock subsetting loop - also known as the Do-Whitlock (DOW) loop - and double-DOW are illustrated. Audience intermediate users and macro programmers. Keywords do until, do while, Do-Whitlock, double DOW, DOW, until(last.by-var), loop, repeat, subset- ting, until, while, Whitlock do-loop, Information loop: loop . . . repeat using goto do until(. . . ) do while(. . . ) test in loop: if skip condition then . . . continue if exit condition then macro put, do loop, macro loop, macro variable, conditional do loop, macro definition, macro flow control, %if-%then-%else 9
56 Dynamically Create Variable Labels from Data Set Values Wei Xu Have you ever use the variable values from the firs t observation in a data set to create variable labe ls? This technique is often helpful when you are reading ext ernal files whose first record is meant to be varia ble names. If the values are not valid SAS variable names, you can use them as variable label s instead. This paper will describe a simple, straightforward way to create variable labels from data set values using %SYSFUNC and DATA STEP functions. The first example shows how to use the values from one data set to create labels for another. The example 2 is applyin g the macro %LABEL when reading from one flat file whose first record is meant to be variable names but they are invalid SAS variable names. Create labels from the first record instead label statement, macro variable, variable, macro definition 4
57 Effective Graphics Made Simple Using SAS/GRAPH SG Procedures Dan Heath There are many types of graphics displays that you might need to create on a daily basis. In SAS 9.2, SAS/ GRAPH introduced a family of new procedures that enable you to create graphs quickly and efficiently. With very little coding effort, you can create effective and attractive graphics that can be as simple as scatter plots and bar charts, or as complex as multi-page classification panels. The new statistical graphics (SG) family of procedures includes SGPLOT, SGPANEL, and SGSCATTER. The SGPLOT procedure creates single-celled graphs that can be constructed with a variety of plot and chart types. The SGPANEL procedure creates paneled graphs in which the paneling is driven by classification variables. The SGSCATTER procedure creates paneled scatter plots and matrices that have support for fitted lines, confidence bands, and computed ellipses. These three procedures are designed with a syntax that is powerful yet concise proc sgpanel, scatter plot, proc sgplot, by group processing, box plot, proc step, regression analysis, bar chart 18
58 Embrace Your Inner Programmer: An Overview of the Critical Elements of Outstanding Programming Melissa R. Martinez The purpose of this paper is to describe the critical elements to be defined when developing a programming guideline. Best programming practices should be embraced to assure that programmers can develop, debug and maintain programs easily and efficiently, avoiding user confusion and wasted time deciphering code. This paper will be useful to SAS users of all skill levels developing, particularly beginning users. The described programming practices can be applied not only to all SAS versions, but also to all programming languages. Concise, clear and consistent programs utilize thorough comments that explain the objectives and methods of the code, conclude all DATA steps, procedures, loops and conditional statements with proper END, RUN or QUIT statements and consistently use indents and a letter case style macro variable, run, macro definition, macro facility, call symput 6
59 Empowering SAS Programmers to Meet Deadlines Carey G. Smoak How does a manager empower SAS programmers to meet deadlines in a fast-paced environment? Based on my experience as a SAS programmer and as manager of SAS programmers, I offer the following advice: (1) write clear programming specifications, (2) good communication between the SAS programmer and the study Biostatistician, (3) good communication between the SAS programmer and other personnel, and (4) require SAS programmers to attend team meetings. These suggestions lead to the SAS programmer being a part of a team and, thus, empowering them to meet deadlines sas programmer, clinical trial, data science 3
60 ETL and Data Quality: Which Comes First? Emilio J. Power,
Gregory S. Barnes Nelson
Usually, an early task in any data warehousing project is a detailed examination of the source systems, including an audit of data quality. Data quality issues could include inconsistent data representation, missing data and difficulty around understanding relationships between the various source systems. As ETL and Data Quality technologies converge, it's important to use the right tools at the right time to fully take advantage of the strength of each individual tool. Within SAS Data Integration Server, there are several opportunities to address data quality issues - this paper will go over the development of an ETL process with an emphasis on data quality. A course of action will be established with suggested roles of stakeholders that can have an input on the ETL process outside of the direct development team data cleaning, type i error, type ii error, raw data, proc step, proc sql 10
61 Experiences Submitting CDISC SDTM and Janus Compliant Datasets Carol Vaughn,
Gregory Ridge,
William Friggle
The primary resource for developing datasets compliant with the Clinical Data Interchange Standards Consortium (CDISC) Standard Data Tabulation Model (SDTM) is the CDISC SDTM Implementation Guide (SDTMIG). With the wide range of strict rules, a sponsor has much work to ensure complete compliance. However, mere compliance with the SDTMIG is not sufficient to ensure the data will be able to be loaded into the FDA's Janus data warehouse - the SDTM standards based clinical data repository which is the future destination of all submitted SDTM datasets. As part of the Janus loading process, an application within Janus runs "rule violation" checks on the datasets. Beyond straightforward checks for compliance with the SDTMIG, there are many other checks that will produce rule violations even with strict SDTMIG compliance controlled terminology, phase ii, sdtm domain, data cleaning, medical history, phase iii, cdisc 10
62 Exploitation of Metadata for Restructuring Datasets and Code Generation Bradford J. Danner Programmers often need to map data to an alternative structure to satisfy the specifications and requirements of their clients. Nearly half the effort devoted to data restructuring and mapping is spent ensuring that variables have necessary attributes (lengths, labels, formats) and structure (row order, column order). While it is important to maintain a desired structure, the time that is devoted to these tasks may be better spent insuring all data is included and that proper mapping from one form to another is preserved. A method is presented that uses SAS code to generate the necessary structure and attributes from client provided specifications using a few PROC SQL statements and macro processing. Accessing specifications directly, using the SELECT and INTO clauses from PROC SQL, will create macro variables that can be processed such that all attributes and structure composition statements are automatically created macro variable, proc sql, proc step, &variable, sas programmer, macro loop 6
63 Exploring the SAS Macro Function %SYSFUNC Lin Yan,
Helen Wang
The SAS macro function %SYSFUNC is very useful because it makes possible the use of SAS DATA STEP functions in the SAS macro environment. However, when the argument in the nested SAS DATA STEP function contains a macro variable or another macro such as %sysfunc(substr(&&AB&C,1)), it is hard to interpret the result without an understanding of the functionalities of %SYSFUNC and the interaction of %SYSFUNC with the nested SAS functions. Through a series of tests, th e authors explored the functionalities of %SYSFUNC and the working order of %SYSFUNC with the nested SAS DATA STEP functions. The macro variable in a DATA STEP function is resolved first, then the DATA STEP function starts to work on the resolved value of th e macro variable, and finally, %SYSFUNC resolves macros or macro variables in the output of DATA STEP function - but only once data step, macro variable, macro function, macro definition, sas function, sas log 5
64 EZTABLE Macros Daniel Huang "EZTABLE" is a collection of table macros that can be used for most t able programming in clinical studies. The macros are based on information summarized in tables and their table composition. "EZTABLE" includes seven individual macros, and each of them produces a certain statistical summary, including summary of continuous data, categorical data, the calculation of P-values and LSMEANS based on different testing models. It also has the capability to combine these individual summaries together and get the final table output quickly. The macro can support analysis for up to 3 by-group levels with the size of each analysis group and its totals generated as well. In addition, "EZTABLE" contains some special features to meet certain special requirements in clinical study reports (CSR). It creates a template and inserts "0" into the output for either a missing treatment group or a missing category for any categorical variable sample, system organ class, clinical trial, sas programmer, csr, safety population, macro variable, adverse events, out=, phase ii, create table, phase i, concomitant medications, proc step 12
65 Facilitate Statistical Analysis with Automatic Collapsing of Small Size Strata Sunil Kumar Gupta,
Linfeng Xu,
Thousand Oaks
Often in clinical studies, even after great efforts are made to ensure protocol specified sample sizes in each stratum, there are still some strata with small sample sizes in final analysis stage. One major reason for smaller sample sizes in strata could be the difficulty to recruiting patients. When conducting statistical analyses by using the STRATA statement, such as LIFETEST test, there is a need to collapse strata with small sample sizes in order to meet the requirement of statistical procedure assumptions or statistical power considerations. Thus, there is often need for collapsing strata with small sample sizes (usually less than 2). Specially, the method proposed in this paper is applicable when the strata variable is used in SAS STRATA statement of selected statistical procedures or when the strata and treatment variables are used as model independent variables. The strata variable could be strata in a stratified sample design, such as disease stage sample size, sample, proc freq, sensitivity analysis, data science, macro call, macro parameter, macro definition 12
66 Fast and Efficient Updates to Project Deliverables: The Unix/GNU Make Facility as a Cross-Platform Batch Controller for SAS Make Facility Concurrent development of interdependent parts is a common feature of complex programming projects. In clinical reporting, statistical summaries rely on derived datasets (which in turn rely on raw data), and are generated by programs often developed simultaneously with derivation programs. This concurrent development pushes components out of sync: programs must be re-run in sequence before updates to raw data and revisions to analysis datasets are reflected in statistical output. As projects grow in scope and complexity, the need to manage file dependencies increases. Lack of synchronization hampers validation and QC activities, imposes redundancy on the production of output, and threatens project timelines. The Unix 'Make' facility (and its cross-platform analogue, the GNU 'Make' facility) is a generalized 'build system' designed to manage dependencies in coding projects adam dataset, dataset, macro variable, raw data, proc step, data cleaning, proc sql 12
67 From Soup to Nuts: Practices in Data Management for Analytical Performance David R. Duling Many customers face the issue of working with SAS9 advanced analytics tools using data that comes from many different operational systems. The challenge presented to the customer is to extract, transform, and load the data into the analytical data structures with efficiency and scalability. This paper presents a case study describing practices to address the entire lifecycle of data access, aggregation, analysis, and deployment. A foundation discussion of how to interact with the Teradata database using SAS will be reviewed, followed by design and integration techniques available in SAS Data Integration Studio to deliver data structures appropriate for analytical purposes. Finally, a presentation of how to leverage the data using SAS Enterprise Miner will be presented, including a discussion of techniques for managing algorithms that require large memory storage or multiple passes of the data proc sql, data mining, proc step, missing value, where statement, put statement, create table, sas function, teradata, sample, feature selection, macro variable, model deployment, sysdate9, data wrangling, dataset, format statement 25
68 Generating a List of Macro Variables for Lab Data through a Simple Macro Call Huijuan Xu In the CDISC dataset (Domain) LB we have lab test code, lab test name, lab units, etc. A simple macro can be set up to generate a list of macro variables with lab test code as the macro name and the lab test name as the value of each of the macro variables, or lab unit as the value, etc. These macro variables will then be used in the tables, listings or graphs. In this paper, a macro LABTEST will be introduced for this purpose. Three parameters are required in this macro. Some sample data and sample call will be presented here macro variable, sample, cdisc 3
69 Getting the MAX Out of PROC MEANS R. Scott Leslie The MEANS procedure is most commonly used to generate and view descriptives of a data set. The procedure can also output these descriptive statistics to assist in later data manipulation steps. This paper shows how the OUTPUT statement and MAX option can create a subject level data set from a data set with multiple observations per subject. Additional steps include: introducing a macro to automate this code, using PROC FORMAT to avoid tedious hard coding, and using PROC TABULATE to display the information in a precise table. In this example, the code uses a pharmacy claims data set to calculate the percentage of members utilizing 64 different therapeutic classes of medications binary variable, proc step, proc tabulate, proc format, output delivery system, proc means 9
70 Hassle-Free Presentation Quality Tables for Epidemiology Research Claire Chiang,
Sue Su
Among many ways for creating tables to present health research results, there are two common methods: copying or pasting results from SAS into EXCEL or Word or linking the two applications. Each of these methods requires extensive validation work to ensure accuracy. SAS is equipped with features that produce accurate presentation-quality tables in a more time-efficient way. The purpose of this paper is to demonstrate some of the SAS v9 capabilities for creating presentation-quality tables proc step, confidence interval, proc report, data cleaning, proc format, excel 17
71 Identifying and Surfacing Data Changes for Effective Quality Management W. Stetson Line,
Scott A. Bahlavooni
Manual data review is an iterative, resource-intensive, and often inefficient process. This paper describes a new approach to highlighting new and modified data in clinical review listings, provides a technical implementation walkthrough, and presents a case study that illustrates how this approach has reduced costs and expedited one project's data review tasks. The presentation is based on SAS version 9.1 and is system agnostic. The technical material is suited to intermediate to advanced SAS programmers who are familiar with PROC REPORT / ODS PDF data review, proc report, proc step, clinical trial, libname statement, database lock, dataset 9
72 Innovative Techniques and Tools to Detect Data Quality Problems Hong Qi,
Allan Glaser
High quality data are essential for accurate and meaningful analysis and reporting, and it is widely accepted that high quality data directly leads to higher programming productivity and faster throughput. Historically, data have been examined for quality with PROC FREQ, PROC UNIVARIATE, and similar tools. Those approaches are very useful, but additional work is often warranted. This paper presents innovative - yet simple - approaches to check different aspects of data quality, including both structural and content issues. These tools can be implemented with a minimum of up-front development and programming time, and can be easily used proc step, numeric variable, missing value, sample, data cleaning, character variable, proc freq, proc univariate, macro parameter, sas output, proc contents, macro call, outlier 8
73 Issues Associated with BY Statement in PROC TRANSPOSE Louie Huang It is very common to specify two or more variables in the BY statement, when your SAS data set is necessary to restructure by PROC TRANSPOSE in clinical programming practice. The variables in the BY statement are defined as BY groups. The presence of missing or duplicate BY groups in the transporting SAS data set often results in lose of observations, and undesired data structure. This presentation will discuss the problems caused by the missing or duplicate BY groups by examples. Alternative approaches are provided to overcome the problems by group processing, proc transpose, proc step, sas log, error message 8
74 Join, Merge or Lookup? Expanding your toolkit Judy Loren,
Sandeep Gaudana
People who are learning SAS often ask: Is the DATA STEP or PROC SQL better? The answer depends on several factors. This paper will provide guidance to help new-to-intermediate users make an informed choice in merge/join situations. The syntax and the theory underlying 5 different techniques for bringing together data from 2 (or more) datasets will be covered. The techniques to be included are: sort and merge; SQL; user-defined formats; hash tables; and indexed lookup. The methods will be compared for suitability in a variety of specific merge scenarios, and benchmarks of resource use will be shown. A macro that can be used to develop similar benchmarks at any site on any data is included. This should be a handy resource for anyone who is often faced with new merge challenges proc sql, hash table, proc step, sample, sas programmer, data step, proc sort, set statement, cpu time, create table, user-defined format, date variable 16
75 Joint Repair: A Statistical Analysis of Patient Data Grant Johnson Objective. The purpose of this study is to analyze data taken from patients undergoing joint repair, such as kne e or hip replacement. Method. The data to be described in this paper were collec ted from the National Inpatient Sample. The data describe multiple variables associated with joint r epair patients, including age, race, and gender. R elative analyses were made by discarding entries containing missing or invalid variables for any particular variable un der observation. We summarize and analyze these data using statistic al methods such as frequency counts, summary statis tics, kernel density estimation, table analysis, logistic regression, and visual representations. Patient co ndition codes were compressed to assist in performing logistic re gression. Results. The gender gap between females and males is partic ularly pronounced. Kernel density estimation shows the similarity in distributions of length of stay a nd total charges regression analysis, logistic regression, proc reg, logistic distribution, sas enterprise guide, odds ratio, proc freq 20
76 Keeping your macro robust: Does your dataset exist, does your variable exist? Lara E.H. Guttadauro Your macro program was working great. Now you're missing datasets or variables. Ugh! What to do? This paper addresses both of these situations and presents code to check for missing datasets and variables and creates them if needed to help keep your macro robust 2
77 Labor-Saving SQL Constructs Brian P. Fairfield-Carter,
David W. Carr
Simplicity is one of the most difficult things to achieve. This statement may seem counter-intuitive, but consider that the fundamental purpose underlying the development and adoption of SAS language elements is really to reduce the number of program steps required to complete a task, or in other words, to simplify SAS code. Adopting new language elements and exploring new techniques takes work, but the reward can be code that is simpler and easier to understand, and which is therefore more transportable and maintainable. In general, 'simplified' SAS code minimizes · DATA, PROC, MERGE and transposition steps · Replication of WORK datasets · 'Macrotization' and fragmentation of tasks While PROC SQL can offer new approaches to common data manipulation problems, it is essentially a language unto itself, and for this reason its use is often resisted proc sql, adverse events, proc step, create table, group by, macro variable, dose, preferred term, temporary dataset, missing value, proc freq, cross join, left join, unique key, adverse event summary, proc univariate, record count, union all, macro loop 11
78 Line Feeds - How to detect them and get rid of them? Kalyani Kothapalli In the pharmaceutical industry, it is common to receive data in EXCEL format. We have to read the data and analyze using SAS. The first step in reading an EXCEL file is to save the file as a Comma Separated Values (CSV) file as we use DATA STEP to read the file in SAS. If you have a license to SAS/ACCESS or using PC SAS, there are other techniques you can use to read the data (Paper TT15, PharmaSUG 2004). This paper will show you how to detect problems created by having line feed (LF) characters in the raw file and how to get rid of line feed characters excel, sample 5
79 Managing Operational Challenges for Interim Analyses Mei Dey Interim analysis plays an important role in clinical trial studies. As a result of interim analysis, a study may be terminated early if results at the end of the trial are likely to be negative. More recently, interim analysis is seen as a powerful tool to help reduce cycle time and therefore 'time to market' by allowing key decisions to be made earlier regarding dose finding, sample size re-estimation, clinical benefit or safety and efficacy monitoring. Unlike analysis done after the official close of the study, interim analysis poses some unique challenges for programming. This paper will examine the roles of programmers and statisticians in interim analyses and how to manage operational and programming challenges so data analysis results can be generated in the most effective and efficient manner to achieve the goal of interim analyses interim analysis, data cleaning, data science 10
80 Managing The Change And Growth Of A Metadata-Based System Jeffrey M. Abolafia,
Frank C. DiIorio
Regulations governing the pharmaceutical industry require extensive metadata to support datasets and displays when submitting a New Drug Application (NDA) to the US Food and Drug Administration (FDA). The complexity of the submissions process increased markedly with the relatively recent introduction of standards from CDISC and other non-governmental organizations. In two previous papers we outlined the metadata architecture needed to support a large and complex project as well as how the metadata is used throughout the life cycle of a project. We also demonstrated how well-designed and easily-accessible metadata improves work flow, efficiency, and project management throughout the life cycle of a project. This paper builds on the previous two papers and discusses lessons we have learned as the scope, user base, and complexity of our metadata systems have increased excel, macro variable, adam dataset, stage 2, dataset, stage 3, proc tabulate, data cleaning, cdisc 11
81 Methods for Flexibly Controlling Combined and Customized Outputs Xiaoyu (Sean) Liu When we make reports, tables and listings by using SAS PROC REPORT, PROC TABULATE, DATA _NULL_ and other statistical procedures, etc., sometimes we need to combine them together. For instance, patient profiles consist of many modules, such as demography, adverse events, ECG, lab. results and vital signs, etc. We need to combine them and flexibly to control their outputs based on the different format requirements. Sometimes we want to insert modules with page break and sometimes without page break. The purposes of this paper are: (1) to present some general examples for combination; (2) to offer some methods and options for controlling combined outputs. The options include FORMDLIM='delimiting-character', STARTPAGE=YES/NO in ODS, and _PAGE_ in COMPUTE block, and so on. This presentation is based on SAS version 8.2 proc report, proc step, adverse events 4
82 Mission Possible: A Proposed SDTM Domain for the Medical Device and Diagnostic Industry Carey G. Smoak In May, 2006 a CDISC SDTM Device sub-team was formed. This sub-team has been working on a model to fill-in the gaps in SDTM for medical device and diagnostic companies. The focus has been on developing a domain that would contain information (metadata) about devices and not on results from devices. The sub-team has come up with a model that is currently being reviewed by industry experts. The proposed model is based on a custom Finding Observation Class domain. The advantage of this proposed model is that it is simple and extensible controlled terminology, sdtm domain, cdisc 2
83 Moving a Project Team Out of the Crisis and onto Problem Solving: An Approach to Facilitating Risk Analysis Sandy Paternotte One of the toughest leadership c hallenges is to be an effective stabilizing fo rce when we face a project crisis. The best-laid plans can go awry by unforeseen events causing effects such as timeline compression, resource deficit, and cost overruns. The team working on the st atistical analysis knows that, if the crisis is left unchecked, the project can suffer some degree of failure on its pr omise and the personnel involved can suffe r a significant loss in morale and confidence. Sometimes these situations can cause a great deal of internal team stress and sometimes this can become a factor in blinding the team to viable options to reduce the risk to failure. Furthermore, leaders often have a hard time articulating to Senior Management the magnit ude of the crisis and potential impact outcome, let alone suggesting solutions that might reduce the risk. W hen a project team faces such a crisis, this paper offers one possible tool a leader can use sas risk engine, data science 6
84 ODS Statistical Graphics 101 Wei Cheng Beginning with SAS9, a number of procedures join the Output Delivery System (ODS) family to create statistical graphics automatically. This new facility is referred to as ODS Statistical Graphics. The layout and appearance of ODS Statistical Graphics are controlled by ODS templates and styles. You can use the ODS Graphics Template Language (GTL) to generate statistical graphics of your own design; you can use PROC TEMPLATE to customize the statistical graphics generated by SAS procedures; you can use the "SG" family of procedures to create procedure-quality statistical plots. This paper describes how to use ODS Statistical Graphics to: create statistical graphs from SAS procedures; customize statistical graphs using ODS templates and ODS styles; create statistical graphs using ODS Graphics Template Language; create statistical graphs using SG procedures proc step, proc freq, scatter plot, bar chart, proc sgplot, output delivery system, histogram, ods graphics, survival function, regression analysis, data visualization, proc template, sas 9, proc reg, proc univariate 34
85 One-Step Change from Baseline Calculations Nancy Brucken Change from baseline is a common measure of safety and/or efficacy in clinical trials. The traditional way of calculating changes from baseline in a vertically-structured dataset requires multiple DATA steps, and thus several passes through the data. This paper demonstrates how change from baseline calculations can be performed with a single pass through the data, through use of the Dorfman-Whitlock DO- (DOW-) Loop change from baseline, set statement 5
86 Performance Evaluation of Clinical SAS Programmer Parag Shiralkar Despite highly efficient hiring practices a firm may have, it is important to monitor and evaluate the performance of SAS programmers. Periodic performance evaluation is necessary to minimize the cost associated with human resource turnover, and to ensure good quality and productivity in terms of programming output. Solid programming support is always a vital necessity for efficient clinical reporting process. Whether working in a service provider or large pharmaceutical company environment, performance evaluation can be an effective tool to measure customer satisfaction and to ensure effective utilization of programming resources. Primary objective of this paper is to recommend a method for in-depth performance evaluation of SAS programmers working in clinical reporting. Depending on time constraints of management, a SAS programmer's performance can be measured by combining elements of quantitative error rate based method and qualitative personalized feedback method clinical trial, service provider, resource allocation 6
87 Power Up SAS with XML Richard Foley,
Anthony L. Friebel
XML is becoming the largest method of transporting and storing data. This is because XML is flexible and open. However, inorder to work with XML you need to understand XML and how SAS uses and manipulates XML. In this paper you will learn XML structures, formats and best practices around manipulating XML data with SAS XMLMapper and the SAS XML LIBNAME engine libname engine, libname statement, web service, proc contents, structured data 8
88 Programming Tips and Examples for Your Toolkit, IV John Morrill This paper contains several generally unrelated ideas aimed toward the intermediate level pharmaceutical programmer. Believing that length of discussion does not correlate with usefulness, this paper examines: (1) Standardized MedDRA queries (SMQs), (2) a reminder on the proper use of parentheses and logical (or Boolean) operators such as NOT, (3) karyotype or cytogenetic processing, (4) processing and using ALL dates among all SAS data sets in a directory, (5) compressing spaces out of macro variables, (6) dynamically obtaining and using the program name, (7) processing MS Access data bases, and (8) using "where also." where statement, macro variable, dataset, boolean, macro put, automatic macro variable, proc contents, clinical trial 12
89 Public Health Tobacco Surveillance with SAS Mark Tabladillo predictive analysis framework. Users across this Federal agency apply latest public health science practice to develop peer-reviewed publications and guidelines serving the American public. This presentation focuses on how one specific scientific group within the CDC's National Center for Chronic Disease Prevention and Health Promotion (NCCDPHP) integrated SAS, and particularly SAS/AF, into ongoing tobacco surveillance. The development methodology demonstrates how SAS has been strategically used to support public health reporting and legislative policy both in the United States and around the world sample, business intelligence, proc step, macro definition, confidence interval, proc tabulate, dataset, txt, excel 7
90 Quality Oversight Measured By Complexity Hui-Ping Chen,
Mark Matthews
As SAS programmers, we have the responsibility of coordinating our own projects and account for our deliverables to be on- time based on the availability of resources and project timelines. We would be interested in knowing how many hours it will take to generate assigned reports or how many days it will take to deliver based on the individuals that are assigned to the project. In addition, it may be important to minimize the future rework and measure our quality based on what we learn from the previous project work. This paper provides an example of how you can go about estimating the number of hours (resources) that are needed to complete the programming and validation (QC or result checking, for example) based on the complexity of reports proc freq, quality control 4
91 Quickly and Easily Make Your SAS Programs Interactive with Macro QCKGUI Vineet Jain,
Smith Hanley
Often clinical programming teams create tools and utilities using BASE SAS Software. These programs are generally not interactive and are hard coded with parameters, which routinely need to be updated every time the program is run. When such programs are centrally located, programmers have to copy & modify the program (or write code to call the macro) in a local directory to use the program. This approach requires the user to understand the program and its parameters before actually using it. Making the program interactive relieves the users and allows dynamic interaction (i.e. data dependent) with the user. SAS provides multiple ways to make a program interactive, such as the window statement in DATA STEP and SAS AF. However, most programmers do not use these tools, as they feel that learning & using these for everyday tasks, such as selection of a directory path from the user, is not worth the time and effort sas base, macro call, proc step, sample 12
92 Read Titles and Footnotes from a Table Shell into a SAS Dataset Daniel Huang,
Lois Lynn
Typing the titles and footnotes for a clinical study report is a time consuming task that is tedious and prone to errors. There maybe ongoing updates to the titles and footnotes, even after a study report is complete. This also increases the difficulty of keeping the titles and footnotes accurate in the final report. To reduce SAS programmers' work load, a new macro called "headfoot" has been created. The macro reads the titles and footnotes from a table shell in a Microsoft Word document and then saves this information into a SAS dataset. The macro also creates a corresponding CSV f ile which contains the sa me information as the SAS dataset. The CSV file can be easily edited with Microso ft EXCEL. Therefore, minor changes to the titles and footnotes can be achieved quickly by updating the C SV file and then importing them into the SAS dataset. The CSV file can also be used as a tracking sheet for validation or for a delivery plan dataset, sas programmer, sample, data cleaning 6
93 Robust Approach for Handling Data Issues Discovered During Statistical Programming Vineet Jain,
Smith Hanley
In pharmaceutical research, a SAS program is expected to produce accurate and reliable results. Programs are often reused from past studies to save time and maintain consistency. During the reuse of prior programs or during subsequent updates of the data after initial programming effort, programmers often do not check the database as thoroughly as they do while initial program creation. This creates a possibility to miss the data issues. This paper provides a simple and robust approach to avoid such problems, by collecting potential data issues from SAS programs and centrally maintaining their status. A dataset for a study is created which maintains the most up to date data problems status sent by individual programs. A macro is introduced, which can be embedded in any SAS program, to send the potential data issue and its details to the central repository. Finally, a utility is developed to review the dataset macro call, data governance, sample 12
94 Sample Size Estimation for (Bio)equivalence Testing Between Two Treatments Madan G. Kundu Standard 2X2 and replicated 2X2 m crossover designs are recommended in t he regulatory guidelines to establish bioequivalence of generic drug with off pat ent brand-name drug. Estimation of sample si ze, in any clinical trial, targets to optimize the resource usage with assur ance of having adequate probability (power) to get significant result. This paper discusses the statistical concept behind sample size estimation for 2X2 and 2X2 m bioequivalence trials along with its implementation in SAS. Procedure of samp le size estimation in SAS has been disc ussed through some simple datastep functions (%BESS, %BESSm and %BESSg) and PROC POWER, a procedure for calculation of sample size. To assess the accuracy of these macros and PROC POWER, estimat ed sample size obtained through these two procedures have been compared with those estimated by Diletti et. al.(1991) sample size, sample, proc power, proc step, treatment effect, anova, confidence interval, student t distribution 13
95 Sample Size Estimation for Trials of Recurrent Events Kuolung Hu In some clinical trials, repeated occurrences of the same type of event are the study endpoint. For example, numbers of adverse event of interest occurred during the study period. There are several standard statistical methods for the analysis of such data, including the Anderson-Gill model (Anderson and Gill, 1982) and the Poisson regression model (Frome et. al. 1973). Signorini (1991) has proposed a method to estimate power for the Poisson model in the similar situation, but no approaches to power calculations are available for the Anderson-Gill model. We illustrate SAS macro to implement Signorini's method and extend it to incorporate unequal randomization between the treatment and control groups. Furthermore, using simulations, we show that the power for both the Poisson model and the Anderson-Gill model are similar under a variety of scenarios, so that this approach to sample size calculations can be used for either method of analysis in a study sample size, poisson regression, poisson distribution, sample, regression analysis, clinical trial, proc power and sample size, estimate, hazard ratio, significance level, hazard function, maximum likelihood estimation, macro definition, proc freq, proc step, proc phreg, likelihood function, proc genmod, adverse events 8
96 Sample Size Estimation Through Simulation of a Random Coefficient Model by Using SAS Junliang Chen,
Shannon Stock,
Chunqin Deng
In chronic pulmonary diseases, the development of emphysema progresses over many years. As a result, the assessment of drug efficacy requires the observation of large numbers of patients, followed for long periods of time. Recently, lung densitometry has been studied as a potential clinical endpoint for the assessment of lung tissue loss over time in patients with emphysema. Clinical trials using lung densitometry as an endpoint are typically designed as longitudinal studies with repeated measurements at fixed time points. Since lung density measurements are generally correlated with lung volume measurements, lung volume should be included in statistical analyses as a longitudinal covariate. The clinical efficacy of treatments can be assessed by comparing the progressions of decreased lung densities through the use of a random coefficient model - a longitudinal linear mixed model with a random intercept and slope sample size, sample, clinical trial, proc power and sample size, power analysis, data science, proc mixed, random intercept 8
97 SAS Abbreviations are your friends, use the template method to code! Elizabeth Ceranowski Often, coders find themselves using the same procedures or sequence of procedures over and over again. It would be very useful to create a "shell" of a procedure or program that can be used to cut down on repetitive typing. (For example, to submit the generic code "PROC PRINT;run;"). This quick demonstration will show how to create/edit/use SAS Abbreviations to quickly interject code into the Enhanced Editor window in SAS for Windows proc step, proc report, tranwrd function 6
98 SAS Certification: Are You Ready to Put Your SAS Skills to the Test? Dawn Hopper How do your SAS skills stack up to the competition? With an ever-increasing demand for SAS professionals worldwide, the ability to validate your knowledge with global benchmarks is a necessity. The SAS Global Certification Program offers benchmarks for all SAS users to validate their expertise within programming, data warehousing and predictive modeling. This paper will focus on how SAS exams are developed, exam topics, exam preparation tools, and a review of a few sample SAS exam questions and answers sample, data mining, sas programming 9
99 SAS Macro Programming Tips and Techniques Kirk Paul Lafler The SAS Macro Language is a powerful tool for extending the capabilities of the SAS System. This hands -on workshop presents numerous tips and tricks related to the construction of effective macros through the demonstration of a collection of proven Macro Language coding techniques. Attendees learn how to process statements containing macros; replace text strings with macro variables; generate SAS code using macros; manipulate macro variable values with macro functions; handle global and local variables; construct arithmetic and logical expressions; interface the macro language with the DATA STEP and SQL procedure; store and reuse macros; troubleshoot and debug macros; and develop efficient and portable macro language code macro facility, proc step, autocall macro, macro definition, macro variable, macro function, macro parameter, %macro parameters, proc sql, dictionary tables, options statement 8
100 SAS ODS Technology for Today's Decision Makers Sunil Kumar Gupta,
Thousand Oaks
Have you ever wondered why there has been so much excitement about ODS ever since it was introduced? How does ODS significantly enhance the presentation quality of reports and create files that were never before possible from SAS? Have you ever thought about how ODS can directly improve your daily activities and what it actually has to offer you as a programmer, statistician or manager? If you have ever had any of these questions about ODS, then this presentation is for you because it provides something for everyone at all levels. As a programmer, you can now create most any file types directly from SAS. In addition, the level of control and flexibility to format the output enables a higher degree of customization. As a statistician, you will want to take advantage of ODS for more efficient data analysis. The tools available in ODS facilitate multiple iterations of an analysis and ease of locating significant results proc step, proc tabulate, proc print, excel, proc report, macro variable 15
101 SAS Program for the Review of PDF Annotations Tikiri B. Karunasundera SAS data set annotations are often embedded on the PDF format of CRFs. The review of these annotations is a very tedious process. This paper suggests a simple method of extracting these annotations and creating a single SAS data set in order to automate the review process . The output data set could be used to compare with the data specifications or create an easy-to-read summary listing dataset, txt 4
102 SAS Programming to Calculate AUC in Pharmacokinetic Studies - Comparison of Four Methods in Concentration Data John He AUC is an important parameter in pharmacokinetic studies. There are different ways to calculate AUC. Sometime, the statistician or pharmacokineticist has to choose one particular method to calculate AUC depending on the actual concentration data. Among many pharmacokinetic approaches and modeling analyses, traditional trapezoidal, log-linear trapezoidal, Lagrange polynomial integration, and Purves method are commonly used in calculation of AUC. This paper will discuss the four methods of AUC calculation in pharmacokinetic studies of drug. SAS will be used in application of those methods. A comparison of the four methods will be presented and analysis of the strength and weakness of these methods based on sample data will be performed. In conclusion, some general comments and suggestions will be provided sas programming, sample 8
103 SAS Styles ... ODS, Right? No Programming! Discover a Professional SAS Programming Style That Will Last a Career Joe Perry sas programming, sas programmer 4
104 SAS to MS-Excel, Auto-Loading a Full SAS Library into a Multi-Tabbed, Labeled Column, Excel Spreadsheet Joe Perry Occasionally, SAS professionals are asked to supply our customers with EXCEL versions of one or more of the datasets. Typically, users have no, nor should be expected to have, knowledge of the underlying data's structure such as what a variable's short name means with respect to the contents of a column. Though there are a number of SAS tools to provide a user community direct access to these datasets, like SAS's Add-In for Microsoft Office, one tried and true method is to export these datasets to EXCEL using SAS's PROC EXPORT. A few limitations of this method are that this can be a fairly manual process (generally one dataset at a time) and, maybe more importantly, PROC EXPORT uses variable names as column headers. If, as this author encountered, when there are dozens to scores of datasets with, cumulatively, hundreds of variables this task can become daunting. Combine that with the need to export a number of data libraries to EXCEL and the task screams for a more productive approach excel, proc export, proc step, libname engine, label statement, variable 9
105 SAS, CDISC and Clinical Data Integration Peter Villiers data cleaning, sdtmig, controlled terminology, clinical research, model validation, data integration, sas data integration studio, cdisc 27
106 SDTM, Plus or Minus Barry R. Cohen The CDISC St udy Data T abulation M odel (SDTM) has b ecome the industry stand ard for the re gulatory subm ission of t he collected clinical trials data. The CDISC Anal ysis Data Model (ADaM) is emerging as the i ndustry standard for th e analysis SAS datasets based upon the collected data. Pharmaceutical companies are today implementing SDTM and, to some ex tent, ADaM. As par t of this PROC ess, compa nies are ev aluating whether to use the SDT M standar d o nly for the r egulatory submission, for which it is designed, or incorporate it into their operational standard as well. Some companies adopting SDTM as the ir o perational stan dard are fi nding th at a near-SDTM standard works better t han strict co nformance t o the SDT M standard clinical data, adam dataset, regulatory submission, data standard, sdtm domain, dataset, clinical trial, data integration, edc, raw data, cdisc 6
107 SHARE - A Reporting System for Efficacy Outputs using SAS Macro Axel Muehlig The programming group at Roche has developed share, a set of macros for standard efficacy reporting. The macros produce tabular and graphic data displays and range from descriptive analyses to condensations of different statistical procedures. All reporting macros follow the same modular design to ensure a consistent appearance and functionality. A key module is the filter system which allows to generate data displays on different subpopulations which are defined in a meta-dataset. This feature is particularly useful for exploratory analyses. The modular design of the macros facilitates further development. To ensure backward compatibility after a change, a suite of regression tests is executed and electronically verified before the release. Valuable experiences were made during the different development stages. The share concept has been very successful in the area of Oncology. An estimated 80-90% of planned efficacy analyses are covered by the share macros macro variable, macro call, macro parameter, by group processing, data cleaning, proc report, adam dataset, proc step, regression analysis, macro definition 12
108 Simple and Quick Methods to Verify Subjects' Scheduled Visits Compliance Xinping Cindy Wu Two Simple methods for creating a flexible reference range using PROC FORMAT or PROC SQL is presented here to identify subject violation of scheduled visits during the course of a clinical trial to ensure the quality of clinical trial data and protocol compliance. To quickly identify the subjects who are not following the protocol specified scheduled visits, a reference range based on protocol schedules is needed. Using a SQL left join to merge the reference ranges back to subjects' visit day data file (Master Data file) will enable one to identify the violation of visits. Alternately, one can use a temporary format apply to the visit day variable in the Master Data file to easily create the violation flag for each subject proc step, proc sql, dataset, proc format, clinical trial 6
109 Single Page Graphical Display of Multiple Subjects' Time Pattern on Studies Louie Huang SAS/GRAPH is a very powerful tool that allows you to efficiently visualize your clinical data. This presentation introduces some useful skills that create a meaningful and self-explanatory patient profile displaying study discontinuation information of several studies for multiple subjects. The paper provides a concrete programming example for programmers' reference in their clinical application. The techniques include creating efficient macro variables with PROC SQL, creating and using formats, annotation, and the presenter's own tips and tricks macro variable, study day, clinical data, proc sql, proc step 9
110 Smoke and Mirrors!!! Come See How the _INFILE_ Automatic Variable and SHAREBUFFERS Infile Option Can Speed Up Your Flat File Text-Processing Throughput Speed William E. Benjamin Jr. Processing speed for small files is never really a problem; one eye blink looks and feels much the same as two or three blinks of the eye. With today's computer speeds any machine will do a lot of work in three blinks of the eye. However, when processing hundreds of thousands, or millions of records blinks can become pauses, yawns, naps, or even an over-night sleepover. When a Base SAS DATA STEP reads in text files and writes out nearly the same file the work proceeds as follows; (a) read input file data into input buffer, (b) move data values to DATA STEP variables process data variables, (d) move data to output buffer, (e) write output file from output buffer. SAS reads your source code every time you run the code and builds the "current" processing steps (unless the code is compiled separately first) then executes them. By packing more work into each instruction less time is wasted between instructions, this means more work in less real time cpu time, automatic variable, dataset, data step, txt, flat file 8
111 SmryEachVar: A Data-Review Routine for All Data Sets in a Libref Ronald J. Fehd The SAS %INCLUDE statement is simple, yet powerful. This paper reviews the FreqAll data review program. This program produces a shortened data review report of frequencies - and appropriate statistics for numerics - for each variable in a data set. It provides routines called using call execute and %INCLUDE to produce the same report for every data set in a libref. This is another in the Journeymen's Tools series. proc step, macro variable, proc freq, call execute, txt, proc append, proc univariate, proc sql, attrib statement 24
112 So Much Data, So Little Time: Splitting Datasets For More Efficient Run Times and Meeting FDA Submission Guidelines Anthony Harris,
Robby A. Diseker
When clinical trials increase in duration, enrollment population, or both, the amount of data collected grows proportionally. The result is larger datasets that must be split for regulatory submissions to meet the current FDA requirement of being less than 100 megabytes in size. This paper describes a macro that splits datasets while keeping patient data together. It can reduce any sized dataset to fit the regulatory requirement. Since these larger datasets also require longer run times in producing analysis datasets, it will be shown how using the macro in programming of analysis datasets can reduce run time. A comparison of run times on large datasets with and without this approach is included proc sort, proc step, character variable, in=, clinical trial 9
113 SQL or not SQL When Performing Many-to-Many Merge - A Realistic Example Wenjie Wang,
Jade Huang
PROC SQL is a powerful tool for SAS programmers. Choosing between PROC SQL and a DATA STEP is a matter of preference in most cases, but in some cases, PROC SQL is a better choice in terms of performance and efficiency. This paper will illustrate the differences between PROC SQL and DATA STEP when performing a many-to-many merge, and will elaborate on situations when PROC SQL is a preferred choice. This paper is targeted at an intermediate audience. SAS Version 8.2 or 9.1, Windows XP or UNIX, Intermediate Level proc sql, proc step, proc sort 6
114 Statistical Approach to Establishing Bioequivalence William F. McCarthy,
Nan Guo
sample size, sample, standard deviation, confidence interval, geomean, restricted maximum likelihood, missing value, outlier 12
115 Strategies for Building an Effective Relationship with a Contract Research Organization Jackie Lane Global industry analysers estimated that pharmaceutical and biotechnology companies spent approximately $57 billion on R & D in 2005, out of which an estimated $14 billion was used for the outsourcing services offered by the CRO industry. This figure is expected to increase further with the broadening of the spectrum of services outsourced to cover the entire value chain. As the outsourced services to India move up the value chain to cover phase 1/2 trials, the total contracts value may go up to $20 billion by 2010 (Wikipedia/Contract_research_organization). With important analysis, including pivotal Phase III trials, integrated summaries of safety (ISS) and integrated summaries of efficacy (ISE), being programmed by external vendors, the need for effective relationships is critical. In this paper, we discuss key points to building an effective relationship with a CRO, including communication, timelines, programming requirements, Statistical Analysis Plan (SAP) and scope management data cleaning, data science 3
116 Table Numbers - Chaos to Simplicity Michael Stout Using the SAS ODS facility with automatic table numbering is an excellent method for packaging reports (tables) into a single output destination. Some reports are large and may contain hundreds of tables produced by SAS procedures and DATA STEP processing. Managing large numbers of tables can be challenging and difficult. It can be extremely difficult to insert, d elete or re-arrange tables without affecting table numbers. Although ODS does a good job of bundling reports (tables), it does not automatically assign table numbers. This paper shows one method that may be used to dynamically assign table numbers while allowing the programmer to move from a state of chaos to simplicity 6
117 Taking Out the Garbage Adam LaManna,
Howard M. Proskin
This is a discussion on what items may be left behind when a user is running multiple SAS programs during a single SAS session and how, using a macro that I have developed (and keep revising), the user can clean up the "garbage" so that some possible errors can be avoided. These errors could be a simple as incorrect titles and footnotes up to the wrong data being accessed proc step, macro variable, proc sql, work library 3
118 Text Mining to Summarize Complicated Datasets Containing Structured, Nominal Data Hamed Zahedi The purpose of this study is to filter a large, healthcare database to a cohort of patients undergoing treatment for Osteomyelitis. There are up to fifteen different columns of nominal data to search for Osteomyelitis. We used SAS Enterprise Guide and the RXMATCH function to summarize the codes defining Osteomyelitis, using potentially 15 columns of information. An alternative approach is to use SAS Text Miner. We bring all fifteen variables into one column as a string of codes, using the CATX function. Then we use SAS Text Miner on the defined text string; the terms window in the output gives the frequency and number of documents. We use Text Miner features such as "Treating as equivalent terms", "Sorting" and "Fi ltering" to get summaries of different diagnosis or procedures. We started with a total of 117,577 patients. After filtering down to Osteomyelitis (ICD9 code 730) using the strings of diagnoses, there were 44,035 records character functions, data mining, sas enterprise guide, proc freq 10
119 The CDISC Study Data Tabulation Model (SDTM): History, Perspective, and Basics Fred Wood The CDISC (Clinical Data Interchange Standards Consortium) SD TM is a standard for submitting data tabulations to the FDA in support of marketing applications. In July of 2004, this standard became a Study Data Spec ification (1) referenced in the eCTD Guidance (2). The FDA has announced on several occasions their intention to make the SDTM required by regulation (3-6). This paper/presentation will focus on the SDTM and the SDTMIG (SDTM Implementation Guide: Human Clinical Trials), but will also describe the regulatory climate around the SDTM, and provide an update on recent activities with SEND (Standard for Exchange of Nonclinical Data), an implementation of the SDTM for animal toxicology and pharmacology studies clinical trial, clinical data, trial design model, adverse events, clinical research, sdtm domain, cdisc 8
120 The DOW-Loop Unrolled Paul M. Dorfman,
Lessia S. Shajenko
The DOW-loop (Whitlock DO-loop) is a nested repetitive DATA STEP programming structure, intentionally organized in order to allow for programmatically and logically natural isolation of DO-loop instructions related to a certain break-event from actions performed before and after the loop, and without resorting to superfluous conditional statements. Readily recognizable in its basic and most well-known form by the DO UNTIL (LAST.ID) construct, which naturally lends itself to control-break BY-processing of grouped data, the DOW-loop, however, is much more morphologically diverse and general in nature. In this talk, we aim to examine the internal logic of the DOW-loop and use the power of example to reveal its aesthetic beauty and pragmatic utility set statement, hash table, missing value, output, by group processing, dataset, automatic variable, proc sql 18
121 The Logic and Logistics of Logistic Regression Lawrence Rasouliyan,
Dave P. Miller
Although logistic regression models are widely used in multivariable an alyses with dichotomous outcomes, many of their features, which can be very helpfu l tools in better understanding the data, are often underutilized. In addition to the widely used and reported odds ratios and p-values, PROC LOGISTIC generates a plethora of st atistics from which one can gain further insight, make stronger analytical inferences, and more easily identify errors in the m odel construction. Model options will be explored, and resulting outputs from real-world examples will be ex plained in detail. Topics covered include model fit statistics, maximum likelihood estima tes, effect modification, Receiver Operator Characteristic (ROC) curves, and the Hosmer-Lemeshow Goodness of Fit Test odds ratio, logistic distribution, logistic regression, proc logistic, regression analysis, proc step, main effect, predictor variable, response variable, binary variable, maximum likelihood estimation, confidence interval, goodness of fit, likelihood function, interval variable, roc curve, stepwise selection, nominal variable, class variable, interaction effect, missing value, feature selection, proc freq 14
122 The Power of PROC GPLOT in Statistical Analysis of Clinical Studies Aiming Yang A picture is worth a thousand words. Similarly, one graph is worth thousands of words. In clinical studies, graphics are used as a visual presentation of the analysis results. SAS PROC GPLOT is a powerful tool to present analysis results in an immutable graphic format for clinical studies. It can generate many types of powerful plots. This paper focuses on four types of plots often used in clinical study analyses: patient profile over time, CDF plot, KM plot and Meta plot. The patient profile over time chart presented here displays the immediate response to daily dose of a therapy medicine. The CDF (Cumulative distribution function) plot is often used to investigate any percentile differences between different treatment groups. The KM plot is a Kaplan-Meier method of presenting survival data. The annotate facility and data set are used for the plots in this paper. The meta plot is used for clinical meta-analysis or subgroup analysis proc gplot, proc step, clinical trial, cumulative frequency, treatment arm, probability distribution, data science, adverse events 13
123 The Use of Propensity Scores and Instrumental Variable Methods to Adjust For Treatment Selection Bias R. Scott Leslie Observational studies that lack randomization of subjects into treatment groups must address selection bias to properly estimate the effect of treatment. This paper explores a propensity scoring (PS) method and instrumental variable (IV) method of controlling for treatment selection bias. Included is a discussion of the methods, the advantages and disadvantages of the two methods as well as a comparison of results when applied to a study that evaluates the effect of therapy regimen on medication adherence. The LOGISTIC procedure is used to create propensity scores and the QLIM procedure in SAS/ETS is used to conduct instrumental variable analysis propensity score, instrumental variables, response variable, proc logistic, estimate, logistic distribution, regression analysis, treatment effect 8
124 Tightening the Corners for Better Search Efficiency Meera G. Kumar In the pharmaceutical industry, we are always counting - counting the number of overlapping events - concomitant medications taken independently or concurrently, medications and adverse events (AE) that have the same time interval, multiple occurrences of adverse events, overlapping of time intervals for patients on multiple treatments, so on and so forth. The algorithm discussed in this paper can be applied to any of the above situations. This paper explains the process where we looked at simultaneous occurrence of adverse events within a time interval. Computing the maximum number of simultaneously occurring adverse events is a frequent and an important problem in the analysis of drug safety. Computing each instance of co-occurrence typically involves analyzing through the nested intervals and verifying if there are regions with multiple overlapping occurrences and remembering the maximum number over all nested intervals adverse events, concomitant medications 5
125 Tips and Tricks for Creating Multi-Sheet Microsoft Excel Workbooks the Easy Way with SAS Vincent DelGobbo Transferring SAS data and analytical results between SAS and Microsoft EXCEL can be difficult, especially when SAS is not installed on a Windows platform. This paper discusses using the new XML support in Base SAS-9 software to create multi-sheet Microsoft EXCEL workbooks (versions 2002 and later). You will learn step-by-step techniques for quickly and easily creating attractive multi-sheet EXCEL workbooks that contain your SAS output, and also tips and tricks for working with the ExcelXP ODS tagset. Most importantly, the techniques that are presented in this paper can be used regardless of the platform on which SAS software is installed. You can even use them on a mainframe! The use of SAS server technology is also discussed. Although the title is similar to previous papers by this author, this paper contains new and revised material not previously presented excel, xls, proc print, by group processing, sas output, sas base, proc step, proc template, title statement, output delivery system, ods xml, macro definition 19
126 Tips and Tricks in Creating Graphs Using PROC GPLOT Qin Lin,
Bala Cynwyd
SAS/GRAPH is a very powerful data analysis and presentatio n tool. Creating information-rich graphics facilitates understanding the underlying data. Creating these graphics in SAS can be time-consuming and challenging. This paper introduces some tips a nd tricks in using PROC GPLOT to generate plots from clinical data in ODS RTF format, including methods to: 1. Restructure data to create error bars using interpol=hiloctj option 2. Separate error bars that overlap at the same tick mark 3. Display irregular numeric data in x-axis with unequal intervals 4. Dynamically assign the y-axis ti ck marks with frequently updated data 5. Build a common reference line for a plot with two different y-axes 6. Control the position and alignment of legends for plots with two y-axes 7. Align the value of BY variables in the title of plot by using #BYVAL() 8 sample, proc gplot, proc step, title statement 7
127 TPHREG and GLMSELECT: Using the CLASS statement in SAS 9.1 Laura E. Archer This paper will introduce two new procedures in SAS 9.1 that incorporate the class statement in with common regression approaches. The CLASS statement is a very useful statement in SAS that allows the user to define variables which are to be treated as categorical variables. Once a variable is defined in the CLASS statement, SAS will automatically create a set of indicator (dummy) variables to represent the levels of the variable in the CLASS statement. If a procedure does not support the CLASS statement the user will have to manually create dummy variables to include in the model for analysis. While this is usually not difficult, it can create challenges. This paper will explore some of those challenges, and discuss two new procedures in SAS that have incorporated the CLASS statement: the experimental procedures TPHREG and GLMSELECT. These new options will be demonstrated using data from a Cancer and Leukemia Group B (CALGB) colon cancer clinical trial binary variable, feature selection, proc step, likelihood function, maximum likelihood estimation, proc reg, response variable, proc phreg, null hypothesis, proc glm, interaction effect, stepwise selection, proc genmod 11
128 Undocumented and Hard-to-find PROC SQL Features Kirk Paul Lafler The SQL Procedure contains many powerful and elegant language features for SQL users. This paper presen ts SQL topics that will help users 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; the PROC SQL - macro interface; and performance tuning strategies proc sql, proc step, macro call, macro variable, sas library, missing value 11
129 Using Automated File Comparisons to Increase Efficiency and Accuracy in SAS Code Development & Validation Jasmin Fredette File comparisons form a central part of SAS code development, validation, and maintenance. Complex derivations and statistical summaries are typically validated through 'independent double-programming', where a perfect match is expected between validated production output and 'QCed' output. When production and QC output exist as SAS datasets, this expectation can be tested using SAS-based file comparison techniques, in particular PROC COMPARE; when they exist in other file formats, a number of other file-comparison tools can be applied, including 'diff' utilities (for comparing text files), and application-specific methods such as Word-merge. Automated file comparisons not only provide a huge boost in efficiency over manual approaches, but also vastly increase the accuracy and scope of QC efforts, since they facilitate complete rather than selective QC and prevent subtle and infrequent discrepancies from being over-looked proc compare, proc step, txt, data cleaning, dataset, adam dataset, macro variable, sysrc, sas programming 13
130 Using ESTIMATE and CONTRAST Statements for Customized Hypothesis Tests Hanyu Chen ESTIMATE and CONTRAST statements in a number of SAS procedures permit customized hypothesis tests and make special statistical comparisons easy to perform. The key to using these two statements is to determine the proper weights, which can be very challenging in complicated cases. Using PROC GLM and ANOVA model, this paper discusses a process for obtaining the weights appropriate for the intended customized comparison. Examples using the process are also provided null hypothesis, proc glm, proc genmod, proc step, response variable, sample, estimate, anova 8
131 Using Pharmacovigilance Reporting System to Generate Ad-hoc Reports Jeff Cai To supplement Oracle Adverse Event Reporting Sy stem, many SAS macros are implemented to enhance data cleaning, pharmacovigilance reporting, regulatory su bmissions, and other surveillance activities. These macro programs have been defined to the point that only simple parameter changes are needed to meet business needs. An SAS AF application, Pharmacovigilance Repor ting System, is developed to save programming resources and allow data analysts with less or no SAS programming skills to generate the routine ad-hoc reports. With a few mouse clicks and inputs, users can easily subset, analyze, and present safety data with standard reports. This paper will review and discuss the functionalities of the application in detail macro call, sas programming, adverse events 9
132 Using SAS Enterprise Guide 4.0 to find a Correlation between Mortality and Co-morbidities for Prostate Disease Patients Jeong W. Park The purpose of this paper is to examine correlation between mortality and co-morbidities for prostate disease patients and to describe the method using SAS Enterprise Guide 4.0. The National Inpatient Sample (NIS) data of prostate diseases used for this study were prov ided by the Agency for Healthcare Res earch and Quality. The main variables studied are mortality and diagnosis. Di agnosis Related Group (DRG) and diagnosis codes were compressed for the study. The compression coding will be demonstrated. Data vis ualization tools, including kernel density estimation, were used to explore the dataset. Chi-s quare test and logistic regression analysis were the statistical methods used. The results show a strong relationship among co-morbidities, mortality and age. In addition, the mortality of prostate disease patients is more related to co -morbidities rather than pure prostate diseases logistic regression, logistic distribution, regression analysis, correlation, proc freq, sas enterprise guide, sample, data science, dataset, statistical software 18
133 Using Scheduler to Automate Pharmacovigilance Reporting David Clawson Oracle Adverse Event Reporting System (oAERS) is a popular tool for collecting, monitoring, evaluating, and communicating information regarding adverse events that occur in patients treated with a product beginning with drug developm ent and continuing throug hout post-marketing. Due to some limitations of oAERS on data analysis and reporting, report s generated with SAS software are used to fill the gap in data cleaning, regulatory submissions, and surveillance activities. Various SAS macros have been deve loped to meet business needs with only simple parameter changes required upon execution. It has b een very time-consuming to extract the data from a large database and mainta in and execute calls to the macr os with different sub-setting parameters for a variety of routine reports. To best utilize human resources, a scheduler, a suite of macros to c ontrol execution of SAS programs, on the Windows platform is used to au tomatically generate r outine SAS reports macro variable, excel, txt, adverse events, macro definition 12
134 Using TFL Metadata to Populate Titles & Footnotes in SAS Programs for Clinical Trials Stephen Hunt Compared with even the most routine data manipulations and calculations that go into the production of TFLs (Tables, Figures, and Listings), the SAS code necessary for inserting titles and footnotes seems fairly trivial. However, titles play a vital role in explaining what the body of a particular TFL is presenting, while footnotes add critical details regarding implementation of, and the occasional exception to, analysis specifics. Documents are essentially meaningless unless their content is qualified by explanatory titles and footnotes. Titles and footnotes can therefore be thought of as 'data about data', which is the definition of 'metadata'. Given the importance of this metadata, it's not surprising that it undergoes frequent revision during the course of a project excel, dataset, footnote statement, libname engine, macro variable 11
135 Using the SAS XML Mapper and ODS PDF to create a PDF representation of the define.xml (that can be printed) Lex Jansen When submitting clinical study data in electronic format to the FDA, not only information from trials has to be submitted, but also information to help understand the data. Part of this information is a data definition file, which is the metadata describing the format and content of the submitted data sets. When submitting data in the CDISC SDTM format it is required to submit the data definition file in the Case Report Tabulation Data Definition Specification (define.xml) format as prepared by the CDISC define.xml team. CDISC has made a basic style sheet available on their website to display the define.xml in a human readable form in a web browser. However, this style sheet is not suitable to generate a paper-based presentation of the define.xml. This paper illustrates how the define.xml can be converted to Adobe's Portable Document Format (PDF) by using SAS/BASE software, and also how the define.xml can be transformed into relational SAS data sets by using SAS XML Mapper technology ods pdf, dataset, crf, proc report, annotated crf, sample, proc step, cdisc 20
136 Utilizing the SAS Business Intelligence Platform in a Clinical Trial Environment Brian K. Varney,
Mindy Kiss
Clinical trial environments are rampant with similar tasks being performed over and over again on similar data. Over the past couple of decades, standardization of data storage and reporting has made the time appropriate for taking advantage of business intelligence software to be used on these vast warehouses of clinical data. The SAS Business Intelligence platform is a logical path to take because of the easy integration with existing SAS programs and data sources that are already proven and familiar. This will also allow non-traditional SAS users such as statisticians and data managers to access the data without the use of traditional SAS code business intelligence, clinical data, sas enterprise guide, clinical trial, sas management console, adverse events, excel 5
137 Utilizing the VNAME SAS function in restructuring data files Mirjana Stojanovic Format conversion of data files is a day to day activity in almost all organizations. Files of different types are received and often variable names are descriptive or even include data values, for example, dosing cycle number or day of treatment. Frequently these files are EXCEL files. SAS provides XMLMap and SAS code specific to EXCEL to load the EXCEL XML directly into SAS tables. After conversion of EXCEL files to SAS data sets using the %XLXP2SAS macro the VNAME function was applied to extract relevant data from variable names. Final data sets were in a format ready for statistical analysis. This paper will illustrate the combined use of a new feature in SAS v9 (the %XLXP2SAS macro), and an older SAS feature (the VNAME function/call routine) to create the final data sets. For this operation you need to have Microsoft EXCEL 2002 or 2003 excel, dataset, txt 6
138 Validating CDISC SDTM-Compliant Submission-Ready Clinical Datasets with an In-House SAS Macro-Based Solution Bhavin Busa,
Sheila Vince,
Jameelah Aziz
Pharmaceutical organizations are proactively adopting Clinical Data Interchange Standards Consortium (CDISC) Study Data Tabulation Model (SDTM) because of a broad variety of benefits to the industry and the FDA's intention to mandate submissions of SDTM within the Electronic Common Technical Document (eCTD) structure. Tools are needed to check compliance and streamline operations for the preparation of data for FDA submission. This paper describes two currently available options for validating the compliance of submission-ready clinical datasets, and presents an in-house SAS -based solution to design and implement a SAS macro library for the same purpose. We present the advantages of the in-house SAS solution versus the other options in checking the domain structure, variable attributes and domain content per the SDTM Implementation Guide (SDTM IG), and provide examples of strategies to achieve this proc step, sdtm domain, macro definition, data cleaning, controlled terminology, clinical data, cpu time, dataset, sample, sas base, excel, clinical research, sas log, cdisc 12
139 View Microsoft Word RTF Objects Embedded In Oracle Dongmin Shen,
Hsiwei Yu
A workload analysis on how much time it takes for a task to be completed requires retrievals of long explanatory notes related to the testing from an Oracle database. The notes in Microsoft Word RTF format are stored in an Oracle's CLOB data type column. An application has been successfully developed by combining Oracle functions, SAS Access to Oracle, and Base SAS Dynamic Data Exchange capability to retrieve such notes and then convert them to plain texts for use in a workload analysis reporting system character, macro definition, proc sql 7
140 Watermarking SAS Outputs Without Using Proc Template and ODS Jay Zhou Anxiously making use of the confidential or draft listings and tables produced in SAS increases the risk of misusing or misinterpreting the results. To reduce that risk, watermarking the SAS outputs with a pale image or text displayed and/or printed behind text provides a viable solution. This paper will introduce a method of watermarking the output directly with SAS through interfacing with Word without using PROC TEMPLATE and ODS sas output, data step, proc template, proc step, macro variable 6
141 Web-Enable Your SAS Applications Teresia L. Arthur,
Mary Jafri
How many times do we write applications, only to rewrite them later because a new operating system comes online, users want a friendlier interface, or users just want "the latest cool stuff"? Wouldn't it be wonderful if we could write core application code that remained in use throughout the business process evolution of an application, and even more so if that application remained in service for many years? Who said applications have to become antiquated so quickly, and who has the time and the resources for application rewrites? The objective of this paper is to demonstrate how a production SAS/AF software application, which was originally written in 1993, on MVS, has become Web-enabled and serves more than 2,000 unique, global users; and its core application code has never been rewritten data validation rules, proc sql 14
142 When a Period Really is Not a Period and How to Fix It William C. Csont,
Howard M. Proskin
The other day I was working on a clinical study for a client in which I needed to import and convert a Microsoft EXCEL spreadsheet into a SAS Version 9 datase t. The spreadsheet contained many vari able columns that contained actual numeric values, a period ('.') to denote one level of missing, and an empty space (' ') to denote a different level of missing. In order to accommodate the aforementioned columns that contained a combination of numbers and characters, I imported the columns as character variables. I noticed after running my tri ed and true DDE code that imports EXCEL into SAS that all of my periods '.' were now in the SAS dataset as empty spaces ' '. Puzzled, but not deterred, I tried several methods to create a correct SAS dataset with periods and spaces. This paper will ex plore the different st eps I tried and the final result used to create an equivalent SAS dataset from the original EXCEL spreadsheet excel, dataset, missing value, sample, informat statement, list input, macro definition 4
143 When PROC APPEND May Make More Sense Than the DATA Step David W. Carr Virtually all SAS programmers (with apologies to diehard SQL codeslingers) tend to use a simple SET statement in the DATA STEP when concatenating two or more datasets in their programs. Use of the SET statement is generally the most logical and practical approach because the required code is typically very succinct and the process in most instances involves concatenation of only two datasets. However for those occasions when the SAS programming job either requires concatenation of a large number of datasets or concatenation of very large datasets (regardless of the number), the APPEND procedure is oftentimes a more sensible alternative. The purpose of this paper is to present examples of cases in which PROC APPEND may be a better choice than the SET statement in the DATA STEP and to provide some justification for why the APPEND procedure is a viable option proc append, proc step, set statement, in=, macro definition, cpu time, dataset, temporary dataset, proc sql, macro facility 6
144 Working experience for the filing resubmission from supporting Statistical Programming Analysis (SPA) perspective Minh V Truong The purpose of this presentation is to share my exp erience of working for the filing submission at Genentech from supporting Statistical Programming Analysis (SPA) perspective. The submission was the effort of years of committed work from the filing team, patients and physicians. As the deadline was approaching, the te am faced challenges like multiple databases, delays, changing resources, pressure and attention, as the product is of a crucial importance for hundreds of thousands of cancer suffering patients worldwide. In March 2007 I was assigned 65% of my time to help the study submission as the deadline for this filing was three months away. Since I was empl oyed only for five months in Genentech Inc. (having 10 years experience in SAS programming), t he stake was very high. The team demanded that supporting SPA must learn quickly by himself the current project status, his roles and responsibilities, what the team needs and how t o meet their needs quality control, clinical programming 3
145 Writing Testing-Aware Programs that Self-Report when Testing Options are True Ronald J. Fehd Program development proceeds through four phases: investigation, development, unit testing, and integration testing. Testing typically consumes 50% of project resources. Any programming effort spent in support of testing may significantly reduce project costs and help ensure the delivery of the project's product, a set of tested and integrated programs. This paper examines the architectural issues of writing SAS programs that are testing aware: that have a variable Testing whose default value is false, which can be reset to true based on the values of options and which write information to the log when testing is true. Topics covered include options used for testing, both command-line and used-anywhere; example code for DATA STEP, includes and macro programs used as any of module, routine, or subroutine. macro variable, proc step, macro put, call execute, proc sql, %if-%then-%else, proc print, macro loop, macro definition, macro call 20
146 You use SAS, Your boss uses Excel, Guess where your results are going to appear! (Part 2): DIGGING DEEPER INTO ODS to put your SAS data and results into Excel William E. Benjamin Jr. The Author's first paper on this subject presented at WUSS 11 in 2003 described general processes helping programmers run EXCEL macros to move their data from SAS readable file structures into Microsoft EXCEL spreadsheets. The processes included trivial data output solutions, simple DDE tasks, and progressed to complex SAS and EXCEL routines that manipulated EXCEL from SAS and then accessed SAS data from EXCEL. This paper digs further into the use of ODS on the SAS side to prepare EXCEL spreadsheets directly. SAS code and macros will be demonstrated to create multi-page EXCEL spreadsheets, giving the programmer the ability to build tools to exploit data and display information for the end user. As a result the SAS programmer will be able to create spreadsheets for distribution, automate the standardization of reports, and the building of powerful spreadsheet applications with access to information built by offline SAS processes that the end user can refresh excel, ods excel, proc print, data step, proc step 8

Back to Conf go 2009 go 2007

This site serves as a convenient hosting location and does not work as a publisher. All copyrights belong to their respective owners.

The information on this site is provided for general reference purposes only. Whilst every effort is made to ensure that the site is up to date and accurate, no warrant, nor any responsibility or liability for, the accuracy or completeness of the content or for any loss which may arise from reliance on information contained in this site is provided. Links to other sites are provided for your convenience but no responsibility or liability for the content of those sites or of any external site which links to this site is accepted. References to any specific commercial product, process, service, or corporation are also for information only, and do not constitute endorsement, recommendation or favoring.

SAS is a registered trademark of SAS Institute Inc. SAS, Statistical Analysis System, and all other SAS Institute Inc. product or service names are registered trademarks or trademarks of SAS Institute Inc. in the USA and other countries. ® indicates USA registration.