HOME QUICK SEARCH AUTHORS KEYWORDS HELP BUGS

PharmaSUG 2005 Papers - Index

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

# Title
×
Authors
×
Abstract
×
Keywords
×
Extras Pages
1 %IsNum, A Macro Function Checks Data Type In Data Step Fuping Peng character variable, macro function 3
2 %KMPlot - An Enhancement of SAS PROC LIFETEST Weifeng Xu,
William W.B. Wang
In clinical trials, the Kaplan-Meier (KM) estimator is the most widely used method for estimating the distribution functions of time-to-event endpoints. KM estimation is often performed through the SAS PROC LIFETEST procedure, which is also used to create plots of survivor curves. However, this procedure is limited in terms of its graphical displays and its inability to calculate the number of patients at risk. To improve upon PROC LIFETEST, the Survival Analysis Macro (SAM) Committee at Merck developed the %KMPlot macro. Using the Kaplan-Meier (KM) Product Limit Method, this macro provides estimates of the cumulative event rate percentage or the survival rate percentage over a study period. %KMPlot also enhances the SAS LIFETEST procedure by using PROC GPLOT to produce report-ready graphs, as well as output SAS datasets that can be used for further analysis or graph customization. KEYWORDS: SAS PROC LIFETEST, Kaplan-Meier, Survival Analysis, SAS Macro proc step, out=, confidence interval, survival analysis, clinical trial, time variable 8
3 %PREFTAB - A macro to automatically create adverse event, medical history and concomitant medication tables Wilfried Esken Most clinical studies require the generation of frequency tables of adverse events, medical history and concomitant medications. Usually, these tables differ only s lightly from one another and from study to study. For example, the hierarchical presentat ion of System Organ Class, High Le vel Group Term, High Level Term or Preferred Term in adverse event tables is quite simila r to the way ATC classes and their Preferred Terms are displayed in medication tables. Often it is necessary to sh ow different combinations of these levels in different tables, with or without an additional analysis variable, with a flexible number of treatment groups or with a special sorting order. The macro %PREFTAB 1 was developed to enable the user to generate these kinds of tables fast, easily and flexibly. This paper gives a brief overview of how the macro works, wh ich parameters are available and which results can be achieved by using it adverse events, concomitant medications, proc freq, medical history 11
4 %SETUP - A Utility Macro to Build Directory Structures and a SAS Initialization Program Guowei Wu This paper presents a utility macro %setup, which creates standard directories for a clinical study and an associated SAS program (startup.sas) to initialize the programming environm ent. The startup.sas defines options, library references, and global macro variables for the input and output directory paths. Startup.sas is the ke y component to building portable analysis programs and to maintaining c onsistency within a study, or even across pr ojects. %setup was developed using base SAS under Microsoft Window XP professional. This paper is intended for users of all skill levels macro variable, data cleaning 7
5 A Better Perspective of SASHELP Views John R. Gerlach SASHELP views provide a means to access all kinds of information about a SAS session. In fact, since their inclusion into SAS Version 6, these views, which utilize Dictionary tables, have become a very important aspect of any serious SAS application. And, not surprisingly, Version 9.0 greatly expands the collection of these meta-data, putting SAS on par with relational database environments. Unfortunately, this powerful font of dynamic information is not well understood nor often used, and even less appreciated. Perhaps if the views were conveyed in a relational context, rather than as discrete entities, the user might understand them better. Specifically, to address the question: How are SASHELP views related to each other and, even, to Dictionary tables? Not just as queries and data objects, but as relational entities. However, this approach requires the use of meta-data about meta-data dictionary tables, proc sql, create table, proc contents, proc step 7
6 A Dynamic SAS/IntrNet Example with Help of ASP and JavaScript: Online Clinical Trial Randomization List Generator Sijian Zhang,
Mark Carpenter,
Michael Windle
In programming for interactive SAS Internet services, there are two important issues that programmers have to deal with. One is dynamically passing the parameters from web page to SAS program; anther is the validation of the input values. SAS macro programming can handle the first one very well. However, for the validation issue, although it can be accomplished by SAS/INTRNET solely, the programming in other languages can be easier and more efficient. By taking a practical example of an interactive SAS/INTRNET application, the Online Clinical Trial Randomization List Generator, we demonstrate the methods and skills of how to use SAS macro programs to handle the parameter passing dynamically, and how to integrate ASP and JavaScript with SAS/INTRNET tasks to make the programming simple and enhance the performance efficiency of the SAS/INTRNET applications. Keywords: SAS/INTRNET, ASP, JavaScript, clinical trial, randomization, dynamic, efficiency sample size, sample, randomization, clinical trial, macro variable, data cleaning, macro loop, proc step, macro definition 6
7 A Hacker's Guide to SAS Environment Customization Brian P. Fairfield-Carter Most SAS users have at least a few customizations and personalizations they like to make to their SAS environments. Real hackers, naturally, like to explore the extremes to which these customizations can be taken, mostly to shroud themselves in mystery, but partly to try and discover practical and useful tricks and tools. In this spirit, five customizations as presented here: 1. A small dynamic HTML application t hat makes copies of your user profile, and sets configuration option "- SASUSER" to point to a free copy each time a new SAS session is launched (allowing multiple concurrent sessions to all support the same preferences and options) 2. A SAS enhanced editor button configured to plug me ta-data into a PROC REPORT "code template" 3. Using the SAS enhanced editor to write and test pr ograms in 'foreign languages' (in both interpreted and compiled environments) 4. Dynamically setting the "-SASINI TIALFOLDER" configuration option 5 proc report, proc step, txt 12
8 A Hands-on Introduction to SAS 9.1.3 ODS Brian C. Shilling sas output, excel, proc step, proc template 5
9 A Log File Parser that Creates Data Mappings John W. Kaye In the validation process it is sometimes necessary to track the number of observations throughout a program to determine if any observations are lost incorrectly, such as from a faulty MERGE operation. Other times, it is beneficial to track where the data for certain datasets originated. The author has written a parser that can read log files of any SAS program. From keywords in the log file it will output tree structures of dataset relationships hierarchically, the origin of these datasets, and the number of observations from parent datasets. This information can be determined by locating the observation counts in the log file and the relative position of their occurrence. This program will work on any SAS created log file for a plurality of different applications and platforms data step, sas log, data cleaning, proc sql 3
10 A Macro To Generate a Study Report Hany Aboutaleb Imagine that you are working on a study (project) and you would like to generate a report for the status of all or designated .lst files in the input directory, and print number of pages designated of each table or listing in these directory. The SAS system and SAS/MACRO will help you process the studyrpt.sas macro to report the status of all designated .lst files in the input directory, print one or more pages of each *.lst file, and create a batch file to run all the programs overnight macro variable, sas output 10
11 A Macro to Keep Titles and Footnotes in One Place John Morrill A large project with titles and footnotes in each separate program can be cumbersome to maintain. Consistency can be a problem and last minute changes require altering each program . This paper describes a method of collecting titles and footnotes into a single file and accessing these with a simple macro call. The complete macro is presented and explained with discussion also touching on possible enhancements as well as negatives and usage notes. T he ease of use of this macro (which has at most one parameter) makes this paper appropriate for beginners while the convenience of the macro makes it worthy of consideration for all levels of SAS users macro call, macro variable 5
12 A Microsoft Word Macro for Post-Processing ODS RTF Files Susan Parker ODS RTF uses the document header and footer areas for titles and footnotes, respectively. In the pharmaceutical world, Medical Writing may need these areas for headers and footers in a larger document, such as a Clinical Study Report, where SAS output is only a section or appendix. This macro moves the SAS titles and footers from the document header and footer areas into the body of the document proc report, proc step 2
13 A SAS Application for Analyzing Quality of Life data: NCIC-CTG Standard Method Don (Dongguang) Li The Health-Related Quality of Life (HRQOL) measurements have been frequently applied in clinical trials of chronic diseases (such as cancers). There are many measurem ent tools of HRQOL questionnaires and diverse statistical analysis methods accordingly, which make the analysis of HRQOL data rather complicated and hard to be standardized. This article provides a SAS macro appli cation based on the standard method of HRQOL data analysis of the National Cancer Instit ute - Clinical Trials Group (NCIN-CTG) [1] The program integrates data manipulation, statistical analyses and reports generation processes. It can ca lculate HRQOL domains from different measurement tools, determine visi t/cycle through predefined time windows and summarize the HRQOL domains' response rates data science, clinical trial, macro definition, sas programming 5
14 A SAS Macro for Generating Informative Cumulative/Point-wise Bar Charts Bar Charts Xuejing Mao Bar charts are one of the most commonly used graphical tools for exploring categorical data. While the charts in different studies may differ in details, they are generated in essentially the same way. This paper describes a multi-purpose SAS macro that can generate "customized" bar charts automatically thereby eliminate unnecessary code writing. Specifically, this macro can generate cumulative or point-wise bar charts depending on the users' requirements, automatically generate proper subtitles, footnotes, legends indicating significance across treatment groups at each time point, as well as the proper scale for the axes. Furthermore, if the statistical test indicates significant differences among more than two treatment groups, the macro will automatically generate another bar chart for the two groups with the lowest pairwise p-value. The macro is easy to use and rich in functionality bar chart, sample, macro definition, macro call 5
15 A SAS Program that Automatically Generates Listings Liz Taylor,
Chadds Ford
Generating Listings for a Clinical Study Report is a fairly straightforward process . In most cases the program s are simple - consisting primarily of a PROC REPORT statement, a Column statement and a Define statement for each variable. However, a considerable amount of time can be expended deciding on which variables will be included in the Listing, the Column Width, and the Column Heading. Using a SAS Program to generate these statements automatically can significantly reduce the amount of time required to write these programs proc report, proc step 5
16 A Simple Solution for Managing the Validation of SAS Programs That Support Regulatory Submissions Tony Chang,
Dana Soloff
Managing the testing and validation of SAS programs that produce deliverables for regulatory submissions can be a daunting task. In the pharmaceutical industry, the life cycle for a program can be as short as 15 minutes, as iterative changes are made, and SAS programs are retested and released under tight time pressures. Consequently, keeping track of the testing status for all SAS programs for a clinical study is a challenge that many companies face. However, most of the commercially available tracking software for tracking this information is too burdensome and inefficient to use in such a rapid-paced production environment. The PI Manager is a Java application we have developed that easily and automatically tracks the progress of testing and validation for all SAS programs used for the reporting of a clinical trial. It uses an MS EXCEL spreadsheet to contain information about all SAS programs and their validation status. The application provides the following functions to improve the efficiency and quality of SAS program testing and validation process: 1. The PI Manager automatically updates the last modification date and time of each SAS program and its validation documentation based on system dates and times. 2. It automatically creates hyperlinks to SAS programs, their outputs, their source data sets, and all testing programs and validation documents associated with each SAS program. 3. It retrieves the overall testing result (Pass/Fail) from individual testing documents and updates the worksheet based on this status. 4. It identifies programs that require retesting due to modifications made since the last testing was done. 5. It summarizes the overall programming status for the study by providing the total number of programs and the number and percent of the programs that have been through testing, that have passed or failed, and that require retesting due to modification. data cleaning, clinical trial, excel, regulatory submission, pharmaceutical industry, validation documentation 6
17 A Simple, Inexpensive Solution to the Dilemma of SAS Training Erin M. Christen Finding a way to provide SAS training is a dilemma that every company faces. Almost without exception, the value of training is recognized. Balanced against the total cost of the training itself, the lost time to the company and the need to provide company specific training, SAS training is often deemed 'not in the budget'. This is particularly common in smaller companies. The best solution to this dilemma is one that has minimal cost and minimal impact on employee time. Finding such a solution requires considering options other than the standard trainer-led classes and/or online training modules. For us, that best solution was in the form of emails! On a regular basis, a SAS Technique is delivered to every employee in the Statistical/Programming team by way of email. The advantages of this form of training, as well as how to implement the same training within your programming team will be discussed in the paper proc freq, data cleaning 4
18 A Single SAS Macro for Range Checking an Entire Database Kim Truett The comprehensive review of a database should include verification that numeric variables are within a predefined range of acceptable values. Outliers should be flagged, queried and resolved - or at the very least - documented. Creating code to check ranges for each variable independently and printing the appropriate outliers is not difficult. Adding code which considers whether the variable can be missing or whether the presence or absence of a value is based on a previous question (skip patterns) is also not complicated. However, this process creates extensive code that is not easily validated or reused. This paper presents a generic macro that accounts for missing values and skip patterns and allows for multiple reporting possibilities. The macro identifies all outliers across multiple datasets, reports the actual value and the acceptable range of the variable and exports all information to a separate database for tracking and reporting outlier, macro variable 7
19 A Switchboard as A Information Kit for Programmers and Statisticians Rubin Nan This paper describes an idea that uses MS Office-embedded Visual Basic (VB) tools to create a Graphical User Interface (GUI). Using this interface as a switchboard, users can not only include command buttons to drive the SAS session or SAS programs but also connect to project directories, documents, forms, on-line help, etc. Hence, such a tool will be very useful for a project-based group because it reduces time and improves information flow within the project work group. To clarify our description, we use several simple examples to demonstrate how to create such a switchboard, to setup component properties, and to write the VB and SAS code to implement the tasks macro variable, macro definition 4
20 A Technique for Producing Sorted Columns with a Hanging First Line Using PROC REPORT David C. Izard,
David C. Chen
SAS' PROC REPORT does an excellent job allowing you to sort columns, order columns and even keep repeated values of columns from printing unnecessarily when organized in a vertical format. One challenge, however, is to "convince" PROC REPORT to work effectively with multiple variables appearing in a single column while still maintaining the identity of the original data. This paper discusses how you can influence SAS to produce a section of text with what appears to be a hanging first line, also known as an out-dented first line, and a business situation for using this technique effectively to present adverse event data in a coherent fashion. Business Case A common report requested in the Pharmaceutical arena is a listing of adverse events adverse events, proc report, proc step, out= 6
21 Access to SAS Data Using the Integrated Object Model (IOM) in Version 9.1 Frederick E. Pratter SAS 9.1 Integration Technologies provides a complex set of APIs (Application Programming Interfaces) for access to SAS data from various Microsoft environments (COM, DCOM and .NET) as well as J2SE and J2EE for Java developers. This paper presents an overview of the Integrated Object Model available in SAS Integrated Technologies and suggests further resources for programmers who wish to integrate SAS with Windows clients using Microsoft Office and ASP, Visual Basic or C++ with the .NET framework sas management console, sas enterprise guide, sas log, sas output, proc step 18
22 Advance Tips for Manipulating Data in commonly used SAS Procedures Raj Suligavi,
Jyotheeswar N Yellanki
As a SAS programmer one is overwhelmed by the sheer size of the SAS options provided. It's not only easy to finish your task but to complete we must also think is this the only or the best efficient way to do. So as an expert programmer one always thinks of efficient methods to code and apply successfully. With these scenarios in the background I'm discussing few tips as an advanced SAS programmer that one stumbles in the job scenarios ; While working with large number of variables, is it r eally efficient to use DROP and KEEP variables? If so, which one is preferred? How a DATA STEP statement works? How set option fa cilitates the dat a step? How to use ABORT and STOP statement in DATA STEP. What's the best way to subset data - IF and/or Where statement? Demoed by use of some PROC statements. Is it possible to make PROC steps more efficient? This paper should help beginners and intermediate programmers to make more informed decisions proc step, proc report, put statement, proc sql, abort, stop, sas log, list input, where statement, dataset, options statement, data step, input statement, proc print, set statement, proc sort, substr function, sas programmer, variable list, sas output, character functions 11
23 Advanced Array Applications in Clinical Data Manipulation Zaizai Lu,
David Shen
Dealing with a single variable is all well and good, but there comes a time when you have to deal with a big list of variables. That's where array comes in. Array in SAS allows you to group a bunch of variables for the same process. The huge block of the repetitious statements and redundant calculation codes can be reduced to just a few lines. With arrays you can simplify the coding in many cases. Sometimes, arrays can even accomplish tasks which are not easily done with other methods. Array, besides its iterative and conditional processing, can be very powerful. This paper introduces some advanced array applications in data manipulations from data search, count consecutive days, LOCF, find and replace, shift, leading to a more complicated efficient process. These array applications will be presented with ten practical examples. The purpose is to explore new applications of arrays over alternative strategies adverse events, do loop, last observation carried forward 9
24 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 detailsof two macro masking functions: %Str and %NRStr. Basic concepts for this paper are: 1) the map of the SAS Supervisor 2) Tokens flowingthrough the parts of the system 3) parts of the map monitor tokens as they pass through 4) the idea of SAS tokens as rule triggers for actionsto be taken by parts of the map and 5) macro masking prevents the triggering of rules. Figure 1 is a map of the SAS system the SASSupervisor. It is suggested that this map is a very useful paradigm for understanding the SAS system. Boxes on the above map are eithersubroutines or storage areas and tokens flow through the components of the supervisor as SAS processes programs.INTRODUCTIONThis paper builds on material from a NESUG presentation titled "An Animated Guide: The Map of the SAS Macro Facility" symbol table, macro variable, macro quoting function, macro catalog, macro trigger, &variable, macro put, macro facility, proc print, proc step, sas base, macro definition, dataset, macro call, txt, macro loop, %if-%then-%else, macro function 13
25 An Approach Finding the Right Tolerance Level for Clinical Data Acceptance Karen Walker Highly broadcasted zero tolerance initiatives for data base error involving clinical trials are discussed ad infinitum among pharmaceutical research executives. Their cause is construed as 100% audit of efficacy variables and serious adverse events to prove the quality of the data used in the clin ical trial is good. For some clinical trials studies databases are too large to perform an audit of all the efficacy and safety variables. Therefore, an audit pr oving a large database acceptable wi thout a structured approach may be dubious at best. For instances such as this, it is r easonable to employ a systematic approach for finding the right level of tolerance for clinical data acceptance. This approach must test the following markers: tolerance limit, error rate, edit checks, manual review , sample sizes, and rank of sampling schemes; given the tolerance limit is the amount of meaningful data communicated properly sample, inferential statistics, clinical data, clinical trial, data validation rules, normal distribution, proc calis, type ii error, clinical database, sample size, raw data, clinical data management, null hypothesis, data governance, adverse events, proc sql 6
26 An Automated Reporting Application for Safety Sciences Fang Dong Pharmaceutical companies are required to conduct safety studies on new drugs before proceeding to human clinical trials. Scientists make de cisions about the safety of a new drug based on these study data reports. Scientists or statisticians compile many of these reports manually, using statistics generated from SAS or a data management system such as XYBion . We have developed a SAS based, automated reporting system to improve the efficiency and accuracy of the safety study reports. In this paper, we will discuss the development process, including the development techniques and tools used in the design, development, and implementation of the application. We will discuss both the process solution and technical solution and offer some insight on how to integrate the two aspects in any application development. The application is developed on the Windows NT Server using CITRIX Metaframe technology sample, extract, macro loop, %if-%then-%else, sas base, dataset, data science, macro definition 9
27 An Interactive Application to Document, Check Syntax And Run SAS Macros Eugene Yeh This application helps programmers learn and use SAS macro definitions in a more efficient and structured manner than reading text from the macro program header. From one master file, the macro developer customizes one application file to each SAS macro, by defining each macro parameter and its attributes (e.g. mandatory/optional, default value …etc.). Then it's used by any programmer to view the documentation associated with each macro parameter, input its value and verify the validity of all entered values. A warning list of potential problems is immediately displayed (e.g. invalid numeric value where a numeric value is expected, embedded comma …etc.). Thus, this application identifies the exact source of potential errors prior to submitting the macro. The application writes out the complete SAS code to execute the macro, which can be cut and pasted into any program. It can also launch a SAS session and directly submit the macro macro parameter, macro definition, macro variable, excel, sas log 12
28 An Introduction to ODS for Statistical Graphics in SAS 9.1 Robert N. Rodriguez In SAS 9.1, over two dozen SAS/ST A T and SAS/ETS procedures have been modified to use an experimen- tal extension to the Output Delivery System (ODS) that enables them to create statistical graphics as auto- matically as tables are currently created. This extension, referred to as ODS for Statistical Graphics (ODS Graphics for short ), provides commonly used displays, including scatter plots, histograms, box-and-whisker plots, and contour plots, in ODS output. Many ODS features for tables, such as destination statements, apply equally to graphics. ODS styles control the appearance and consistency of all graphs, whereas ODS templates control the layout and details of individual graphs. This paper introduces statistical users and other SAS programmers to ODS Graphics. Examples illustrate basic functionality , which requires minimal syntax, and typical graph management tasks. Familiarity with ODS for tables is assumed output delivery system, graph template language, ods graphics, qq plot, proc step, proc mixed, scatter plot, proc sgplot, histogram, logistic distribution, regression analysis, box plot, proc template, proc reg, proc ucm 27
29 An Introduction to Regular Expressions with Examples from Clinical Data Richard F. Pless,
Highland Park
Programmers frequently encounter problems when data are collected in "free text" fields. This situation may result from ill- conceived data collection methods or possibly the realization that comment fields contain valuable information. In either case, this loosely structured data may contain valuable insights if it can be converted into a usable format. This paper discusses how to use the new Perl regular expression functions available in SAS Version 9 for cleaning text fields and extracting information. Elementary regular expression syntax will be covered as will the functions PRXPARSE, PRXMATCH, PRXCHANGE, and PRXPOSN. Examples from clinical data will be used prxparse, sample, adverse events, prxposn, character variable 8
30 Analyze Group-randomized Trial Data with Binary Outcome Using Weighted Paired t-test: A SAS Macro Don (Dongguang) Li Group (previously also called 'cluster', will use 'group' in this article) - randomized design is an important method widely used in clinical trials and trials of public health research. Design with binary outcome is a specific type of group-randomized trials. Using the weighted paired t-test approach raised by Donner and Donald (1987), a SAS macro-based program for a flexible data analysis is developed. The program accommodates the options such as number of groups, actual condition of intra-group correlation, data transformation method and test adjusting when number of groups is small. The algorism of the method is introduced. An example with unpublished data is provided. This SAS macro has been validated and is very easy to use logistic distribution, paired t-test, macro definition, degrees of freedom, correlation, macro parameter, randomization 5
31 Analyzing and Displaying Study Data in Clinical Trials Made Easy Denise J. Smith Background: Quality of Life (QOL) research is becoming an increasingly integral part of oncology clinical trials. The inclusion of QOL endpoints provides an added uniqueness affecting analytical approaches and presentation of results. Objectives: We use North Central Cancer Treatment Group (NCCTG) oncology clinical trials design to provide examples of analysis techniques and demonstrate macros written to provide unique graphics for easily displaying patient and study outcomes. Methods: SAS macros have been developed for use in SAS v6 and higher to score QOL assessments, aid in the display of longitudinal data and provide summary statistics for study endpoints macro call, change from baseline, treatment arm, correlation, proc means, clinical trial, in=, bar chart, proc freq, proc univariate, adverse events 15
32 Analyzing Clinical Drug Utilization Jianming He,
Brian Griffin
This paper d iscusses several core pr ogramming issues in identifying and reporting clinical drug utilization pattern by using SAS pr ogramming l anguage. T he m ost concer ned t opics for drug thera py, l ike drug switching, con comitance, complia nce of th erapy etc, are discusse d in detail. It la ys out the frame work to complete the study s uccessfully. We will i ntroduce a to ol of SAS dru g intel ligence, which me ets both technical and non-technical business analysts' needs. A sample code performed on a mock up dataset is listed for reference sample, lag function, proc step 10
33 Applications for Running DOS Commands within SAS Na Li Using the X statement in SAS to issue DOS commands and initiate other Windows applications can be very useful and efficient in managing, comparing and scheduling SAS programs and setting data set and program permission attributes. This paper details some application examples for programmatically copying programs from one directory to another, creating directories based on the contents of the data, scheduling programs to execute in sequence, comparing programs between directories, and setting up read/write permissions. The advantages of using the X statement and some usage considerations are also discussed txt, excel, macro variable 5
34 Assessing Within- and Between-Subject Effects with Correlated Clinical Data Marla J. Husnik,
Eugene Huang,
Grant Colfax
Various statistical methods can be used to analyze correlated data from a clinical study. At baseline of the EXPLORE study, a multi-site HIV prevention clinical trial conducted in the U.S., data from the most recent sexual episode with up to three of the most recent partners were collected. We were interested in the relationship between substance use and risky sexual behavior. To address the within-individual effects, we first used non-linear mixed models (PROC NLMIX) and found computational difficulties. Then, we used conditional logistic regression (PROC PHREG) for the within-individual effects, and generalized estimating equations (PROC GENMOD) for the between-individual effects. In this paper, we show examples of these techniques using SAS and compare the methods conditional logistic regression, logistic distribution, logistic regression, proc step, regression analysis, proc mixed, proc genmod, proc phreg, generalized estimating equations, binary variable, sas syntax, correlation, binomial distribution, proc freq, macro definition 10
35 Assigning Treatment Group in Cross-over Studies: A Practical Approach Charles Ling,
Shulin Yuan
Cross-over studies in clinical studies are always complicated but are manageable when certain key variables are generated and merged with related data sets to assign correct treatment groups. With a brief introduction of cross-over studies, this paper demonstrates methods and ideas of how to assign treatment groups based on the raw treatment code data set, with the help of a new variable called periods (one of the key variables to assign treatment groups correctly). Once key variables, treatment group and period, are created, new data sets can be merged with the help of these key variables. Listings and tables can be generated based on these newly created treatment groups. However, AE (adverse events) counts are another issue statistical programmers are facing. The second part of this paper clearly introduces steps of how to select AE counts before the dosage, during the wash-out period and after the last dosage, with SAS code, which is ready to apply crossover study, clinical trial 3
36 Automated Excel-lent Validation Janet E. Stuelpner During the clinical trials process, the raw data is entered into a database, cleansed, manipulated and then analyzed. Prior to tables and listings, analysis datasets are created that include both raw data and derived data. A great deal of documentation is required to make sure that all of the algorithms are specified and implemented correctly. Most often, the documentation for these analysis datasets is in the form of an e xcel spreadsheet that states the variable names, labels, variable type, length of value, algorithm for derivation, dataset of origination, whether the variable is raw data or derived, etc. Once the data specifications are complete, the analysis dataset is created. At this point, before further manipulation takes place, there must be a validation process to insure that the data is correct and reliable. This paper shows an automated method to compare the EXCEL spreadsheet that contains the data specifications and compares it to the actual analysis dataset adam dataset, proc step, adverse events, dataset, excel, proc sql, raw data, data cleaning, proc compare, label statement, length statement, macro variable, cdisc 9
37 Automatic Parameter Checking Greg Silva Much of applications development involving the SAS system involves macros. The most useful are parameter driven. By giving the user choices, the power of the application can be greatly extended. The problem for the developer is keeping track of the parameters and their acceptable values. This paper will show that by using standards parts of the SAS system and developing standard naming conventions, the developer can be relieved of the burden of checking parameters macro parameter, macro variable, macro definition, %if-%then-%else 4
38 Benefits of Validating SAS Systems in a Regulated Environment Sy J. Truong Validating a new version of SAS on a production server used to be a daunting task. The SAS System version 9.1.3 ships with user friendly installation qualification tools. This is coupled with existing tools that make it easier to validate SAS. Besides qualifying the installation, there are other tasks and components of the system that need to be validated or verified. Some of these components include: 1. Backward compatibility issues with older versions of datasets and format catalogs. 2. Validating multi use macros and standardized code templates. 3. Verifying stand alone or project specific programming and output. 4. Affects on standard operating procedures and programming practices. The interconnectedness of the SAS computing environment does require considerable efforts in validating a SAS System. However, if this is executed successfully, it can allow for greater traceability between output, programs and source data data cleaning, audit trail 8
39 Building Dynamic Informats and Formats Michael Zhang Using the FORMAT procedure to define informats and formats is a common task in SAS programming. This paper reviews two existing ways of defining dynamic informats and formats before introducing a new and more flexible proc format, macro variable, proc step, character variable, dataset 8
40 Calculating Posterior Probability of the Maximum Contrast Using PROC IML Akira Wakana,
Isao Yoshimura,
Chikuma Hamada
In this paper SAS code for evaluating posterior probabilities when se lecting a dose-response pattern from a set of candidate response patterns using contrast statistics in analyzing a phase II clinic al trial is introduced. A method for selecting a response pattern with evaluation of the posterior probability that the specified response pattern is the true one has been considered. It is possible to evaluate the posterior probability by numerical integration based on either a multivariate t-distribution for a cont inuous variable or a multivariate normal distribution for a binary variable with large sample size. SAS code was developed using the 'quad' function in PROC IML. The method was illustrated on two datasets posterior probability, proc iml, clinical trial, binary variable, interval variable, phase ii, proc step, sample, sample size, dose 6
41 CDISC for electronic submissions - A Table Translation Program John H. Adams,
Boehringer Ingelheim
This paper outlines a SAS program that automatically translates a pharmaceutical company's data to the CDISC submissions data standards (SDS) model format for FDA e-submissions. The program was added as a new function, called CDISCDOMAIN, to the XPDL system. A paper by John Adams, 'XPDL - An Extensible Project Database Loading and Table Translation Program', was previously presented at the NeSug 2003 and PharmaSUG 2003 conferences . The new CDISCDOMAIN macro program , along with another XPDL function, can easily translate one or more sources of data into a CDISC standard domain. So no matter what your current data format structure or format is, you can quickly translate it into the CDISC format, without programming resources! Generic templates for each CDISC domain were developed to reflect the SDS model. In their pure form, they contain the metadata that represents the CDISC requirements sample, excel, raw data, cdisc 15
42 Comparison of Techniques for XML and RTF Tables Linda Collins Easily interpretable statistical summary tables are important for communicating results of clinical trials. These tables typically contain simple statistics that must be obtained from more than one SAS procedure. Consequently, statistical programmers write specialized macros for obtaining appropriate statistics and then formatting those statistics into a table suitable for publication in a document. It is common for SAS programs to produce ASCII text files, with additional steps needed to incorporate this output into a larger document. Collectively this is a very labor intensive process We discuss a method of constructing tables with statistical information in two steps: (1) creation of a statistical results file with the needed statistics from SAS procedures, and (2) formatting the statistical analysis file into a table for incorporation into a document processing system using two different markup systems - rtf and xml proc step, proc report, ods rtf, proc template, output delivery system, macro variable, proc tabulate, ods xml, clinical trial, data science 15
43 Consistent Variables + Consistent Checks = Cleaner Data Greg Silva Data cleaning is one of the most important functions of a Biometrics group. Without clean data, programs have to be written defensibly, analysis cannot be completed correctly and deadlines are missed. This paper will outline a case for standardizing variable names across studies. Once names are consistent, then a method for standardizing checks using a set of SAS macro will be presented data cleaning, data validation rules 5
44 Constructing Stack Tables With Proc Report and ODS RTF Lei Zhang As a composite table, a stack table is made up of a variable number of child tables that are placed one on top of another with the same width but differ ent heights . Un like a regular table that has a fixed number of columns throughout its rows, a typical stack table allows its child tables to have their own number of columns and headers and each can vary its format and style independently of the other(s). This gives a great freedom to data presentation that a regular table just cannot meet or beat even with complicated spanning and sizing techniques. Stack tables are frequently used in clinical study analysis and reporting because of their effective appeal ing presentations of various data derived from different sources. However, PROC REPORT, as a powerful and versatile reporting tool in the SAS system, only produce s regular tables; therefore, stack tables are usually implemented with lengthy and cryptic DAT A NULL step (s) proc report, proc step, proc template, clinical trial, change from baseline, anova, csr, sample, treatment period 11
45 Create Your Customized Case Report Form (CRF) Tracking System Tikiri B. Karunasundera A case report form (CRF) tracking system helps ensure all required CRFs are collected. The system may also be useful in determining which monitors or sites are having trouble completing or collecting the CRFs in a timely manner. The expected CRFs projected for each site by the tracking system may be used to help schedule the frequency and duration of monitor site visits. Some data management systems do not have CRF tracking modules or the existing modules do not provide adequate flexibility for all types of trials. A contract research organization (CRO) must have a flexible CRF tracking system for their varying sponsor and protocol demands. This paper presents an example of a CRF tracking system using CRF data in SAS datasets. To keep the program simple, it has not been generalized for all situations. randomization, study day, proc sort 9
46 Creating Efficient SQL - The De-normalize Transpose Paul D. Sherman Normalization and warehousing are battle cries of two waring factions. Although vertical or row-wise designs ultimately minimize storage access and retrieval time, the law of the relational model precludes simultaneous access from more than one table row. Quite often, we desire knowledge of two variables for the same aggregate observation, when performing high level arithmetic or reporting spreadsheet like tablature. This article presents an efficient query method for turning rows into columns at SQL run time, which farmer Jack uses for his bean quality audit policy, and discusses some finer points which make the transposition process database system independent left join, inner join, create table, key, normalization, sample, proc sql, data step 14
47 Creating Flexible Graphics with Data step Graphics Interface (DSGI) Hui-Ping Chen SAS PROC (procedure) is not the only vehicle for creating graphics. DATA STEP Graphics Interface (DSGI) combines the functions of GSLIDE, GREPLAY, and Annotate facility and enables you to generate graphic output within DATA STEP; not only can DSGI generate graphics faster than Annotate facility, but it also provide more flexibility than GSLIDE and GREPLAY, while working on customized graphics txt, proc step 8
48 Creating HTML Output with Output Delivery System Kirk Paul Lafler Are you looking for ways to improve the way your SAS output appears? The SAS Output Delivery System (ODS) can help turn tired -looking output into great looking information with a purpose. O utput delivery has entered a new age with ODS by taking advantage of font characteristics, color, a variety of output layouts, and many other features. This paper illustrates essential coding techniques associated with creating HTML output using ODS ods html, sas output, output delivery system, proc univariate, ods pdf 6
49 Data Mining Medication Prescriptions for a Representative National Sample Patricia B. Cerrito,
Antonio Badia,
John C. Cerrito
It is the purpose of this paper to examine how medications are prescribed to individuals in combination for one or multiple medical conditions, and to explore the use of such medications. The Agency for Healthcare Research and Quality yearly conducts the Medical Expenditure Panel Survey and makes the results available for research purposes. The latest survey released in February, 2004 was for the year 2001. Each medication prescribed to a particular individual is listed; each observation represents a different medication. The first step in the analysis is to combine all medications into one text string by patient. The text string preserves the linkages between drugs for any one individual. Next, SAS Text Miner is used to clusters the results into meaningful categories. Concept links that are available in Text Miner are also used to examine relationships between medications neural network, dataset 13
50 Data Transfer from Microsoft Access to SAS Made Easy Zaizai Lu To transfer data from Microsoft Access database to SAS has never been easy. Unlike Oracle database, neither SAS PROC SQL pass-through facility nor SAS/ACCESS can directly view or retrieve data from Access database tables. Users have to undergo a very complicated process in order to import data from Access without the help of additional software. This paper proposes an easy way to extract data from Access without any other additional cost. It is quick and automatic. Keywords Data Transfer MS Access proc import, proc step, dataset, proc sql 5
51 De Morgan's Laws Revisited: To Be AND/OR NOT To Be Raoul A. Bernal,
Thousand Oaks
De Morgan's Laws, named for the nineteenth century British mathematician and logician Augustus De Morgan (1806- 1871), are powerful rules of Boolean algebra and set theory that relate the three basic set operations (union, intersection and complement) to each other. If A and B are subsets of a universal set U, de Morgan's laws state that clinical sas, statistical programmer 4
52 Designing Helpful Audit Trails John Gorden Designing and maintaining audit trails can be difficult and time consuming. But with some planning they can also supply a wealth of useful information. By following a few simple guidelines and targeting the information that is important to you, audit trails can provide feedback about your projects and processes that you can use to improve quality and efficiency audit trail, data science 6
53 Developing Varargs Macros For Integrated Clinical Study Analysis and Reporting Lei Zhang,
George Li
A macro that can take more or less arguments when it is called than formally specified is often referred t o as a varargs macro. SAS macro language support s the development of varargs macro s because of its simplicity and flexibility in macro programming . The goal of this paper is to describe how to develop SAS varargs macros with three different approache s. It first explain s how to create and use a typical SAS varargs macro. Then it examines two alternative methods for constructing a SAS varargs macro . The pros and cons of three approaches are discussed . Some special issues with SAS varargs macros are further explored. Numerous examples are presented to illustrate how to make the best use of SAS varargs macros in integrated clinical study analysis and reporting macro definition, keyword parameter, %macro parameters, clinical trial, macro variable, macro facility, macro call, macro parameter, macro function 10
54 Don't Stay up Late Completing your Late-Phase Analysis! Kathleen Kushner More and more late-phase and post-marketing commitment studies are being performed to ensure subject safety on products released into the market. These programs require strategies different than typical clinical trials on everything from site management to data collection. The impact of such unique strategies can be considerable on the analysis phase of these projects. Methods of data collection and cleaning are significantly different to "typical" early phase studies. Knowing the differences and planning strategies on how to handle their impact is vital to the success of post-marketing studies. This paper will discuss the differences in these types of projects; highlight the impact on analysis and emphasize how SAS code can be used to handle the innate challenges of late-phase and post-marketing commitment studies adverse events, missing value 8
55 Everything You Always Wanted to Know About Fuzzy Merges But Were Afraid to Ask - A Guide to Merging Datasets with Non-Exact Keys Using SAS Proc SQL Robert W. Graebner Most of us are familiar with merging SAS datasets that have one or more common variables that have exact matching values in each of the files. There are situations however, such as when merging treatment code with treatment-emergent adverse events, where not all of the key variables needed in the merge will have exact matches. Typically, each treatment-emergent adverse event must be matched with a row from the treatment dataset that contains the most recent treatment for that subject. Because this type of merge involves non-exact matches, they are often referred to as fuzzy merges. This paper provides a step by step guide to how PROC SQL performs a merge and how the features of SQL can be used to perform fuzzy merges adverse events, proc sql, proc step, where statement, data merging, group by, treatment-emergent adverse event, create table, trial elements 4
56 Exploring DICTIONARY Tables and Views Kirk Paul Lafler SAS users can quickly and conveniently obtain useful information about their SAS session with a number of read - only SAS d ata views called DICTIONARY tables or DICTIONARY views . At any time during a SAS session , information about currently defined system options, libnames, table names, column names and attributes, formats, indexes, and more can be accessed and captured . This paper will explore the purpose of DICTIONARY tables and views, how they are accessed , and what information is available to SAS users. Attendees will learn how these important tables and views can be applied using real-world code examples dictionary tables, proc sql, sas library, options statement, proc step 6
57 Extending the SAS Environment with Trellis Graphics Chris Thornton The value of effective visual communication of clinical results is now widely recognized, and this is driving adoption of more advanced graphical methods within the clinical data analysis arena. The majority of clinical data analyses in the production environment are performed using SAS software and this is centered on producing basic graphs, tables and listings. S-PLUS has long been recognized as an environment that provides powerful graphical methods, including the unique Trellis TM graphics. As a complement to the existing SAS environment, Insightful has developed the S-PLUS Clinical Pack for SAS Software Users. This solution enables the easy integration of powerful S-PLUS graphics within the SAS environment. This poster demonstrates how a SAS programmer can use the S-PLUS Clinical Pack to easily integrate Trellis graphics, customize these graphics, an d create drill-down S-PLUS Graphlets with meta-data, all from within the SAS environment clinical data, macro definition, csr, clinical trial, sas programmer, ods html, scatter plot, regression analysis, box plot 7
58 Generating Customized Analytical Reports from SAS Procedure Output Brinda Bhaskar,
Kennan Murray
SAS has many powerful features, including ODS, macro facilities, the REPORT and TRANSPOSE procedures, and variable information functions that can be used to enhance reports displaying results from statistical analyses. It is often necessary to create tables providing summary statistics, including frequencies, percents, means, standard deviations, and p-values, for populations or comparison groups. We have developed macro programs that calculate these statistics and output results directly into customized tables in MS Word. The macros use DATA STEP processing and the FREQ, TTEST, and TRANSPOSE procedures to obtain summary statistics. Variable labels and categories are obtained directly from the data using variable information functions. Tables are generated using ODS that concisely summarize key information directly from SAS output, which saves time and avoids errors associated with manual table creation predictor variable, response variable, proc step, standard deviation, create table, label statement, proc freq, macro variable, bivariate analysis, nominal variable, proc means, proc report, macro definition 9
59 Generating Microsoft Word Macros that Automate the Organization and Maintenance of SAS Tables, Listings and Figures Liz Taylor Generally, a great deal of time and effort is expended using SAS to generate Tables, Listings and Figures for a Clinical Study Report. Timelines are usually based only upon th e development process and little thought is given to the time and effort required to organize and maintain the Microsoft Word Documents in which the T ables, Listings and Figures are stored. Depending upon the size of the study and the number of Tables, Listings and Figures, this can represent a significant amount of time . Microsoft Word Macros are a good tool to help organize and maintain these document s macro definition, sas output 8
60 Get Experience with New SAS Drug Development Software Dana Rafiee Attendees will get hands on experience with SAS Institute's new, popular Drug Development Software (SDD). The workshop will cover how this software changes the drug development process, including data management, analysis and FDA Reporting clinical research, data governance 5
61 How is Outsourcing Going to Affect SAS Programming? Thu-Thuy Truong,
Sy J. Truong
Globalization is the reality of doing business in today's economic environment. SAS programmers and organizations that use SAS who choose to ignore it will face extinction. Outsourcing has had a significant effect on many industries dealing with information technologies. Knowledge workers face the same challenges now as manufacturing workers faced in previous decades. This paper will give you insights into offshore outsourcing as it pertains to SAS and provide strategies on how to navigate and work within this environment. Some of the topics discussed include: ? Pros and Cons of outsourcing SAS related programming ? Types of SAS programming within the Pharmaceutical industry that will be outsourced ? Strategies on successfully managing a local team while outsourcing SAS projects Outsourcing is not a new phenomenon but rather another step in the evolution of doing business in a technology driven global economy data cleaning, crf 7
62 How SAS Thinks Neil H. Howard The DATA STEP is the most powerful tool in the SAS system. Understanding the internals of DATA STEP processing, what is happening and why, is crucial in mastering code and output. Concepts covered: Logical Program Data Vector (LPDV or PDV), automatic SAS variables and how they are used, the importance of understanding the internals of DATA STEP processing, what happens at program compile time, what's happening at execution time, how variable attributes are captured and stored, and * handling processing defaults, data conversions, and missing values. This workshop focuses on techniques that capitalize on the power of the DATA STEP and working with (and around) the default actions. By understanding DATA STEP processing, you can debug your programs and interpret your results with confidence dataset, missing value, proc step, automatic variable, retain, input statement, set statement, by group processing, merge statement, proc print, proc contents, character functions 20
63 How To Get Ten Pounds Of Data Into A Five Pound Can - Using Flyover Technique In HTML Output Daniel K. Downing When delivering results today, it is more and more common that delivering the output to the screen will be a requirement. Without getting into issues of font size or page orientation, there is generally about one third less horizontal space to work with between a screen and a hardcopy document. However, there is an easy to use technique available that allows for the presentation of more data to the user without requiring them to scroll back and forth. This paper is a guide through the processes necessary to convert static hardcopy output from PROC PRINT to the more flexible PROC REPORT, use flyovers to present descriptive information, thereby reducing the screen real estate consumed, and package it all in an HTML wrapper. In other words, a way of getting ten pounds of data into a five pound can proc report, proc step, macro variable, proc print 7
64 Icon Do It! William C. Csont,
Howard M. Proskin
This paper will describe how to create various SAS icons that can be placed on your Windows desktop that are useful for multiple SAS sessions or different SAS setups. It will guide you through setting up the command line on the icon, the setup of the autoexec.sas and sasvx.cfg (where x = SAS version number) files, as well as the profile and registry files stored macro, filename statement 4
65 Implementation of the CDISC SDTM at the Duke Clinical Research Institute Jack Shostak This paper discusses the current approach taken to implementing the Study Data Tabulation Model (SDTM) version 1.0 at the Duke Clinical Research Institute (DCRI). Possible routes to SDTM implementation are explored. The challenges of the DCRI SDTM implementation are discussed. Finally, some generic SDTM SAS conversion macros are provided. The SAS code provided in this paper was developed with BASE SAS version 8.2 on UNIX, but the code should be compatible or portable to other operating systems and future releases of SAS. This paper assumes that the reader has some familiarity with the CDISC models and in particular the SDTM adam dataset, macro definition, sdtm domain, clinical data management, clinical data, date variable, proc step, trial design model, data governance, if-then-else, sample, format statement, variable, study day, data cleaning, dataset, sas programming, clinical research, clinical trial, %if-%then-%else, cdisc 12
66 Independent Data Reviews Ananth Kumar Clinical trials must be conducted with the highest standards of quality to ensure that the research question is answered in a reliable, valid and unbiased manner. For certain double-blinded clinical trials, efficacy and safety may require monitoring by Data Review Board (DRB) and Data Monitoring Committee (DMC). This is to ensure patients receive the proper le vel of care. T he treatment assignment must remain blind for patient results and their treatment assignm ents, so that internal decisi on makers and review ers can make independent, unbiased decisions related to the study . So how do we proceed? T his paper discusses how Gilead Sciences, Inc (GSI) performs DRB and DMC i ndependent reviews in a cost saving, flexible, and efficient way macro definition, clinical trial, macro variable 3
67 Integrated Presentation of Clinical Data with Graph and Text Binbin Zhang,
Wei Wang,
Sunny Xie
Clinical Research Physicians are more interested in looking at clinical data in graphics formats. Graphics presented with text information on the same page will definitely make the reports more informative to audience of all types. In this poster, 2 of the more commonly used SAS tools are researched to present graphics and text reports in one. A 3rd approach by using PROC SHEWHART is also introduced. Examples are based on certain labs, efficacy and ECG data. Further discussions follow to help understand the advantages/flexibility of each of these methods proc step, clinical data 8
68 Issues in Intermittent Coding of Concomitant Medication Julius Asubonteng Concomitant medications are often collected on patients involved in a clinical trial. Given the length of some clinical trials, it is usually necessary to collect and code concomitant medication data prior to the study end date. In the process of coding concomitant medications, the coding of combination drugs, corrections to the database, and inconsistent reporting from the site combine with new medications being added to the database make this task difficult. To reduce the amount of time and work involved in the coding process of the concomitant medications, it is desirable to code only new drugs encountered and not to recode previously coded medications during the study trial concomitant medications, sample 5
69 Job Security: Using the SAS Macro Language to Full Advantage Arthur L. Carpenter As has been discussed in other papers on the topic of Job Security, those working in the field as Job Security Specialists must always be ready to take advantage of all types of programming techniques. Fortunately the SAS Macro Language contains many hidden gems that can provide many hours of programming pleasure. By examining how these macro language gems relate to the code that is generated by the macro language, the specialist can gain further insight and understanding into why things work the way that they do. This paper will present a few of these gems, how they relate to the DATA/PROC STEP programmer, and how the specialist can take full advantage of them macro variable, macro facility, job security, macro loop, %if-%then-%else, symbol table, macro definition, macro put, call execute, macro call, autocall macro, macro function, proc step, stored macro, options statement 7
70 Know your data while writing the SAS codes Shu-Min Chuang A properly constructed SAS program in a clinical environment is designed to produce accurate and reliable results. FDA reviewers, internal reviewers and auditors are concerned that those programs produce accurate results such that conclusions about safety and efficacy based on those results are correct. Many companies have standard operating procedures (SOPs) for program validation to ensure that programs are 21 CFR Part 11 compliant. But with unanticipated data, or a lack of understanding of the clinical data, incorrect results and conclusions might be reached from the analyses. This paper reviews how programmers at Gilead Science, Inc (GSI), working closely with data, have prevented programming problems and at the same time improved the data quality to help make the drug approval process be a success create table, sas programmer 4
71 Lab Unit Conversions: Taking Advantage of "Expert" External Resources Sandra Minjoe Analysis of lab data can be tedious. There are many different tests, and they are usually taken for each subject at several times during the course of the clinical trial. Lab results are often our largest dataset. Thus any work we do for lab data can easily get long and boring unless we can find a way to standardize or macrotize it. This paper focuses on one of the common lab analysis needs - converting lab test results from one unit into another. I begin by describing why it is necessary to perform unit conversions. I then describe some purely SAS - based approaches, since, as SAS programmers, this is typically how we tackle a project. Finally, I explore and recommend processes that make use of a combination of SAS programming along with non-programmer "experts" in lab data laboratory data, sas programmer, dataset, if-then-else, excel, clinical trial 7
72 Locating an Autocall Macro Weiqin Pan There are several ways to locate an autocall macro invoked in your program. You can set the system option MLOGIC on and the log will display the details. But the option MLOGIC will cause the log to become huge and locate an autocall macro only when the macro is executed. Or you can manually search the autocall libraries you assigned by the SASAUTOS option in the order they are hierarchized. But it is tedious. This paper will discuss another way to identify the location of an autocall macro. The macro %findmacro can be used in any program to search for a specified macro from autocall libraries or used independently as utility autocall macro, macro variable, macro definition, macro loop, %if-%then-%else 5
73 Looking for a Date? A Tutorial on Using SAS Dates and Times Arthur L. Carpenter What are SAS date and time values? How are they used and why do we care? What are some of the more important of the many functions, formats, and tools that have been developed that work with these crucial elements of the SAS System? This tutorial will answer these questions and many more. Starting with date and time constants and their representation in SAS and then expanding to functions and formats, the basics of the use of dates and times will be integrated with their use as part of both data tables and data displays. The discussion will include functions and formats that are new to Version 8 and SAS 9. Also covered are picture formats and date directives, date scaling in SAS/GRAPH, shift operators in the INTNX and INTCK functions, and the use of the %SYSFUNC macro function sysdate9, datepart, date variable, options statement, macro facility, macro function, macro variable, macro definition 13
74 Macro Design & Development by Example Dante Di Tommaso Thoughtful design and careful development can make the difference between a one-off macro and a useful generic utility. My intention with this paper is to complement and extend previously published design considerations (see References & Recommended Reading). I present two macros that exemplify these concepts: %varinfo (access variable attributes in-line, quickly duplicate variables from another data set); and %autocallpath (reveal the path of auto-compiled sasautos macros) macro definition, sas base, sas function, macro put, %if-%then-%else, symbol table, macro loop, stored macro, exception handling, macro facility, macro function, macro call, macro variable 6
75 Make 'em %LOCAL: Avoiding Macro Variable Collisions Arthur L. Carpenter Have you ever run a macro, perhaps someone else's, and found that it inadvertently changed the value of a totally unrelated macro variable in some other seemingly unrelated macro symbol table? You may have experienced a macro variable collision It is not unusual to use the Global macro symbol table to make macro variable values available throughout an application. Doing so, however increases the risk that a macro variable created in a macro within the application will, by mistake, overwrite that value. The risk even extends beyond the global symbol table whenever you have macros that call macros. This paper discusses the concept of the macro variable collision, what causes it, and how you can protect yourself and others from its potentially crippling effects macro variable, symbol table, macro loop, local symbol table, global symbol table, do loop, macro definition 4
76 Managing a SAS Programming Environment Using Data Access Pages and the Microsoft Office Data Source Control Brian P. Fairfield-Carter A well-managed SAS programming environment offers convenient, centralized access to source code, authorship, completion and validation status, revision history, and validation documentation. It provides a quick view on progress, builds in effective process flow, enforces consistency, and eliminates redundancy and repetition. Toward this end, in programming for a clinical trial, we usually see the development of some sort of "Table of Programs" (TOP), containing information such as program name and location, author, completion date, validation status and date, revision history, and dependencies. In addition, either as part of the TOP or in a separate file, we also often see some sort of "Table of Tables, Figures and Listings (TFLs)", containing data such as titles and footnotes, TFL number, source data, analysis population, and output type data cleaning, analysis set, connection string, raw data, sas programming, dataset, validation documentation 12
77 Markup 101: Markup Basics Cynthia L. Zender Do you want to know what this "Markup" buzz is all about? Does it surprise you to know that the concept of "marking up" text for computers has been around since 1969? So what's all the excitement about? And what does SAS have to do with it? libname engine, excel, dataset, xml, proc step, delimited file, output delivery system, proc template 16
78 Moving Data and Analytical Results between SAS and Microsoft Office Vincent DelGobbo Transferring data between SAS and Microsoft Office can be difficult, especially when SAS is not installed on a Windows platform. This paper discusses using the HTML and XML support in Base SAS software to move data between SAS and Microsoft Office (versions 2002 and later). You can use the techniques described here regardless of the platform on which SAS software is installed excel, dataset, sas output, xls, ods html, ods xml, adverse events, macro definition, sample, proc template, proc step, sas base, libname engine, work library 20
79 Noncompartmental Pharmacokinetics and Bioequivalence Analysis Arturo Soto Matos-Pita,
Bernardo de Miguel Lillo
This paper provides a tested SAS program that performs the following tasks: 1) calculates noncompartmental pharmacokinetic parameters AUCinf (Are a Under the Curve from time 0 to infi nite), Cmax (maximum concentration), Tmax (time at the Cmax) and the derived parameters clearanc e/F, volume of distribution/F and half-life; 2) performs the statistical bioequivalence analysis based on the FDA and EMEA guidelines and 3) reports the results in tables and individual plots confidence interval, proc step, anova, regression analysis 10
80 Object Oriented Programming, Mimic it in SAS Fuping Peng Mimicking object oriented programming (OOP) dataset, macro variable, macro definition, proc sql 3
81 Oh No, a Zero Row: 5 Ways to Summarize Absolutely Nothing Stacey D. Phillips,
Gary Klein
SAS is wonderful at summarizing our data, including creating frequency counts and percentages. However, sometimes, what isn't in the data is just as important as what is in the data. Unfortunately, it is not so easy to get SAS to summarize what isn't there, e.g., how can a PROC FREQ count data points that do not exist in the data? This paper will explore five different methods of creating summaries that will contain a count of zero proc step, proc freq, proc means, proc sql 5
82 Page X of Y with Proc Report Chang Y. Chung PROC REPORT is not a straightforward PROC edure. Many programmers are c onfused when the data are less than perfectly suited. It is often difficult to discern whether the desired report can be generated with cu rrent options or features. For example, what can we do when we need to know which page we are on? As many of us have found out, PROC REPORT has no direct options to know the page number currently being wri tten out. This paper addresses the page number problem. We first show how to find out the cu rrent page number. Secondly, we show how to avoid the page number being reset even when we BY-process. Finally, we show a simple and straightforward way to print "page X of Y" at the bottom of t he page. It does so by using an EXECUTE call routine and a SYMGET function within a COMPUTE block. We assume the readers be intermediate to advanced SAS users proc report, proc step, macro variable, call execute, macro definition, macro quoting function 6
83 Pharmaceutical Programming: From CRFs to Tables, Listings and Graphs, a process overview with real world examples Mark Penniston SAS is the de facto standard programming language for statistical analysis in the pharmaceutical industry. The mainstay of its use is in the generation of tables, listings and graphs based upon the rules and instructions described in the statistical analysis plan on data stored within SAS datasets usually derived from a clinical data management database. This information is collected on a case report form (CRF) or an electronic data capture (EDC) system processed through a database for query resolution with the source documents at the site and sent to the Statisticians and SAS programmers for their analysis clinical trial, data science, sample, pharmaceutical industry, dataset 8
84 Pharmacovigilance and Drug Safety Reporting Algorithms (Content and Process) David Olaleye,
Michael Kilhullen,
Gail Kongable,
Tanyss Mason,
Eugenia Bastos,
Edward D. Helton
Using SAS software we have built out algorithms, content and processes, for pharmacovigilance or post market approval safety reporting. The processes used CDISC data standards, metadata management and data warehousing, pre or post approval spontaneous or case series standard summary safety report (ICSR or PSUR) and data explorati on and signal detection. Common and more uncommon adverse even ts (e.g. -hypotension, kidney dysfunction, et c and pulmonary edema, respectively) were us ed as selected events for demonstration o f these processes. nicardipine control data from tw o pivotal trials (published in The Journal of Neurosurgery) and the MedWatch AERS da ta were the pre and post approval data source. AERS ( year 2000) data for both nicardipine and comparator calcium channel blockers was exp lored and mined using new directed signal detection algorithms and evaluated against the controlled data adverse events, metadata management, proc freq, data standard, likelihood function, concomitant medications, sas 9, cdisc 8
85 Play Nice with Others: Waiting for a Lock on SAS Table John Leveille,
Jimmy Hunnings
It is an all too familiar occurrence for people who run batch jobs during the off hours: You come to work in the morning to find that the overnight jobs failed. Some person or program locked the tables that your program needed and you paid the price -- another night of processing down the tubes. There isn't much that your program can do if the tables you need are locked for the whole night, but what about those times where it was just unfortunate timing and the other person or program was only using the tables for a short time? If your job had just been patient instead of failing right away it would have gotten the data it needed. This paper demonstrates how to use the LOCK statement in base SAS to cause your program to wait until the tables you need are available. The techniques shown can be used to protect critical sections of code by locking multiple tables. Applying these concepts can greatly improve the reliability of programs that run in highly contentious batch environments macro variable, macro definition 4
86 Power Analysis and Sample Size Estimation using Bootstrap Xiaomei Peng,
Guangbin Peng,
Celedon Gonzales
Power analysis and sample size estimation are critical steps in the design of clinical trials. Usually, these tasks can be accomplished by a statistician by using estimates of the treatment effect and sample variance from past trials or expert opinion. However, when exact power computations or reasonable approximations are not possible, or when there is no method to estimate the effect size or variability of clinical data, we have to adopt the simulation-based approach. Bootstrap provides a powerful tool to perform the task by directly sampling from existing data. It is especially useful when the study to be designed employs co-primary outcome measurements, or applies special analysis such as stratified Wilcoxon test where available software and traditional approaches are not applicable. In this paper, the bootstrap program was used to perform the power analysis and sample size estimation, and illustrate their application in two clinical trial designs sample, sample size, bootstrap, power analysis, response variable, primary endpoint, wilcoxon test, null hypothesis, effect size, clinical trial, treatment effect 7
87 Prepare Data Listings with SAS Software for Database Audit Jay Zhou,
Larry Shen
ICH-GCP emphasizes the importance of a clinical trial database audit. Auditing an entire database, especially in a large clinical trial, could be daunting, as it involves great effort and resources. It is also unnecessary from the perspective of statistical quality control. Efficiency can be gained by identifying variables as either critical or non-critical: 100% of the critical variable data being audited whereas only a subset of the non-critical variable data being audited. This paper presents techniques for separating critical from non-critical variable data, selecting a representative sample from the non-critical variable data, and preparing data listings for an audit sample, macro variable, proc step, proc sql, sample size, clinical trial, random sampling, libname statement, proc print, macro loop, adverse events 8
88 Preventing Data Loss when Combining SAS Datasets John Cantrell When using the SAS DATA STEP to combine SAS datasets, unanticipated data loss can occur when the different input datasets contain character variables with identical names and different lengths. When combining datasets by matched merge, concatenation, or interleaving, identically named character variables not included in a by statement are not checked for length consistency. The length of the resulting character variable in the output dataset may be the smaller of the two lengths from the input datasets, resulting in data loss through truncation. This data loss occurs without errors, warnings, or notes being written to the SAS log. The discussion of the data loss problem includes: 1. a SAS program with associated log and output demonstrating how data loss occurs 2. a SAS macro and techniques using DATA STEP code that can be used to prevent data loss character variable, out=, in=, by group processing, merge statement, set statement, data merging, error message, data step, length statement, macro definition 9
89 PROC REPORT Basics: Getting Started with the Primary Statements Arthur L. Carpenter The presentation of data is an essential part of virtually every study and there are a number of tools within SAS that allow the user to create a large variety of charts, reports, and data summaries. PROC REPORT is a particularly powerful and valuable procedure that can be used in this process. It can be used to both summarize and display data, and is highly customizable and highly flexible. Unfortunately for many of those just starting to learn PROC REPORT, the terms "customizable" and "flexible" often seem to be euphemisms for "hard to learn". Fortunately PROC REPORT is NOT as hard to learn as it appears. All you really need to have in order to get started is a basic knowledge of a few primary statements. In this introduction to PROC REPORT you will learn to use the PROC REPORT statement and a few of its key options. Several of the supporting statements, including COLUMN, DEFINE, BREAK, and RBREAK, and their primary options will also be covered proc report, proc step, class variable, proc means 9
90 Proc Telecommute Susan Bairnsfather,
Angela S. Ringelberg
Many years of surveys and other documenting information support telecommuting as a net asset to the corporate industry. Telecommuting is discussed both from a perspective of advantages from the corporate viewpoint and also from the employee perspective. A summary of surveys and many years of documenting information support telecommuting. Additionally, our personal experience of more than ten years of working from a home office substantiates the advantages, but also illuminates challenges facing the telecommuter. Issues are raised to help clarify the lag toward the progression of telecommuting from the corporate culture of the in-house employee. The net tally of pros and cons demonstrates a bottom-line savings for a company to accept the progression to home office telecommuter as the way of the future for the global network of its work force clinical research, pharmaceutical industry 5
91 Processing Name/Value Input in SAS Web Applications Don Boudreaux Both the SAS/INTRNET Application Dispatcher and SAS9 Stored Processes translate name/value pair parameters in a Web-based request into SAS macro variables. This investigation presents four alternate strategies for handling the resulting SAS macro variables within the SAS code of these types of Web applications. In addition to a description of each strategy, a code segment will be shown along with a discussion of that strategy's strengths and weaknesses. Of special interest will be how each strategy deals with a "non-response" user input or the situation where null values exist within multiple name/value pair input macro variable, macro definition, missing value, dataset, proc sql 5
92 Producing Patient Profiles Using PROC DOCUMENT and ODS Layout Doug E. Lassman This paper describes the production of patient profiles using PROC DOCUMENT and ODS Layout. Patient profiles are listings of data from a single patient on one or just a few pages. They are used in the pharmaceutical industry for regulatory submissions, writing patient narratives or case histories, and data clean up and audit activities. Typically, a complicated DATA _NULL_ is used which is difficult to write and even more difficult to modify. Using PROC DOCUMENT with the appropriate ODS Layout code, output from common SAS procedures such as PRINT, FREQ and MEANS, which may already have been written for study listings, can be used for the profile. SAS/GRAPH output can also be included on the page. This process can have other applications including a laboratory summary by analyte or a stock market company report proc step, proc print 8
93 Program Flow Design for Efficient CRT Programming Sam Mao As CDISC Submission Data Model evolved to SDTM 1.01 (SDS 3.1), the perception/description of the data structure changed extensively in the submission data standards, though some general characteristics of the standards remain unchanged. These unchanged characteristics relate to fundamental data definition and presentation, such as definition of the variable attributes (type, length, format, and label); order of variable appearance within the dataset; and labeling of the dataset. When programming a CRT, the CRT domain may be generated by merging several source datasets, and the resulting CRT should subset variables to contain only the CRT domain defined variables. Programming these aspects of the standard/specification is not usually difficult, though it may be tedious and challenging to maintain if the CRT specifications for a given project change frequently macro variable, data step, raw data, proc sql, cdisc 10
94 Program Templates for Report Generation Roger J. DeAngelis,
Thousand Oaks
A Program Template is a minimum sequence of SAS procedures, datasteps, and user formats, which can be easily modified to produce a wide range of reports. A Program Template with four characteristic properties is presented. First, the rows of the report have major and minor groupings; for example, "Gender" could be a major grouping, while "Male" and "Female" would be minor groupings. Second, the columns represent arbitrary subsets of the observations; in a clinical environment, "Placebo" and "Treatment" are typical columns. Third, SAS title and footnote statements are reserved for Microsoft Word headings and footers, while Report titles and footnotes are part of the report body. Finally, two sets of page numbers are supported: one set for Microsoft Word footer space and another for the body of the report. Well designed Program Templates give the programmer much more control over the layout of reports proc step, proc report, proc sql, univariate analysis, proc transpose, ordinal variable, macro variable 9
95 Programming and Data Differences Between Clinical Trials and Observational Studies Margaret M. Coughlin The re are differences in the types of studies analyzed for controlled clinical trials a nd epidemiology or outcomes research studies that necessitate dif ferent programming approaches. This paper briefly highlight s the different types of studies and then focuses on data and SAS programming technique differences between traditional controlled clinical trials and typical epidemiology / outcomes research analys es. Study Overview Controlled clin ical trials are familiar to those of us in the pharmaceutical industry and involve well-scripted scenario s of data collection and an intervention, as defi ned in the study protocol . The intention of these controlled trials is to be able to provide evidence supporting causality between the intervention and a pre -defined outcome. For those involved in the analysis of clinical trials, the re are certain assumpti ons we make concerning the data and some standard analytic programming techniques we employ for most studies clinical trial, insurance claims, clinical data, adam dataset, adverse events, dataset, medical history, stress testing, vital signs 6
96 Programming Gems that are worth learning SQL for! Pamela L. Reading For many SAS users, learning SQL syntax appears to be a significant effort with a low rate of return, because their routine programming tasks can be done just as easily with the base SAS syntax they already know. But there are some tasks that are very simple to do in SQL that are quite difficult in base SAS. If your assignment involves one of these tasks, then the effort to learn a little SQL will pay off handsomely! I will present a few little gems of SQL that have served me well in pharmaceutical programming proc sql, sas base 5
97 Programming Tips and Examples for Your Toolkit, II John Morrill This paper describes several independent id eas that should be in the toolkit of intermediate level SAS programmers. We begin with a quick illustration of what can go wrong during a me rge of two data sets containing identical variable names if these variables are not included in the by statement. Next we review a half-dozen methods of 'commenting out' text that appears within code. While documenting the purpose of each sectio n of code is ideal, the focus of this section is on the technical side, demonstrating methods to accomplish this and discussing interactions betw een comment methods. We then move to a discussion of a multilevel indicator variable, one that incorporates information from several variables. A major focus is detailing tools needed to create a concord ance, an index of words in a given text showing every contextual occurrence of a word macro variable, by group processing, pharmaceutical industry, comment, proc freq, put statement, sample, binary variable, proc step, macro definition 12
98 Quality Testing for Programs Used in Regulatory Submission Xiaohui Wang,
Elaine Czarnecki
Testing the programs to ensure the accuracy of results is a critical part of conducting the statistical analysis for regulatory submission. This requires not only the efforts from testers, as many people assume, but also from the project statisticians and program developers. This paper will explore the finer points of producing and independent testing of a quality SAS program data cleaning, proc step, missing value, proc sql, if-then-else 4
99 Reading a Pipe-Delimited File within a Comma-Delimited File Carey G. Smoak This paper will demonstrate how to read a pipe ("|") delimited file within a comma-delimited file (.CSV extension) and how to automate the process. An Affymetrix, Inc gene chip is the source of the .CSV files. The first step is to get a list of .CSV files in a directory and then read them in by using an infile statement. Next the pipe-delimited file within the .CSV file is isolated and converted into a text file. This text file is then read in by using an infile statement. Automating this process involves creating a macrovariable that contains the full path of the location of the .CSV files and creating a macrovariable for the number of .CSV files in the directory. This last macrovariable is then used to create a do loop so that the program will process each .CSV file. Version 8.2 of SAS on an MS Windows platform was used delimited file, macro variable, infile statement, txt, do loop, automatic variable, proc sql, proc step 6
100 Remembering the Past: Ensuring Quality though Historical Benchmarking Marc-Paul Lee George Santayana famously said "Those who cannot remember the past are condemned to repeat it." If you often work with data from external sources whose quality is sometimes suspect you may want to use a historical benchmarking tool to get a quick read on whether the current data is complete. The historical benchmark contains minimum, mean and maximum distribution for a categorical variable of interest. During processing, compare the current results with benchmark values to see if the current data is within historical limits. A categorical summary is printed and instances where current data is either above or below expectations are highlighted nominal variable, macro variable, proc step, proc means, proc freq 8
101 RETAIN or NOT? Is LAG Far Behind? Venky Chakravarthy The RETAIN statement is a tool that is used to do such tasks as LOCF. However, it becomes clumsy when processing BY group variables. When the boundary of a BY group variable is crossed such as the next patient, care must be taken while using RETAIN to prevent the carrying over of the previous patient's value. This paper examines the RETAIN statement in detail and explores alternative approaches when certain conditions are met. The paper also devotes a section to LAG as this seems to be a corollary to the RETAIN statement retain, data step, automatic variable, temporary array, imputation, last observation carried forward 9
102 Retaining, Lagging, Leading, and Interleaving Data Toby Dunn,
Chang Y. Chung
Many times a programmer must examine previous and/or future observations. When this happens, the programmer is generally inclined to search the help docs for pre-defi ned statements, func tions and techniques to create a quick solution to the immediate problem. However, this approach often leaves the pr ogrammer a headache, increased frustration and stress, and mistakes in their program. In an attempt to "go beyond the help docs," this paper examines frequently (mis)used techniques. S pecifically, it addresses the RETAIN statement and LAG function as used to examine previous values, and the lead and interleaving techniques to look ahead at future values. The intent of this paper is not to provide the programmer with a comprehensive examination of t hese tools, but rather the fundamental understanding of their uses and s ubtleties required to make them an effect ive part of the programmer's tool chest retain, lag function, missing value, proc sql, proc step, data step, proc sort, by group processing 8
103 Retrieving SAS Programs Back From PDF Files Eric Zhang There are many tools available to convert text files, including SAS programs, to files with the Portable Docum ent Format ("PDF "). PGM2PDF, a SAS macro developed by Zhang (2004), can convert SAS programs to PDF files with specific functions and features in order to store SAS programs with protection against unexpected modification. Unfortunately, there are few t ools available to retrieve SAS programs back from PDF files once they have been converted to the PDF files. This paper illustrates a solution using SAS and not relying on third party software. In addition, this approach is straightforward and works well across platforms. The capabilities, features, and usage of the approach are described in the paper. KEYWORDS: PDF2PGM, PGM2PDF, Macro, PDF Files, SAS Programs txt, dataset, adverse events, macro definition 6
104 Risk-Based Approach to SAS Program Validation Keith C. Benze SAS is widely used throughout the FDA regulated industry, even by FDA itself; however, the FDA regulations for the validation of computer systems vary across the regulated areas, and it can be difficult to understand if and how these regulations apply to SAS programs. In order to address this issue, it is important to understand the basic expectations for FDA and industry for the integrity of data, and to design a process for the use and verification of SAS programs based on these expectations and how SAS is used. This paper will discuss the regulations, along with FDA and industry expectations, and present a risk-based approach for determining what level of validation and documentation is appropriate for SAS programs data cleaning, sas base, clinical trial, data science, sas programmer, service provider, missing value 7
105 Rules for Tools - The SAS Utility Primer Frank C. DiIorio macro variable, dictionary tables, macro put, %if-%then-%else, proc sql, sysrc, sas log, sas base, macro facility, macro flow control, macro parameter, macro definition, missing value, do loop, macro loop, autocall macro, file statement, options statement, proc step, %macro parameters 19
106 SAS 9 Migration Automation Xiaoming Liang,
Fred Hutchinson Cancer
Migration process usually presents challenges when multiple source locations are involved. Identifying those source locations manually could be very labor intensive since SAS files may exist in any sub-directories. Migrating SAS files from those locations is also very time consuming due to the need of code modification to reflect the change of source location each time. This paper is intended to introduce an automated migration process, which complements SAS with Perl scripts to traverse the directory tree to identify and extract source locations, and to update macro variables used in SAS migration script. When migrating SAS files from 32-bit to 64-bit environment, PROC CPORT/CIMPORT is used to migrate catalog files, while PROC MIGRATE is used to migrate datasets proc step, macro variable, proc cport, sas 9, macro definition 4
107 SAS and Oracle PL/SQL: Partners or Competitors? Stanley E. Fogleman Most computer programmers tend to think in binary fashion. Either something is completely possible and should always be used or something is impossible and thus should never be considered. The question that should be asked is: How can the tasks be divided between SAS and ORACLE to play to their relative strengths? The paper will concentrate on the ways in which PL/SQL is very useful to SAS programmers (in the form of stored functions and procedures) and can be accessed with either SAS/ACCESS FOR ODBC or SAS/ACCESS FOR ORACLE proc sql, stored procedure, proc step, macro variable, create table, sas programmer, character variable 5
108 SAS and the Intranet: How a Comments System Creates In-House Efficiencies Morris Lee A principal goal of SAS programming in a clinical setting is creating output that will be reviewed b oth internally and by external reviewing agencies . The Biometrics Department of Gilead Sciences, Inc. (GSI) has developed a Comments System that has streamlined the process of the internal review of tables, figures and listings ( TFLs). GSI's Comments Sys tem has created efficiencies, and further improvements to the system may be expected depending upon departmental analysis of available and future technologies txt, sql server, proc sql 7
109 SAS Can Do it for You! - Automate and Customize Printing of Word Files in Windows Environment Jay Zhou During the data analysis and reporting stage of a clinical study, programmers often need to print clinical reports, such as tables, listings, and graphs, for review. This can be cumbersome and time consuming, if it involves hundreds of Word files, especially when printing a specific page for each file. To meet the need, a SAS macro has been developed to automate and customize printing of Word files in the Windows environment. This paper reviews the capabilities of the application, some common uses for it, and the programming techniques implemented macro variable, put statement, macro call, macro parameter, macro definition, call symput 6
110 SAS Dataset Content Conversion to CDISC Data Standards Anthony L. Friebel,
Thomas Cox,
Edward D. Helton
The CDISC Operational Data Model (ODM) is a vendor neutral, platform independent format for interchange and archive of data collected in clinical trials 1. The model represents study metadata, administrative metadata, and subject data associated with a clinical trial. Program fragments used for forward and backward conversions of data from SAS to ODM v1.2 format will be presented here, along with displays of the data before and after conversion. Data is Data, and Metadata is … … different. The ODM provides fo r specification of both data and metadata pertaining to a clinical trial. It contains the fundamental metadata description for subject collected data content (tables, columns, data types, data lengths, etc.) and study-level metadata for the trial (participants, sites, protocol, etc.). These two forms of metadata are fundamentally different. Copyright 2005, SAS Institute Inc. All rights reserved libname engine, dataset, proc step, adverse events, clinical trial, controlled terminology, data cleaning, cdisc 10
111 SAS Efficient & Effective Utilization Karthikeyan Chidambaram SAS has so many features that learning and understanding them all keep life interesting for many SAS users. There are many under-utilized and hard to find commands, functions and options in SAS, which are very powerful. These features, when used effectively, will make programs efficient and SAS programmer's life easier dictionary tables, proc step, proc stdize, in=, proc options 5
112 SAS Macro Technique for Embedding and Using Metadata in Web Pages Gregory T. Weber This paper will present a technique to develop dynamic user interfaces within a SAS/INTRNET-base application. Our goal was to develop a sophisticated interface while keeping to a single user typical SAS/INTRNET application, user input on one screen is used to dynamically generate furthe subsequent screen. For simple applications this can be effective, but can become cumbersome requires multiple required data i were used to generate the required metadata and embedded JavaScript. In this paper, we will d macro definition, sas programmer 6
113 SAS Macros to Match Data from External Data Sources Arkady M. Kushnir Dynamic Format and %LET statements were created in SAS DATA STEP, to match customer IDs to large DB2 Tables and classify accounts by processing scheme. Technique could be used to match large volumes of information against external data sources, such as relational data bases or large flat files proc step, proc format, macro variable, dataset, data step, proc sql 6
114 SAS_TRAN: A SAS Macro for Generating SAS Transport Files Taghi R. Garacani SAS transport files are widely used for transferring the SAS datasets and catalogs between the operating systems. Beginning with version 7 of SAS, datasets could be transferred between operating systems by FTPing them in binary and used without any further processing. Even though the FDA has no policies on choices of statistical software, there is one standard in place for the data submission, that is using SAS transport files. In the pharmaceutical industry, when clinical trials data are analyzed by CROs or when independent data monitoring committees (IDMC) were used for safety monitoring, then data transfers from one company to these outside CROs or IDMCs are in the form of SAS transport files. This paper describes the several methods for creating SAS transport files and converting SAS transport files back into SAS datasets. The macro %SAS_TRAN presented here generates SAS transport files that can operate in both Window and UNIX environments dataset, macro variable, proc step, proc copy, in=, macro call, proc cport, proc cimport, macro conditional, macro loop 12
115 Selected SAS Macro and SQL Techniques For Efficient Analysis Programming Brian P. Fairfield-Carter Programming efficiency is not simply a matter of providing functionality in the fewest possible statements, nor is it simply a matter of minimizing processor time. It is probably best measured by the time it initially takes to write a program, and in the time it then takes to decipher the source code and correctly implement revisions. These measures reflect a programmer's capacity for problem abstraction (for example, when to use normalized versus non- normalized data), as well as overall knowledge of the programming environment proc sql, adverse events, proc step, create table, group by, macro loop, proc freq, serious adverse event, data step, numeric variable, left join, macro definition, missing value 12
116 Simplifying Hard-Coding Using A Macro Call Jay Huang Data issues and analysis assumptions occasionally require statistical programmers to hard- code these changes into their programs. At Gilead Sciences, Inc. (GSI), we utilize a macro call( %fetch) from our Global Macro Library to implement these changes in a more efficient manner. %fetch reads in data sets from pre-defined librefs, and in doing so, also %includes specific include files programmed in those librefs. These incl ude files contain the data manipulations or analysis assumptions the study requires. Thus, whenever we program a hard-code into an include file, all outputs which involve data sets affected by hard-coding will automatically reflect t he changes once we rerun the programs. %fetch also has various parameters to allow the programmer to sort, keep specific variables, use a where clause, or rename variables dataset, data step 4
117 Smoothing Techniques for Pharmacokinetic and Pharmacodynamic Profiles Naum M. Khutoryansky In many phase 1 clinical trials, the pharmacokinetic (PK) and pharmacodynamic (PD) individual profiles are built using noisy data. This creates difficulties in determination of some PK and PD parameters, particularly, Cmax and Tmax. Such a situation can be seen, for example, in clinical trials with concentration rate as the primary endpoint. Smoothing individual PK and PD profiles is an effective way to obtain individual PK and PD parameters. This paper contains comparison of different local and global smoothing techniques including the Fourier transform, smoothing splines, kernel regression, locally weighted regression applied to PK and PD data observed in phase 1 diabetes clinical trials. regression analysis, loess, proc freq, clinical trial, polynomial regression 5
118 Some Statistical Programming Considerations for e-Submission Hang Pang Electronic submissions for new drug application (NDA) to the regulatory agencies have been widely used in the pharmaceutical industry. This paper discusses the main components that need to be prepared and communicated to the statistical programmers for the e-submission: SAS data transport (XPORT) files, data definition document (define.pdf), and statistical review aids. The FDA (Food and Drug Administration) and CDISC (Clinical Data Interchange Standards Consortium) guidelines for define.pdf are briefly introduced. Currently, no standard guideline is available for the statistical review aids. This paper presents some suggestions for what components should be included, and how to standardize and generate templates for high quality statistical review aids to meet the FDA requirements. KEY WORDS: e-Submission, Define.pdf, Statistical Review Aids, SAS Data Transport Files adam dataset, sas output, character variable, clinical data, dataset, efficacy summary, primary endpoint, statistical programmer, cdisc 6
119 Sort Your SAS Graphs and Create a Bookmarked PDF Document Using ODS PDF Dirk Spruck Graphs are a great tool to visualize data and they are commonly used as part of the analysis and reporting of clinical trial data. In SAS there are different possibilities for creating and storing graphs available. If it is important to provide the graphs in a user-friendly format bookmarked PDF documents are a good choice. This paper describes a technique used to automate the sorting of graphs and the creation of bookmarked PDF documents containing all graphs using ODS PDF under SAS 8.2. New graphs are stored in a SAS graphics catalog using a standardized description. This description, extracted from the SAS dictionary table CATALOGS, is used to sort the graphs and to create PROC GREPLAY code. The generated code can reproduce the graphs in the specified order. To create the PDF file this code is embedded in ODS statements. The descriptions are automatically translated into PDF bookmarks ods pdf, proc step, proc greplay, dictionary tables 5
120 Speed up your SAS Programs Karthikeyan Chidambaram There are some basic rules, which wi ll enhance the efficiency of the SAS programs. This Paper will attempt to list out the rules and techniques for writing Efficient SAS programs pdv, missing value, proc sort, where statement, retain, proc step, sample, data step, if-then-else 5
121 Statistical Table Specifications and Automatic Code Generation using XML Alan Hopkins,
Linda Collins
We present a general table model for display of statistical results from a typical clinical trial and describe an application to generate table descriptions in XML. This XML file is then used as input to a SAS code generating application which creates a SAS driver program built with validated macros. The table descriptions and associated software may be saved as standards for future studies. Using an XML-structured approach to defining tables and validated software for producing the tables results in much quicker validation and higher quality of statistical tables produced for clinical study reports proc tabulate, macro call, proc means, data cleaning, data science, proc freq, clinical trial, dataset 7
122 Storing and Using a List of Values in a Macro Variable Arthur L. Carpenter When using the macro language it is not at all unusual to need to manipulate a list of values. These may be a list of variables in a data set or even a list of data set names. Macro variables are often used to hold this list and there are a couple of storage options. Either each word of the list can be stored in its own indexed macro variable or, as discussed in this paper, one macro variable can be used to store the entire list. The macro variable that contains this list of values can be created in a number of different ways including through the use of the DATA STEP or PROC SQL. Once created, the user will often want to step through the list performing one or more operations on each of the elements in the list, and this is often accomplished using a combination of the %DO statement and the %SCAN function. This paper shows how to write a series of values to a macro variable and then how to take advantage of the list by utilizing it from within the macro language macro variable, macro loop, proc sql, character functions, macro function, proc step, macro facility, do loop, call symput, symbol table, macro definition 6
123 Strategies for Implementing SDTM and ADaM Standards Susan J. Kenny,
Michael A. Litzsinger
With the 2004 release of CDISC SDTM and ADaM standards, members of the pharmaceutical industry are all asking the same questions. How and when does the creation of SDTM files occur during the clinical trial process? What files should be used to create analysis files? How do I keep track of all of the data transformations? This presentation will offer some strategies and considerations on how to implement CDISC standards within a pharmaceutical organization. Advantages and disadvantages of implementation strategies will be discussed. A discussion of the types of software solutions that can be used to perform the transformation of data into the SDTM is presented. An illustration of the use of Base SAS to facilitate the creation of a Findings domain from a database management system to the SDTM or ADaM standards while maintaining important metadata is provided. Ideas, not answers, will be shared to help you think about a CDISC implementation plan for your organization sdtm domain, adam dataset, clinical trial, macro variable, sas base, data science, raw data, vital signs, clinical data, dataset, data cleaning, cdisc 8
124 Streamlining Processes: Reconciling Programming and Documentation James E. Witt Streamlining programming processes and fulfilling ever-increasing documentation requirements don't always have to be diametrically opposed. For example, variable derivation for clinical study datasets may have to be documented in headers of programs which derive them, in a data definition table (DDT), as well as in a table of programs. After programming is completed, these data sets and variables then undergo quality control checks against client specifications to ensure their compliance. This paper introduces an attempt to link dataset specifications to both the programs implementing these requirements and to the program documentation. A macro is introduced that uses dataset specifications in the form of a DDT to drive and to check automatically the assignment of variable attributes, increasing efficiency by reducing validation and manual document maintenance effort proc step, proc sql, adam dataset, create table, error message, variable, excel, macro variable, order by, proc template, proc report, dataset, output delivery system, call execute, file statement, sample, adverse events, ods pdf 11
125 THE DATA and SPECS IN SEPARATE FILES Varsha C. Shah In general, we are used to working with data received as SAS data sets : SD2, SAS7bdat, etc. The greatest advantage here is that all pertinent information is procured in one package. But it is not unusual to receive data in text form or as an EXCEL sheet or in some other non-SAS form. The most common example of this is lab data. In this case, a complete description like column location, labels, etc. are in an independent document. For a small dataset with very few variables, it is easy to type in the essential information about columns, labels etc., But imagine the not uncommon situation of a couple of hundred variables. The typing will not only be tedious and time consuming, but also it could introduce annoying "typos". This paper describes how to combine these types of information via a SAS program data step, data statement 5
126 The Power of PROC SQL Techniques and SAS Dictionary Tables in Handling Data MaryAnne DePesquo Hope This paper demonstrates th e comb ined po wer of PROC SQL an d SAS Dictio nary T ables to ass ist in the dat a management of multi- year health care survey data. T he surve y d ata, colle cted yearl y, usually requ ire some modifications t o fields an d file nam es to adj ust for yea r-to-year cha nges in surve y administrati on. As in all programming aspects of a project, it is ess ential that the programming techniques are efficient and adaptable in the data handling processes. Structured Query Language (SQL) is a po werful database language that can be use d to access SAS Dictionary T ables, which co ntain i nformation a bout d ata files op en i n a SAS sessi on. Examp les presented in this p aper d emonstrate tec hniques of applying PRO C SQL to th e SAS Dictionary T ables, SASHELP.VCOLUMN and SASHELP.V TABLE proc sql, proc step, macro variable, numeric variable, dataset, data cleaning 6
127 The Role of Analysis Datasets in Successful FDA Advisory Meetings Sandy Chang Analysis datasets have become a crucial contri buting factor to successful filing of New Drug Applications (NDAs) for Gilead Sciences, Inc. (GSI). In the span of a mere 23 months GSI has received three NDA approvals and we feel that a significant factor of that success can be directly attributed to the use of analysis datasets. The analysis datasets are divided into different categories, each of which serves a particular analysis purpose. The analysis datasets contain both variables that have been defined in the statistical analysis plan (SAP) and key c ontributed variables (derived variables that support planned and ad hoc analyses). In addition, the analysis datasets are designed for "one PROC away" use as suggested by the Analysis Dataset Modeling Team (ADaM) working group of the Clinical Data Interch ange Consortium (CDISC). Finally, these datasets are standardized and consistent across all studies adam dataset, adverse events, sdtm domain, data science, raw data, proc step, proc contents, vital signs, efficacy summary, adverse event summary, laboratory data, statistical programmer, clinical trial, cdisc 9
128 The Use and Abuse of the Program Data Vector (The Procs) Jim Johnson Have you ever wondered why SAS does the things it does, or why your programs "get away with" the things that they do, or why SAS would not do what you wanted it to? A key operational component of SAS is the program data vector. Without it SAS would not function, as we know it. With knowledge of the program data vector, programmers can better understand how SAS works. This paper will help you understand how the program data vector works, how the Procedures use it, and how you can exploit, manipulate, and trick it where statement, pdv, proc sql, proc freq, proc print, proc sort, create table, proc step, rename statement, dataset, keep statement, full join, error, raw data, data step 17
129 There's No Such Thing as Normal Clinical Trials Data, or Is There? Daphne E. Ewing Clinical Trials data comes in all shapes and sizes depending upon the therapeutic area, indication and phase of the trial. Quite a bit of the data arriving on Case Report Forms (CRFs) is fairly standard (e.g. Demography, Adverse Events, Medications, Laboratory Results, etc.), and hence can be stored in fairly standard data structures. Designing clinical data structures for data entry is important, but it should be done with some understanding of the analysis that will be performed. Once an appropriate clinical data structure is arrived at for data entry, it is important to then determine how to best use the data in the analysis environment. This paper will discuss data normalization and what it means along with the effects it has on SAS programs used to list and summarize clinical trials data. Side by side examples of programs and output from standard data structures versus normalized data structures will provide proof of the importance of normalization proc report, proc step, normalization, sample, macro variable, proc freq, laboratory data, proc means 14
130 Tips and Tricks: Using SAS/GRAPH Effectively A. Darrell Massengill SAS/GRAPH is a powerful data visualization tool. This paper examines the powerful components of SAS/GRAPH and highlights techniques for harnessing that power to create effective and attention-grabbing graphs. The components examined include the SAS/GRAPH procedures, gr aphical global statements, the Output Delivery System (ODS), graph styles, client-rendered graphs, and the Annotate facility. Complete programs using these components and techniques are provided and examined in detail proc step, proc gplot, catalog entry, proc gchart, output delivery system 15
131 To Macro or Not To Macro? Amy Gillespie,
Blue Bell
As employees and businesses, we are often challenged to complete our work with a "do more with less (or same)" attitude. We are expected to increase productivity by being more efficient in our jobs, yet assuming a constant high level of quality. Process improvement initiatives are vital for success. SAS programmers have opportunities to make valuable contributions, primarily by building departmental SAS macro libraries to standardize programs for analyses, report generation, and graphing. However, as SAS programmers , we may be questioned as to whether the amount of work needed to build a generalized SAS macro library is time well spent. To investigate this issue we developed metrics on our department's SAS macro library. This paper will discuss our metrics research efforts, present our results, and demonstrate how these important findings aid in our SAS macro library development macro definition, data science, regulatory submission, macro call, adam dataset, statistical programmer, data cleaning, proc freq, clinical trial 8
132 Two SAS Programming Techniques for Annotating Graphs Lingling Xie This paper presents two app lications of using SAS annot ate to highlight graphs by marking special points. The first is to annotate a treatment wh en it is significantly different from another treatment in a bar ch art of two three-treatment-arm studies. The second is to mark the time point where the tw o treatments differ significantly in a line plot bar chart, line chart 3
133 Understanding the Inner Workings of SAS II What to Watch Out for When Using OUTPUT and SORT Yan Lei When doing SAS programming, we often use PROC SORT and OUTPUT statements to manipulate d ata or restructure a dataset. This paper presents two examples of how PROC SORT and output statements work within SAS and how to use the functions correctly. In addition, it also provides some tips on avoiding mistakes and obtaining error free results output, proc sort, proc step 5
134 Understanding WHERE Clause Processing and Indexes Kirk Paul Lafler SAS users can quickly access selected observations (rows) of data in SAS data sets using WHERE clause processing and indexes. This paper explores what an index is, the purpose of an index, how an index is created, factors that determine when an index is warranted, how WHERE clause processing can take advantage of an index, and techniques for tuning indexes for bet ter performance. Attendees will learn valuable techniques for achieving improved query performance using indexes where statement, proc sql, index, proc step 4
135 Use ODS Generating Patient Profiles Haibin Shu,
Bala Cynwyd
There are many approaches to using SAS ODS engines to generate patient profiles for submission or ad hoc report purposes. Many of them involve a manual, lengthy programming effort. Also most of the programming modules cannot be ported into different protocols or have to be modified greatly before they can be reused. At Duramed Research, we found a novel approach to take full advantage of SAS 9.1 features and present patient profiles in a clear, readable format with highly condensed data information. These patient profiles can serve as a reliable and effective data source for references in writing a study report, analyzing both safety data and efficacy endpoints and for communicating between the biostatistician, data management and clinical departments. Most importantly we standardized reporting structures and implemented highly efficient programs. The whole process can be easily ported into different protocols with minimum customization yet with consistent output formats label statement, raw data 6
136 Use Proc Format To Apply Value Specific Suffixes To Your Data Lara E.H. Guttadauro If you need to apply value specific suffixes to your data, PROC FORMAT in SAS is a great option. You have the choice of using the picture option once or the value option twice proc format, proc step 2
137 Useful Techniques for Enhancement of SAS/GRAPH Output Louie Huang This presentation introduces several useful techniques to enhance SAS/GRAPH output in creating plots with standard error bars and symbols of the means. These techniques include data manipulation, and creatively using legend statement, axis statement and plot2 statement proc calis, proc step, group by, proc sql, create table, proc gplot 8
138 User-Specified Text Flow Inside The Report Procedure Donald W. Peterson,
Taghi R. Garacani
The FLOW option of the REPORT procedure in SAS allows the user to include lengthy text in a report by wrapping the text within a specified column width. This powerful feature splits the text using the so-called split character, as well as the blank character. The text is always left justified, not allowing any kind of indentation, unless you insert blank characters accordingly, which is very tedious. This paper explains the %flowvar macro that modifies the character variable allowing the FLOW option to produce indented text, beginning after the first line for each observation in a report proc report, character variable 5
139 Using DDE with SAS to execute VBA macros in Excel and enhance output from SAS with Excel features Gary Chen For clinical studies that have expanded through many years and over many trials, the data collected can often be different from study to study. The raw or final data in each study may differ in total numbers of variables, variable names or attributes, and hence give much difficulty when work on data integration for submission and analysis. This paper demonstrates the use of SAS to compare two datasets and export the output to an EXCEL file. Further more, using DDE, the SAS program calls EXCEL macros and displays the comparison result in a much friendlier visual interface, highlighting the differences with colors. The friendly display in EXCEL can: 1) Identify differences between datasets easily and thus facilitate the work to reconcile the difference. 2) Help writing SAS programs for data integration. 3) Keep a document trail on the process 4) serve as a guide for other programmers to QC excel, proc export, proc step 4
140 Using Proc Freq for Manageable Data Summarization Curtis Wolf proc freq, proc step, outlier 6
141 Using Procedure-Based ODS Data Components in Statistical Reporting Vincent J. Faber The objective of this paper is to illustrate the use of the ODS (Output Delivery System) Data Component in SAS system procedures. It is designed to be an introduction for the elementary or intermediate programmer. I first provide a description of procedure -based ODS data components and discuss their applications. I then provide step-by-step instructions on how to extrapol ate results from procedures and turn them into data sets that can then be used for statistical reporting. For example, we can extract both the mean and the p -value from the TTEST procedure using ODS data components and produce a table to report means and a test for significance. Using a deidentified subset of a large national study of pregnant women, I will illustrate the u se of procedure - based ODS with five commonly used procedures: UNIVARIATE, TTEST, FREQ, GLM, and LOGISTIC ods output, output, logistic distribution, proc logistic, proc genmod, class variable, proc freq, proc glm, odds ratio, confidence interval, propensity score, proc univariate, where statement, data step, logistic regression, anova, raw data, regression analysis, proc rank 10
142 Using SAS Enterprise Guide in a Global Programming Environment Karen Curran sas enterprise guide, temporary dataset 5
143 Using SAS to Automate The Process of Microarrays Data Normalization Lei Qin. Cancer This article introduces a SAS macro based program for microarrays data normalization. The algorithms of different methods for both within array and between arrays normalization are discussed. With the breast cancer data adopted from the Stanford Microarray Database, the author implemented the program to facilitate an automatic normalization process with optional methods selection and automatic graphs generation. The results prove that the program is valid and robust. Loess regression method for within array and centering approach for between arrays normalizations show better normalizing outcomes for the example data normalization, regression analysis, proc reg, data science, macro variable, macro parameter, macro definition, standard deviation 7
144 Using SAS/IntrNet as a Web-Enabled Platform for Clinical Reporting Paul M. Gilbert SAS/INTRNET software prov ides access to the server -based capabilities of SAS for enterprise Web -client application development . This software enables pharmaceutical companies to exploit strategic intelligence delivered by SAS software via the Web . For use in clinical reporting a pplications, SAS/INTRNET allows organizations to maximize their return on investment in SAS. SAS/INTRNET software is designed for SAS users who want to make existing SAS applications available o ver the Web using the Common Gateway Interface (CGI) program i nterface . Currently, most pharmaceutical companies use SAS software to produce statistical analyses, data listings, summary tables and graphics that are used in the submission of clinical study reports to governmental regulatory agencies around the world. The process of producing these reports is commonly known as clinical reporting macro variable, sample, macro definition, proc step, sas base, sas library, proc freq, proc sql 6
145 Using V9 ODS LAYOUT to Simplify Generation of Individual Case Summaries Ling Y. Chen Up until now, individual case summaries involve complicated data _NULL_ coding and are hard to program. This paper describes the new SAS V9 feature ODS LAYOUT and its use in developing individual case summaries in a clinical trial setting. Some examples of the usage are shown and also some advantages and limitations are discussed. The codes included in this paper were tested using SAS V9.00 on the Windows XP operating system proc report, vital signs, proc step, clinical trial, data step 8
146 Utility Macros Used in the Process for Database Translations Yuguang Zhao,
Jingchun Yu
One challenge facing global pharmaceutical companies is that clinical trial database sometimes contains non-English text and needs to be translated into English when the database is submitted to the FDA for regulatory submissions. Two utility macros are developed to facilitate the process. One macro will search all the datasets in the database and perform PROC FREQ on all character variables and set the output datasets from the PROC FREQ procedure together to build a master list of all unique character strings for translations. After the master list is translated, a second macro will take the translated master list and merge the translated text back into the database by looping through all the character variables in all the datasets. The translated master list could also be used in the process for actual case report form (CRF) translations to ensure consistency between the CRF and database character variable, do loop, proc freq, macro variable, crf, proc step, macro call, clinical trial, out=, excel 3
147 Validating Data Using SAS Formats as a Programming Tool John R. Gerlach Proper data analysis requires well-defined data th at have been validated. Typically, the transition from raw data to a viable SAS data library requires more effort than just writing an INPUT statement. In fact, the quest for validated data often becomes a project in itself consuming tremendous resources. Considering that many validation checks can be written as Boolean expressions, "if gender not in ('F','M')," it's possible that these expressions can be stored in a user-defined format. Besides its typical use of creating formats for re ading and writing data, the FORMAT procedure offers much as a programming tool, such as doing table look-ups and sub-setting data. And, with some ingenuity, this procedure can greatly facilitate the validation process. This SAS paper discusses techniques for facilitating the validation process, focusing on a macro and a user-defined format catalog that together perform validation checks on a data library to produce validation reports data cleaning, proc format, user-defined format, dataset, format statement, proc step, proc freq, numeric variable, clinical trial, libname statement, verbatim term, data science, if-then-else, macro variable, automatic variable, macro loop 11
148 Visualizing Minimum Spanning Tree (Working with Pharmacal Genetic data) Zhuoye Xu,
Xiaohui Wang
Minimum spanning tree (MST) originally is an algorithm concept used in many areas. It is very useful in constructing networks by describing the way to connect a set of sites using the smallest total amount of wire. There are many different ways to construct MSTs. However displaying MSTs in refined graphical way is not an easy task. This paper will not focus on the algorithms of constructing MSTs but on how to graphically present MSTs based on the results of those MST constructing algorithms in the way that the output plot can use space in balance without overlap. Since MST plot is a widely used and efficient graphical presentation approach for describing the haplotype relationship in genetic study, the further illustration will use genetic analysis sample data. Even so the algorithm described in this paper can also be used for other type of MST data presentation purposes proc freq, sample 6
149 Want to Do a Better Job? - Want to Do a Better Job? - Select Appropriate Statistical Analysis in Healthcare Research Liping Huang The ability to integrate information, perform accurate and unbiased analysis, and generate flexible reports is in great demand in healthcare research. This paper uses a real-world example to illustrate an automated and easily managed process to perform a comprehensive analysis. It will demonstrate macros that help programmers determine what types of statistical tests will be appropriate to examine the probability of mean differences based on sample size and type and distribution of variables. For example, the macros automatically examine if a distribution is parametric or nonparametric and then decide which test should be carried out. Furthermore, the macros automatically perform various tests such as paired or unpaired t-tests, McNemar, Fisher Exact, or Wilcoxon test upon the previous determination sample, sample size, normalization, macro loop, %if-%then-%else, proc step 7
150 What Would I Do without PROC SQL and the Macro Language? Jeffrey M. Abolafia proc sql, macro variable, proc step, macro facility, dictionary tables, length statement, select, by group processing, dataset, label statement 5
151 What's New in PROC FREQ Procedure, Version 9 Jyotheeswara Naidu Yellanki The FREQ procedure is a descriptive procedure as well as a statistical procedure. It produces one-way counts when you have one variable and 2-way counts when you have two vari ables and so on. You can use the FREQ procedure to create crosstabulation tables that summarize data for two or more categorical variables by showing the number of observations for each combination of variable values. Frequency di stributions work best with variables whose values can be described as categorical or discrete, and whose values are best summarized by counts rather than by averages. There are several options in PROC FREQ to control the ty pe of output produced. SAS version 9 has come up with nice useful options. This paper will investigate and describe with examples how and where to use these options and what are their pros and cons. New options that are associated with PROC FREQ are discussed below. NLEVELS options in PROC FREQ statement. ZEROS option in WEIGHT statement proc freq, proc step 8
152 XML Basics for SAS Programmers Yong Li XML is a simple dialect of SGML(Standard Generalized Markup Language). Originally designed to meet the challenges of large-scale electronic publishing, XML has evolved to play an increasingly important role in the exchange of a wide variety of data on the Web and elsewhere. CDISC (Clinical Data Interchange Standards Consortium) has developed several XML-based models for the electronic acquisition, exchange, submission, and archival of clinical trials data. Using XML as the underlying technology for data formatting fits the FDA's strategic direction for electronic submissions. However, XML has not been widely presented at recent SAS user conferences. In this paper, we will describe XML and its basic structure, examine differences between XML and its cousin HTML, and evaluate potential advantages for XML-based submissions compared to the current XPT format. We will also consider other potential uses of XML and review new SAS tools available for reading and writing XML clinical trial, dataset, pharmaceutical industry, clinical data, cdisc 5

Back to Conf go 2006 go 2004

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.