Tracking Dataset Dependencies in Clinical Trials Reporting
|
|
- Kevin Anderson
- 5 years ago
- Views:
Transcription
1 Tracking Dataset Dependencies in Clinical Trials Reporting Binoy Varghese, Cybrid Inc., Wormleysburg, PA Satyanarayana Mogallapu, IT America Inc., Edison, NJ ABSTRACT Most clinical trials study reporting involves creation of analysis datasets from raw data. Analysis datasets function as an intermediate point where complex computations are performed on raw data and stored for later use in tables, listings and graphs. Depending on the complexity of the study and the endpoints being analyzed, these datasets may have to be created using not only raw data but also other analysis datasets. If there are a large number of analysis datasets in a study, it is not only time consuming to manually document dependencies but may also present an area where human errors may lead to severe consequences. The purpose of this paper is to present a technique that will enable to automatically store meta information about datasets including their dependencies that can be used to ensure quality control checks. Some such checks are: output dataset has a time stamp later than input datasets being used for creation, datasets do not have circular dependency, etc. INTRODUCTION Most organizations use a hierarchical folder structure to organize datasets, tables, listings, graphs, programs and associated validation work. Some systems have a built-in framework that automatically tracks analysis to raw/analysis data dependency. If such a framework is not available, programmers can keep track of dependencies by manually documenting them. The dependency list would then determine the order in which analysis dataset programs will be run. Maintaining a dependency list is not only a laborious process that involves constant coordination between team members but also poses the risk of inadvertent human errors. If a considerable amount of analysis datasets are being created (eg. Phase II/Phase III trials), the risk and labor get compounded. Automatic tracking of dataset dependencies can be enabled by making modifications to the programming infrastructure and introducing %read and %write macro calls in the analysis dataset programs. The infrastructure changes and macros are discussed in detail in the subsequent sections. The complete SAS code for the macros (%read and %write) is provided in the paper and can be used as is, in most cases. FOLDER STRUCTURE AND METADATA INFORMATION Fig. 1 Typical folder structure Fig. 2 Modified folder structure 1
2 Fig.1 is a snapshot of a typical folder structure. Fig.2 shows the relative location where metadata folder is created. This folder will contain metadata information generated by the analysis dataset programs using macros %read and %write. Fig.3 is a snapshot of the contents of metadata folder. The dataset meta_a_dem.sas7bdat is automatically created by the analysis dataset program a_dem.sas. The convention followed in naming the metadata dataset is to append meta_ to the program name. Fig. 3 Sample contents of metadata folder Fig. 4 Data structure and sample information contained in meta_a_dem.sas7bdat Fig.4 shows the data structure and typical contents of the meta dataset. The attrib variable helps in identifying the input and output datasets and the program that created this information. The datetime variable has creation datetime information of the input and output datasets and the time at which the program is submitted to the SAS engine for execution. AN and EXTRACT are libnames defined in the autoexec.sas file used by analysis dataset programs. AUTOEXEC FILE The autoexec.sas file used by analysis dataset programs has to be modified to include a library reference meta to the metadata folder. The libname meta is used by %read and %write macros. libname meta "<path to metadata folder>"; 2
3 The sasautos option has to revised to point to the macro folder, if it is not already pointing to this location. The macro folder will contain read.sas and write.sas. options sasautos=("<path to macro folder>") mautosource; %READ MACRO The %read macro is used to read datasets from analysis and extracts data library to the work data library. The %read macro has 3 parameters. They are: LIB source library name (Required parameter) DSN input dataset name (Required parameter) OUT output dataset name (Optional parameter). If this parameter is not specified in the macro call, the dataset copied to the work library will have the same name as the input dataset. The algorithm used in the %read macro is divided into 2 parts: INITIALIZATION This part of the macro is executed only once during a SAS session. The tasks performed are: 1. Obtain <program name>. 2. Check if metadata dataset exists. If so, delete existing dataset. 3. Create dataset structure and output <program name>. 4. Save meta_<program name> dataset in the metadata folder REPETITION This part of the macro is executed at each macro invocation during a SAS session. The tasks performed are: 5. Read dataset from source data library and store in work data library 6. Obtain last modified datetime information and append to meta_<program name> dataset in metadata folder The complete sas code for the %read macro is listed below. Copy the code as is and save as read.sas in the macro folder. %macro read(lib=,dsn=,out=); %if %symexist(firstcall) eq 0 %then %do; %global progname; proc sql; select distinct scan(scan(trim(left(xpath)), -1, "\"),1,'.') into: progname from sashelp.vextfl where index(upcase(xpath),'.sas'); quit proc datasets library=meta nolist; delete meta_&progname; data meta.meta_&progname; length metadata attrib $100; format datetime datetime.; datetime=input("&sysdate:&systime",datetime.); metadata=upcase("&progname"); attrib='program NAME'; output; label metadata='meta data' attrib='attribute' datetime='date & Time' ; 3
4 %end; %if %symexist(firstcall) eq 0 %then %do; %global firstcall; %let firstcall=1; %end; %if &out= %then %let out=&dsn; data work.&out; set &lib..&dsn; ods listing close; ods output Attributes=meta._temp_attrib_&lib._&dsn; proc contents data=&lib..&dsn; ods output close; ods listing; data meta._temp_attrib_&lib._&dsn; length metadata attrib $100; format datetime datetime.; set meta._temp_attrib_&lib._&dsn; where compress(upcase(label1))='lastmodified'; metadata=upcase("&lib..&dsn"); attrib="input DATA"; datetime=nvalue1; keep metadata attrib datetime; proc datasets library=meta nolist; append base=meta.meta_&progname data=meta._temp_attrib_&lib._&dsn; delete _temp_attrib_&lib._&dsn; proc sql undo_policy=none; create table meta.meta_&progname as select distinct * from meta.meta_&progname; %mend read; %WRITE MACRO The %write macro call is made after the analysis dataset is created in the work data library. The %write macro stores the analysis dataset in the analysis data library. With regard to Fig.1 this location is mystudy\data\analysis. The library reference an pointing to this location must be defined the autoexec.sas file. The %write macro has only 1 required parameter which is the analysis dataset name to be stored. The %write macro does not have an initialization stage although it uses macro variable progname that is created by the %read macro. This is based on the assumption that the %write macro call will be made only after the %read macro has been invoked at least once. The tasks performed by the %write macro are: 1. Read dataset from work data library and store in analysis data library 2. Obtain last modified datetime information and append to meta_<program name> dataset in metadata folder The complete sas code for the %write macro is listed below. Copy the code as is and save as write.sas in the macro folder. %macro write(dsn=); proc datasets nolist; 4
5 copy in=work out=an; select &dsn; ods listing close; ods output Attributes=meta._temp_attrib_an_&dsn; proc contents data=an.&dsn; ods output close; ods listing; data meta._temp_attrib_an_&dsn; length metadata attrib $100; format datetime datetime.; set meta._temp_attrib_an_&dsn; where compress(upcase(label1))='lastmodified'; metadata=upcase("an.&dsn"); attrib="output DATA"; datetime=nvalue1; keep metadata attrib datetime; proc datasets library=meta nolist; append base=meta.meta_&progname data=meta._temp_attrib_an_&dsn; delete _temp_attrib_an_&dsn; proc sql undo_policy=none; create table meta.meta_&progname as select distinct * from meta.meta_&progname; %mend write; SAMPLE ANALYSIS DATASET PROGRAM Fig. 5 shows %read and %write macro calls in a sample analysis dataset program. Fig. 5 Sample analysis dataset program --SAS PROCESSING %read(lib=an,dsn=dem); --SAS PROCESSING %read(lib=extract,dsn=ae); --SAS PROCESSING %write(dsn=ae); 5
6 USING THE METADATA INFORMATION SAMPLE APPLICATIONS #1 GENERATING DATA DEPENDENCY LISTING Macro %gen_dep_list uses the metadata information to create a dependency list of all analysis datasets. Fig. 6 shows the proc print output generated by the macro. Fig. 6 Proc Print ouput generated by %gen_dep_list The complete SAS code for the %gen_dep_list is listed below. libname meta "<path of metadata folder>"; %macro gen_dep_list; ods listing close; ods output members=memlist(keep=name); proc datasets library=meta memtype=data; ods output close; ods listing; data _null_; set memlist end=last; call symput('m' compress(put(_n_,best.)),compress(name)); if last then call symput('n',compress(put(_n_,best.))); %do dcnt=1 %to &n; data &&m&dcnt; set meta.&&m&dcnt; if attrib=:'input' then ordr=1; if attrib=:'output' then ordr=2; if attrib=:'program' then ordr=0; proc sort data=&&m&dcnt; by ordr metadata; data &&m&dcnt(keep=pgmname metadata inputdsn rename=(metadata=outputdsn)); retain inputdsn pgmname; length inputdsn $200 pgmname $20; set &&m&dcnt; by ordr metadata; if ordr=0 then pgmname=compress(metadata); if ordr=1 and first.ordr then inputdsn=trim(inputdsn) compress(metadata); else if ordr=1 and not first.ordr then inputdsn=trim(inputdsn) ', ' compress(metadata); if ordr=2 then output; %end; 6
7 data metadata; set %do dcnt=1 %to &n; &&m&dcnt %end; ; proc sort data=metadata; by pgmname; proc print data=metadata; var pgmname outputdsn inputdsn; %mend gen_dep_list; %gen_dep_list; #2 EXECUTION ORDER FOR ANALYSIS DATASET PROGRAMS Macro %exe_order uses the metadata information to obtain the execution order for analysis dataset programs. Fig. 7 shows the proc print output generated by the macro. Fig. 7 Proc Print output generated by %exe_order PROGRAM ANALYSIS DATASET PRIORITY a_dem.sas dem.sas7bdat 1 a_ae.sas ae.sas7bdat 2 a_subjchar.sas subjchar.sas7bdat 3 Fig. 8 Relationship between programs, analysis datasets and priority values The algorithm used in this macro is briefly described below: 1. Create a dataset which contains metadata information for all analysis dataset programs. 2. If the analysis dataset program is not using any other analysis dataset, keep only one observation with inputdsn missing otherwise keep all observations where inputdsn begins with AN. 3. For analysis datasets that have inputdsn missing, assign a priority =1 otherwise assign priority =0. 4. For any analysis dataset with a priority=0, iterate through the dataset to check if all input analysis datasets have been assigned a priority value greater than 0. If all input analysis datasets have a non zero priority value then assign priority value = maximum of (priority values of input datasets) + 1, otherwise reset priority value to Once all analysis datasets have a non-zero priority, the program execution order is determined as the maximum value of priority assigned to each program. 7
8 The complete SAS code for the %exe_order is listed below. %macro exe_order; ods listing close; ods output members=memlist(keep=name); proc datasets library=meta memtype=data; ods output close; ods listing; data _null_; set memlist end=last; call symput('m' compress(put(_n_,best.)),compress(name)); if last then call symput('n',compress(put(_n_,best.))); %do dcnt=1 %to &n; %end; proc sql undo_policy=none; create table &&m&dcnt as select distinct progname, outputdsn, case when cnt=0 then '' else inputdsn end as inputdsn from (select *, sum(index(inputdsn,'an.')) as cnt from (select a.metadata as inputdsn, b.metadata as outputdsn,c.metadata as progname from (select * from meta.&&m&dcnt where attrib='input DATA') a, (select * from meta.&&m&dcnt where attrib='output DATA') b, (select * from meta.&&m&dcnt where attrib='program NAME') c)) where cnt=0 or index(inputdsn,'an.') > 0; data metadata; set %do dcnt=1 %to &n; &&m&dcnt %end; ; if inputdsn='' then priority=1; else priority=0; %let misspr=1; %do %while (&misspr > 0); proc sql undo_policy=none; create table int1 as select * from metadata where inputdsn in (select outputdsn from metadata where priority ne 0) order by progname,outputdsn,inputdsn; create table int2 as select distinct a.progname, a.inputdsn, a.outputdsn, sum(b.priority,1) as priority from int1 a, metadata b 8
9 where a.inputdsn=b.outputdsn order by progname,outputdsn,inputdsn; proc sort data=metadata; by progname outputdsn inputdsn; data metadata(keep=progname outputdsn inputdsn priority); merge metadata(in=a) int2(in=b rename=(priority=newpr)); by progname outputdsn inputdsn; if a; if b then priority=newpr; proc sql undo_policy=none; create table metadata as select inputdsn, outputdsn, progname, case when min(priority)=0 then 0 else max(priority) end as priority from metadata group by progname, outputdsn; proc sql; select count(*) into: misspr from metadata where priority = 0; %end; proc sql; create table pgmordr as select distinct progname length=20 format=$20., max(priority) as priority from metadata group by progname order by priority, progname; proc print data=pgmordr; var progname priority; %mend exe_order; %exe_order; CONCLUSIONS The technique discussed in this paper makes 3 assumptions: 1. Each analysis dataset program within a study will read and write datasets only using the %read and %write macro calls. 2. The metadata folder will contain only datasets created by %read and %write macro calls. 3. The datasets contained within metadata folder will not be renamed, modified or deleted. If these assumptions are not complied with, then the metadata information will be incomplete and unusable. The %read and %write macro calls create metadata datasets for each program and not a single dataset within a study which will encompass information pertaining to all analysis datasets. This is because SAS/SHARE is required for concurrent update of a single SAS dataset whereas this technique avoids the need for concurrent updates. 9
10 Although this technique will accommodate programs that generate multiple analysis datasets, it is advisable to use one program to generate only one analysis dataset. This technique has been successfully tested in batch mode using SAS version 9.2 on Windows Operating System. ACKNOWLEDGMENTS SAS 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. Other brand and product names are registered trademarks or trademarks of their respective companies. CONTACT INFORMATION Your comments and questions are valued and encouraged. Contact the authors at: Binoy Varghese Cybrid Inc., Wormleysburg, PA Satyanarayana Mogallapu IT America Inc., Edison, NJ 10
A SAS Macro Utility to Modify and Validate RTF Outputs for Regional Analyses Jagan Mohan Achi, PPD, Austin, TX Joshua N. Winters, PPD, Rochester, NY
PharmaSUG 2014 - Paper BB14 A SAS Macro Utility to Modify and Validate RTF Outputs for Regional Analyses Jagan Mohan Achi, PPD, Austin, TX Joshua N. Winters, PPD, Rochester, NY ABSTRACT Clinical Study
More informationUseful Tips When Deploying SAS Code in a Production Environment
Paper SAS258-2014 Useful Tips When Deploying SAS Code in a Production Environment ABSTRACT Elena Shtern, SAS Institute Inc., Arlington, VA When deploying SAS code into a production environment, a programmer
More informationCC13 An Automatic Process to Compare Files. Simon Lin, Merck & Co., Inc., Rahway, NJ Huei-Ling Chen, Merck & Co., Inc., Rahway, NJ
CC13 An Automatic Process to Compare Files Simon Lin, Merck & Co., Inc., Rahway, NJ Huei-Ling Chen, Merck & Co., Inc., Rahway, NJ ABSTRACT Comparing different versions of output files is often performed
More informationPhUSE US Connect 2018 Paper CT06 A Macro Tool to Find and/or Split Variable Text String Greater Than 200 Characters for Regulatory Submission Datasets
PhUSE US Connect 2018 Paper CT06 A Macro Tool to Find and/or Split Variable Text String Greater Than 200 Characters for Regulatory Submission Datasets Venkata N Madhira, Shionogi Inc, Florham Park, USA
More informationUsing a Control Dataset to Manage Production Compiled Macro Library Curtis E. Reid, Bureau of Labor Statistics, Washington, DC
AP06 Using a Control Dataset to Manage Production Compiled Macro Library Curtis E. Reid, Bureau of Labor Statistics, Washington, DC ABSTRACT By default, SAS compiles and stores all macros into the WORK
More informationSAS Macro Technique for Embedding and Using Metadata in Web Pages. DataCeutics, Inc., Pottstown, PA
Paper AD11 SAS Macro Technique for Embedding and Using Metadata in Web Pages Paul Gilbert, Troy A. Ruth, Gregory T. Weber DataCeutics, Inc., Pottstown, PA ABSTRACT This paper will present a technique to
More informationData Edit-checks Integration using ODS Tagset Niraj J. Pandya, Element Technologies Inc., NJ Vinodh Paida, Impressive Systems Inc.
PharmaSUG2011 - Paper DM03 Data Edit-checks Integration using ODS Tagset Niraj J. Pandya, Element Technologies Inc., NJ Vinodh Paida, Impressive Systems Inc., TX ABSTRACT In the Clinical trials data analysis
More informationTroy Martin Hughes ABSTRACT INTRODUCTION
MWSUG 2016 - Paper 38 A Failure To EXIST: Why Testing for Data Set Existence with the EXIST Function Alone Is Inadequate for Serious Software Development in Asynchronous, Multiuser, and Parallel Processing
More informationFunctions vs. Macros: A Comparison and Summary
Functions vs. Macros: A Comparison and Summary Mahipal Vanam Phaneendhar Vanam Srinivas Vanam Percept Pharma Services, Bridgewater, NJ ABSTRACT SAS is rich in various built-in functions, and predefined
More informationValidation Summary using SYSINFO
Validation Summary using SYSINFO Srinivas Vanam Mahipal Vanam Shravani Vanam Percept Pharma Services, Bridgewater, NJ ABSTRACT This paper presents a macro that produces a Validation Summary using SYSINFO
More informationAutomated Checking Of Multiple Files Kathyayini Tappeta, Percept Pharma Services, Bridgewater, NJ
PharmaSUG 2015 - Paper QT41 Automated Checking Of Multiple Files Kathyayini Tappeta, Percept Pharma Services, Bridgewater, NJ ABSTRACT Most often clinical trial data analysis has tight deadlines with very
More informationA Mass Symphony: Directing the Program Logs, Lists, and Outputs
PharmaSUG2011 Paper CC24 ABSTRACT A Mass Symphony: Directing the Program Logs, Lists, and Outputs Tom Santopoli, Octagon Research Solutions, Inc., Wayne, PA When executing programs in SAS, it is efficient
More informationPaper A Simplified and Efficient Way to Map Variable Attributes of a Clinical Data Warehouse
Paper 117-28 A Simplified and Efficient Way to Map Variable Attributes of a Clinical Data Warehouse Yanyun Shen, Genentech, Inc., South San Francisco ABSTRACT In the pharmaceutical industry, pooling a
More informationMatt Downs and Heidi Christ-Schmidt Statistics Collaborative, Inc., Washington, D.C.
Paper 82-25 Dynamic data set selection and project management using SAS 6.12 and the Windows NT 4.0 file system Matt Downs and Heidi Christ-Schmidt Statistics Collaborative, Inc., Washington, D.C. ABSTRACT
More informationOrganizing Deliverables for Clinical Trials The Concept of Analyses and its Implementation in EXACT
Paper AD05 Organizing Deliverables for Clinical Trials The Concept of Analyses and its Implementation in EXACT Hansjörg Frenzel, PRA International, Mannheim, Germany ABSTRACT Clinical trials can have deliverables
More informationWhat Is SAS? CHAPTER 1 Essential Concepts of Base SAS Software
3 CHAPTER 1 Essential Concepts of Base SAS Software What Is SAS? 3 Overview of Base SAS Software 4 Components of the SAS Language 4 SAS Files 4 SAS Data Sets 5 External Files 5 Database Management System
More informationAutomating Comparison of Multiple Datasets Sandeep Kottam, Remx IT, King of Prussia, PA
Automating Comparison of Multiple Datasets Sandeep Kottam, Remx IT, King of Prussia, PA ABSTRACT: Have you ever been asked to compare new datasets to old datasets while transfers of data occur several
More informationA SAS Macro for Producing Benchmarks for Interpreting School Effect Sizes
A SAS Macro for Producing Benchmarks for Interpreting School Effect Sizes Brian E. Lawton Curriculum Research & Development Group University of Hawaii at Manoa Honolulu, HI December 2012 Copyright 2012
More informationA Useful Macro for Converting SAS Data sets into SAS Transport Files in Electronic Submissions
Paper FC07 A Useful Macro for Converting SAS Data sets into SAS Transport Files in Electronic Submissions Xingshu Zhu and Shuping Zhang Merck Research Laboratories, Merck & Co., Inc., Blue Bell, PA 19422
More informationMissing Pages Report. David Gray, PPD, Austin, TX Zhuo Chen, PPD, Austin, TX
PharmaSUG2010 - Paper DM05 Missing Pages Report David Gray, PPD, Austin, TX Zhuo Chen, PPD, Austin, TX ABSTRACT In a clinical study it is important for data management teams to receive CRF pages from investigative
More informationSAS Online Training: Course contents: Agenda:
SAS Online Training: Course contents: Agenda: (1) Base SAS (6) Clinical SAS Online Training with Real time Projects (2) Advance SAS (7) Financial SAS Training Real time Projects (3) SQL (8) CV preparation
More informationStoring and Reusing Macros
101 CHAPTER 9 Storing and Reusing Macros Introduction 101 Saving Macros in an Autocall Library 102 Using Directories as Autocall Libraries 102 Using SAS Catalogs as Autocall Libraries 103 Calling an Autocall
More informationPharmaSUG Paper TT11
PharmaSUG 2014 - Paper TT11 What is the Definition of Global On-Demand Reporting within the Pharmaceutical Industry? Eric Kammer, Novartis Pharmaceuticals Corporation, East Hanover, NJ ABSTRACT It is not
More informationQuick and Efficient Way to Check the Transferred Data Divyaja Padamati, Eliassen Group Inc., North Carolina.
ABSTRACT PharmaSUG 2016 - Paper QT03 Quick and Efficient Way to Check the Transferred Data Divyaja Padamati, Eliassen Group Inc., North Carolina. Consistency, quality and timelines are the three milestones
More informationGive me EVERYTHING! A macro to combine the CONTENTS procedure output and formats. Lynn Mullins, PPD, Cincinnati, Ohio
PharmaSUG 2014 - Paper CC43 Give me EVERYTHING! A macro to combine the CONTENTS procedure output and formats. Lynn Mullins, PPD, Cincinnati, Ohio ABSTRACT The PROC CONTENTS output displays SAS data set
More informationThe Output Bundle: A Solution for a Fully Documented Program Run
Paper AD05 The Output Bundle: A Solution for a Fully Documented Program Run Carl Herremans, MSD (Europe), Inc., Brussels, Belgium ABSTRACT Within a biostatistics department, it is required that each statistical
More informationImplementing external file processing with no record delimiter via a metadata-driven approach
Paper 2643-2018 Implementing external file processing with no record delimiter via a metadata-driven approach Princewill Benga, F&P Consulting, Saint-Maur, France ABSTRACT Most of the time, we process
More informationKeeping Track of Database Changes During Database Lock
Paper CC10 Keeping Track of Database Changes During Database Lock Sanjiv Ramalingam, Biogen Inc., Cambridge, USA ABSTRACT Higher frequency of data transfers combined with greater likelihood of changes
More informationPros and Cons of Interactive SAS Mode vs. Batch Mode Irina Walsh, ClinOps, LLC, San Francisco, CA
Pros and Cons of Interactive SAS Mode vs. Batch Mode Irina Walsh, ClinOps, LLC, San Francisco, CA ABSTRACT It is my opinion that SAS programs can be developed in either interactive or batch mode and produce
More informationPharmaSUG 2013 CC26 Automating the Labeling of X- Axis Sanjiv Ramalingam, Vertex Pharmaceuticals, Inc., Cambridge, MA
PharmaSUG 2013 CC26 Automating the Labeling of X- Axis Sanjiv Ramalingam, Vertex Pharmaceuticals, Inc., Cambridge, MA ABSTRACT Labeling of the X-axis usually involves a tedious axis statement specifying
More informationHow to Keep Multiple Formats in One Variable after Transpose Mindy Wang
How to Keep Multiple Formats in One Variable after Transpose Mindy Wang Abstract In clinical trials and many other research fields, proc transpose are used very often. When many variables with their individual
More informationLST in Comparison Sanket Kale, Parexel International Inc., Durham, NC Sajin Johnny, Parexel International Inc., Durham, NC
ABSTRACT PharmaSUG 2013 - Paper PO01 LST in Comparison Sanket Kale, Parexel International Inc., Durham, NC Sajin Johnny, Parexel International Inc., Durham, NC The need for producing error free programming
More informationA SAS Macro to Create Validation Summary of Dataset Report
ABSTRACT PharmaSUG 2018 Paper EP-25 A SAS Macro to Create Validation Summary of Dataset Report Zemin Zeng, Sanofi, Bridgewater, NJ This paper will introduce a short SAS macro developed at work to create
More informationA Macro that can Search and Replace String in your SAS Programs
ABSTRACT MWSUG 2016 - Paper BB27 A Macro that can Search and Replace String in your SAS Programs Ting Sa, Cincinnati Children s Hospital Medical Center, Cincinnati, OH In this paper, a SAS macro is introduced
More informationA Few Quick and Efficient Ways to Compare Data
A Few Quick and Efficient Ways to Compare Data Abraham Pulavarti, ICON Clinical Research, North Wales, PA ABSTRACT In the fast paced environment of a clinical research organization, a SAS programmer has
More informationABSTRACT INTRODUCTION MACRO. Paper RF
Paper RF-08-2014 Burst Reporting With the Help of PROC SQL Dan Sturgeon, Priority Health, Grand Rapids, Michigan Erica Goodrich, Priority Health, Grand Rapids, Michigan ABSTRACT Many SAS programmers need
More informationWHAT ARE SASHELP VIEWS?
Paper PN13 There and Back Again: Navigating between a SASHELP View and the Real World Anita Rocha, Center for Studies in Demography and Ecology University of Washington, Seattle, WA ABSTRACT A real strength
More informationData Quality Review for Missing Values and Outliers
Paper number: PH03 Data Quality Review for Missing Values and Outliers Ying Guo, i3, Indianapolis, IN Bradford J. Danner, i3, Lincoln, NE ABSTRACT Before performing any analysis on a dataset, it is often
More informationRun your reports through that last loop to standardize the presentation attributes
PharmaSUG2011 - Paper TT14 Run your reports through that last loop to standardize the presentation attributes Niraj J. Pandya, Element Technologies Inc., NJ ABSTRACT Post Processing of the report could
More informationContents of SAS Programming Techniques
Contents of SAS Programming Techniques Chapter 1 About SAS 1.1 Introduction 1.1.1 SAS modules 1.1.2 SAS module classification 1.1.3 SAS features 1.1.4 Three levels of SAS techniques 1.1.5 Chapter goal
More information%MISSING: A SAS Macro to Report Missing Value Percentages for a Multi-Year Multi-File Information System
%MISSING: A SAS Macro to Report Missing Value Percentages for a Multi-Year Multi-File Information System Rushi Patel, Creative Information Technology, Inc., Arlington, VA ABSTRACT It is common to find
More informationAn Efficient Tool for Clinical Data Check
PharmaSUG 2018 - Paper AD-16 An Efficient Tool for Clinical Data Check Chao Su, Merck & Co., Inc., Rahway, NJ Shunbing Zhao, Merck & Co., Inc., Rahway, NJ Cynthia He, Merck & Co., Inc., Rahway, NJ ABSTRACT
More informationCreate Metadata Documentation using ExcelXP
Paper AD13 Create Metadata Documentation using ExcelXP Christine Teng, Merck Research Labs, Merck & Co., Inc., Rahway, NJ ABSTRACT The purpose of the metadata documentation is two-fold. First, it facilitates
More informationYour Own SAS Macros Are as Powerful as You Are Ingenious
Paper CC166 Your Own SAS Macros Are as Powerful as You Are Ingenious Yinghua Shi, Department Of Treasury, Washington, DC ABSTRACT This article proposes, for user-written SAS macros, separate definitions
More informationComparison of different ways using table lookups on huge tables
PhUSE 007 Paper CS0 Comparison of different ways using table lookups on huge tables Ralf Minkenberg, Boehringer Ingelheim Pharma GmbH & Co. KG, Ingelheim, Germany ABSTRACT In many application areas the
More informationA simplistic approach to Grid Computing Edmonton SAS Users Group. April 5, 2016 Bill Benson, Enterprise Data Scienc ATB Financial
A simplistic approach to Grid Computing Edmonton SAS Users Group April 5, 2016 Bill Benson, Enterprise Data Scienc ATB Financial Grid Computing The Basics Points to Cover: Benefits of Grid Computing Server
More informationA Table Driven ODS Macro Diane E. Brown, exponential Systems, Indianapolis, IN
A Table Driven ODS Macro Diane E. Brown, exponential Systems, Indianapolis, IN ABSTRACT Tired of coding ODS statements and SAS output procedures for every report you write and having redundant or similar
More informationApplications Development
Two Steps to LIBNAME-Free Coding: Use of Macro Parameters and AUTOEXEC.SAS Zhengyi Fang, Social & Scientific Systems, Inc., Silver Spring, MD Paul Gorrell, IMPAQ International, LLC, Columbia, MD ABSTRACT
More informationPatricia Guldin, Merck & Co., Inc., Kenilworth, NJ USA
SESUG 2015 Paper AD-35 Programming Compliance Made Easy with a Time Saving Toolbox Patricia Guldin, Merck & Co., Inc., Kenilworth, NJ USA ABSTRACT Programmers perform validation in accordance with established
More informationEXAMPLE 3: MATCHING DATA FROM RESPONDENTS AT 2 OR MORE WAVES (LONG FORMAT)
EXAMPLE 3: MATCHING DATA FROM RESPONDENTS AT 2 OR MORE WAVES (LONG FORMAT) DESCRIPTION: This example shows how to combine the data on respondents from the first two waves of Understanding Society into
More informationCustomized Flowcharts Using SAS Annotation Abhinav Srivastva, PaxVax Inc., Redwood City, CA
ABSTRACT Customized Flowcharts Using SAS Annotation Abhinav Srivastva, PaxVax Inc., Redwood City, CA Data visualization is becoming a trend in all sectors where critical business decisions or assessments
More informationLocking SAS Data Objects
59 CHAPTER 5 Locking SAS Data Objects Introduction 59 Audience 60 About the SAS Data Hierarchy and Locking 60 The SAS Data Hierarchy 60 How SAS Data Objects Are Accessed and Used 61 Types of Locks 62 Locking
More informationThe Submission Data File System Automating the Creation of CDISC SDTM and ADaM Datasets
Paper AD-08 The Submission Data File System Automating the Creation of CDISC SDTM and ADaM Datasets Marcus Bloom, Amgen Inc, Thousand Oaks, CA David Edwards, Amgen Inc, Thousand Oaks, CA ABSTRACT From
More informationThe SERVER Procedure. Introduction. Syntax CHAPTER 8
95 CHAPTER 8 The SERVER Procedure Introduction 95 Syntax 95 Syntax Descriptions 96 Examples 101 ALLOCATE SASFILE Command 101 Syntax 101 Introduction You invoke the SERVER procedure to start a SAS/SHARE
More informationUsing an ICPSR set-up file to create a SAS dataset
Using an ICPSR set-up file to create a SAS dataset Name library and raw data files. From the Start menu, launch SAS, and in the Editor program, write the codes to create and name a folder in the SAS permanent
More informationPROGRAMMING ROLLING REGRESSIONS IN SAS MICHAEL D. BOLDIN, UNIVERSITY OF PENNSYLVANIA, PHILADELPHIA, PA
PROGRAMMING ROLLING REGRESSIONS IN SAS MICHAEL D. BOLDIN, UNIVERSITY OF PENNSYLVANIA, PHILADELPHIA, PA ABSTRACT SAS does not have an option for PROC REG (or any of its other equation estimation procedures)
More informationA Simple Time Series Macro Scott Hanson, SVP Risk Management, Bank of America, Calabasas, CA
A Simple Time Series Macro Scott Hanson, SVP Risk Management, Bank of America, Calabasas, CA ABSTRACT One desirable aim within the financial industry is to understand customer behavior over time. Despite
More informationInteractive Programming Using Task in SAS Studio
ABSTRACT PharmaSUG 2018 - Paper QT-10 Interactive Programming Using Task in SAS Studio Suwen Li, Hoffmann-La Roche Ltd., Mississauga, ON SAS Studio is a web browser-based application with visual point-and-click
More informationPharmaSUG Paper AD06
PharmaSUG 2012 - Paper AD06 A SAS Tool to Allocate and Randomize Samples to Illumina Microarray Chips Huanying Qin, Baylor Institute of Immunology Research, Dallas, TX Greg Stanek, STEEEP Analytics, Baylor
More informationPaper HOW-06. Tricia Aanderud, And Data Inc, Raleigh, NC
Paper HOW-06 Building Your First SAS Stored Process Tricia Aanderud, And Data Inc, Raleigh, NC ABSTRACT Learn how to convert a simple SAS macro into three different stored processes! Using examples from
More informationABC Macro and Performance Chart with Benchmarks Annotation
Paper CC09 ABC Macro and Performance Chart with Benchmarks Annotation Jing Li, AQAF, Birmingham, AL ABSTRACT The achievable benchmark of care (ABC TM ) approach identifies the performance of the top 10%
More informationAutomating Preliminary Data Cleaning in SAS
Paper PO63 Automating Preliminary Data Cleaning in SAS Alec Zhixiao Lin, Loan Depot, Foothill Ranch, CA ABSTRACT Preliminary data cleaning or scrubbing tries to delete the following types of variables
More informationDBLOAD Procedure Reference
131 CHAPTER 10 DBLOAD Procedure Reference Introduction 131 Naming Limits in the DBLOAD Procedure 131 Case Sensitivity in the DBLOAD Procedure 132 DBLOAD Procedure 132 133 PROC DBLOAD Statement Options
More informationT.I.P.S. (Techniques and Information for Programming in SAS )
Paper PO-088 T.I.P.S. (Techniques and Information for Programming in SAS ) Kathy Harkins, Carolyn Maass, Mary Anne Rutkowski Merck Research Laboratories, Upper Gwynedd, PA ABSTRACT: This paper provides
More informationA Better Perspective of SASHELP Views
Paper PO11 A Better Perspective of SASHELP Views John R. Gerlach, Independent Consultant; Hamilton, NJ Abstract SASHELP views provide a means to access all kinds of information about a SAS session. In
More informationNote: Basic understanding of the CDISC ODM structure of Events, Forms, ItemGroups, Items, Codelists and MeasurementUnits is required.
Paper CC-018 Exploring SAS PROC CDISC Model=ODM and Its Undocumented Parameters Elena Valkanova, Biostat International, Inc, Tampa, FL Irene Droll, XClinical GmbH, München, Germany ABSTRACT The CDISC Operational
More informationAre you Still Afraid of Using Arrays? Let s Explore their Advantages
Paper CT07 Are you Still Afraid of Using Arrays? Let s Explore their Advantages Vladyslav Khudov, Experis Clinical, Kharkiv, Ukraine ABSTRACT At first glance, arrays in SAS seem to be a complicated and
More informationSo Much Data, So Little Time: Splitting Datasets For More Efficient Run Times and Meeting FDA Submission Guidelines
Paper TT13 So Much Data, So Little Time: Splitting Datasets For More Efficient Run Times and Meeting FDA Submission Guidelines Anthony Harris, PPD, Wilmington, NC Robby Diseker, PPD, Wilmington, NC ABSTRACT
More informationPaper AP14 Modifying The LogParse PassInfo Macro to Provide a Link between Product Usage in Rtrace Log and Time Used in Job Log
Paper AP14 Modifying The LogParse PassInfo Macro to Provide a Link between Product Usage in Rtrace Log and Time Used in Job Log Ronald J. Fehd, Centers for Disease Control and ention, Atlanta, GA, USA
More informationA Simple Framework for Sequentially Processing Hierarchical Data Sets for Large Surveys
A Simple Framework for Sequentially Processing Hierarchical Data Sets for Large Surveys Richard L. Downs, Jr. and Pura A. Peréz U.S. Bureau of the Census, Washington, D.C. ABSTRACT This paper explains
More informationGet Started Writing SAS Macros Luisa Hartman, Jane Liao, Merck Sharp & Dohme Corp.
Get Started Writing SAS Macros Luisa Hartman, Jane Liao, Merck Sharp & Dohme Corp. ABSTRACT The SAS Macro Facility is a tool which lends flexibility to your SAS code and promotes easier maintenance. It
More informationOne Project, Two Teams: The Unblind Leading the Blind
ABSTRACT PharmaSUG 2017 - Paper BB01 One Project, Two Teams: The Unblind Leading the Blind Kristen Reece Harrington, Rho, Inc. In the pharmaceutical world, there are instances where multiple independent
More informationDeveloping Data-Driven SAS Programs Using Proc Contents
Developing Data-Driven SAS Programs Using Proc Contents Robert W. Graebner, Quintiles, Inc., Kansas City, MO ABSTRACT It is often desirable to write SAS programs that adapt to different data set structures
More informationSAS Data Integration Studio 3.3. User s Guide
SAS Data Integration Studio 3.3 User s Guide The correct bibliographic citation for this manual is as follows: SAS Institute Inc. 2006. SAS Data Integration Studio 3.3: User s Guide. Cary, NC: SAS Institute
More informationExporting Variable Labels as Column Headers in Excel using SAS Chaitanya Chowdagam, MaxisIT Inc., Metuchen, NJ
Paper 74924-2011 Exporting Variable Labels as Column Headers in Excel using SAS Chaitanya Chowdagam, MaxisIT Inc., Metuchen, NJ ABSTRACT Excel output is the desired format for most of the ad-hoc reports
More informationSAS Drug Development Program Portability
PharmaSUG2011 Paper SAS-AD03 SAS Drug Development Program Portability Ben Bocchicchio, SAS Institute, Cary NC, US Nancy Cole, SAS Institute, Cary NC, US ABSTRACT A Roadmap showing how SAS code developed
More informationINTRODUCTION TO SAS HOW SAS WORKS READING RAW DATA INTO SAS
TO SAS NEED FOR SAS WHO USES SAS WHAT IS SAS? OVERVIEW OF BASE SAS SOFTWARE DATA MANAGEMENT FACILITY STRUCTURE OF SAS DATASET SAS PROGRAM PROGRAMMING LANGUAGE ELEMENTS OF THE SAS LANGUAGE RULES FOR SAS
More informationCorrecting for natural time lag bias in non-participants in pre-post intervention evaluation studies
Correcting for natural time lag bias in non-participants in pre-post intervention evaluation studies Gandhi R Bhattarai PhD, OptumInsight, Rocky Hill, CT ABSTRACT Measuring the change in outcomes between
More informationVirtual Accessing of a SAS Data Set Using OPEN, FETCH, and CLOSE Functions with %SYSFUNC and %DO Loops
Paper 8140-2016 Virtual Accessing of a SAS Data Set Using OPEN, FETCH, and CLOSE Functions with %SYSFUNC and %DO Loops Amarnath Vijayarangan, Emmes Services Pvt Ltd, India ABSTRACT One of the truths about
More informationSAS Programming Techniques for Manipulating Metadata on the Database Level Chris Speck, PAREXEL International, Durham, NC
PharmaSUG2010 - Paper TT06 SAS Programming Techniques for Manipulating Metadata on the Database Level Chris Speck, PAREXEL International, Durham, NC ABSTRACT One great leap that beginning and intermediate
More informationConversion of CDISC specifications to CDISC data specifications driven SAS programming for CDISC data mapping
PharmaSUG 2017 - Paper DA03 Conversion of CDISC specifications to CDISC data specifications driven SAS programming for CDISC data mapping Yurong Dai, Jiangang Jameson Cai, Eli Lilly and Company ABSTRACT
More informationHarmonizing CDISC Data Standards across Companies: A Practical Overview with Examples
PharmaSUG 2017 - Paper DS06 Harmonizing CDISC Data Standards across Companies: A Practical Overview with Examples Keith Shusterman, Chiltern; Prathima Surabhi, AstraZeneca; Binoy Varghese, Medimmune ABSTRACT
More informationLet s Get FREQy with our Statistics: Data-Driven Approach to Determining Appropriate Test Statistic
PharmaSUG 2018 - Paper EP-09 Let s Get FREQy with our Statistics: Data-Driven Approach to Determining Appropriate Test Statistic Richann Watson, DataRich Consulting, Batavia, OH Lynn Mullins, PPD, Cincinnati,
More informationMapping Clinical Data to a Standard Structure: A Table Driven Approach
ABSTRACT Paper AD15 Mapping Clinical Data to a Standard Structure: A Table Driven Approach Nancy Brucken, i3 Statprobe, Ann Arbor, MI Paul Slagle, i3 Statprobe, Ann Arbor, MI Clinical Research Organizations
More informationTaming a Spreadsheet Importation Monster
SESUG 2013 Paper BtB-10 Taming a Spreadsheet Importation Monster Nat Wooding, J. Sargeant Reynolds Community College ABSTRACT As many programmers have learned to their chagrin, it can be easy to read Excel
More informationPharmaSUG Paper CC02
PharmaSUG 2012 - Paper CC02 Automatic Version Control and Track Changes of CDISC ADaM Specifications for FDA Submission Xiangchen (Bob) Cui, Vertex Pharmaceuticals, Cambridge, MA Min Chen, Vertex Pharmaceuticals,
More informationBetter Metadata Through SAS II: %SYSFUNC, PROC DATASETS, and Dictionary Tables
Paper 3458-2015 Better Metadata Through SAS II: %SYSFUNC, PROC DATASETS, and Dictionary Tables ABSTRACT Louise Hadden, Abt Associates Inc., Cambridge, MA SAS provides a wealth of resources for users to
More informationRegaining Some Control Over ODS RTF Pagination When Using Proc Report Gary E. Moore, Moore Computing Services, Inc., Little Rock, Arkansas
PharmaSUG 2015 - Paper QT40 Regaining Some Control Over ODS RTF Pagination When Using Proc Report Gary E. Moore, Moore Computing Services, Inc., Little Rock, Arkansas ABSTRACT When creating RTF files using
More informationChasing the log file while running the SAS program
Paper 1762-2014 Chasing the log file while running the SAS program Harun Rasheed, Cognizant Technology Solutions; Amarnath Vijayarangan, Genpact ABSTRACT Prompt error alerts through emails while an error
More informationEdwin Ponraj Thangarajan, PRA Health Sciences, Chennai, India Giri Balasubramanian, PRA Health Sciences, Chennai, India
Paper CD15 PhUSE 2016 How to handle different versions of SDTM & DEFINE generation in a Single Study? Edwin Ponraj Thangarajan, PRA Health Sciences, Chennai, India Giri Balasubramanian, PRA Health Sciences,
More informationIntegrating Large Datasets from Multiple Sources Calgary SAS Users Group (CSUG)
Integrating Large Datasets from Multiple Sources Calgary SAS Users Group (CSUG) October 25, 2017 Hotel Le-Germain Outline About the AESO Large Datasets: AESO Context Usual Process Obtain data Connecting
More informationHidden in plain sight: my top ten underpublicized enhancements in SAS Versions 9.2 and 9.3
Hidden in plain sight: my top ten underpublicized enhancements in SAS Versions 9.2 and 9.3 Bruce Gilsen, Federal Reserve Board, Washington, DC ABSTRACT SAS Versions 9.2 and 9.3 contain many interesting
More informationTop Coding Tips. Neil Merchant Technical Specialist - SAS
Top Coding Tips Neil Merchant Technical Specialist - SAS Bio Work in the ANSWERS team at SAS o Analytics as a Service and Visual Analytics Try before you buy SAS user for 12 years obase SAS and O/S integration
More informationReview of PC-SAS Batch Programming
Ronald J. Fehd September 21, 2007 Abstract This paper presents an overview of issues of usage of PC-SAS R in a project directory. Topics covered include directory structures, how to start SAS in a particular
More informationPlot Your Custom Regions on SAS Visual Analytics Geo Maps
SESSION 2885 Plot Your Custom Regions on SAS Visual Analytics Geo Maps Jitendra N. Pandey SAS and all other SAS Institute Inc. product or service names are registered trademarks or trademarks of SAS Institute
More informationProcedure for Stamping Source File Information on SAS Output Elizabeth Molloy & Breda O'Connor, ICON Clinical Research
Procedure for Stamping Source File Information on SAS Output Elizabeth Molloy & Breda O'Connor, ICON Clinical Research ABSTRACT In the course of producing a report for a clinical trial numerous drafts
More informationABSTRACT INTRODUCTION THE GENERAL FORM AND SIMPLE CODE
Paper SA06 Painless Extraction: Options and Macros with PROC PRESENV Keith Fredlund, MS (candidate) Grand Valley State University, Allendale, Michigan; Thinzar Wai, MS (candidate) Grand Valley State University,
More informationCreate a Format from a SAS Data Set Ruth Marisol Rivera, i3 Statprobe, Mexico City, Mexico
PharmaSUG 2011 - Paper TT02 Create a Format from a SAS Data Set Ruth Marisol Rivera, i3 Statprobe, Mexico City, Mexico ABSTRACT Many times we have to apply formats and it could be hard to create them specially
More informationMedDRA Dictionary: Reporting Version Updates Using SAS and Excel
MedDRA Dictionary: Reporting Version Updates Using SAS and Excel Richard Zhou, Johnson & Johnson Pharmaceutical Research and Development, L.L.C Denis Michel, Johnson & Johnson Pharmaceutical Research and
More informationFrom Manual to Automatic with Overdrive - Using SAS to Automate Report Generation Faron Kincheloe, Baylor University, Waco, TX
Paper 152-27 From Manual to Automatic with Overdrive - Using SAS to Automate Report Generation Faron Kincheloe, Baylor University, Waco, TX ABSTRACT This paper is a case study of how SAS products were
More information