Prove QC Quality Create SAS Datasets from RTF Files Honghua Chen, OCKHAM, Cary, NC
|
|
- Charles Willis
- 6 years ago
- Views:
Transcription
1 Prove QC Quality Create SAS Datasets from RTF Files Honghua Chen, OCKHAM, Cary, NC ABSTRACT Since collecting drug trial data is expensive and affects human life, the FDA and most pharmaceutical company SOPs require all datasets and TLFs to be checked by independent secondary QC programmers. Sometimes, comparing hundreds or even thousands pages of tables and listings is tedious and consumes a huge amount of QC programmer s time. This paper outlines a process flow to replace a primary SAS program with ODS RTF statements, create a temporary SAS program, execute the program to create a temporary RTF file [3], extract data from that RTF file to create primary final SAS dataset, and do the proc compare with QC final SAS dataset. The listing produced from proc compare can be saved for auditing purposes. The process can improve QC performance, reduce validation processing and paperwork, and finally prove QC quality. The full program, sample input RTF file and output dataset are available as appendices. INTRODUCTION There are two types of RTF outputs existing in the pharmaceutical industry. The first one involves converting SAS output files (.lst) to RTF and doing some post-processing. There are various techniques available through internet such as out2rtf (search support.sas.com) created for this type of output by David Ward dating back to May, Variations of that macro have played important roles for automation of post processing for.lst files. The other one is called in-text RTF which is created from the SAS ODS RFT function. This two dimensional table format is preferred by medical writers because copy and pasting the table will not cause values to be shifted between columns when this process is applied. A SAS dataset is also a two-dimensional table, so extracting an RTF file to a SAS dataset seems like a logical choice. THE ORIGINAL PROC REPORT PROCESS A pre-process (%prtsetup) before the proc report and a post-process (%pageprt) after the proc report are required for most pharmaceutical reporting systems. The pre-process sets up the destination of the report, font, page layout, etc... While the post-process adds page numbers and formats to the report according to the company s standards. See the following: libname testdata "/u01/home/hchen/company/drugname/protocols"; %prtsetup; proc report data=testdata.final nowd spacing=1 split='*' headline; columns ('--' subjid bthdt age sex newrace ethnic height weight); %pageprt; define subjid / order width=10; define bthdt / display 'Birth Date' width=10; define age / display width=7 'Age*(years)'; define sex / display width=6 'Sex'; define newrace / display width=9 flow 'Race'; define ethnic / display width=10 flow 'Ethnicity'; define height / width=6 'Height*(cm)'; define weight / width=6 'Weight*(kg)'; title2 'Listing of demographics and baseline characteristics'; title3 'Full Analysis Set'; 1
2 THE MODIFIED PROC REPORT PROCESS Using Perl search and replace [1], we replace the pre-process (%prtsetup) with options and ods rtf to set up a new temporary destination and the simplest format for the rtf file. Then we post-process (%pageprt) with ods rtf close. See the following: %let pgm_folderx=/u01/home/hchen/company/drugname/protocols; %let slashx =/; libname testdata "/u01/home/hchen/company/drugname/protocols"; ods listing close; options nodate nonumber ORIENTATION=LANDSCAPE device=sasemf; ods rtf file="&pgm_folderx.&slashx.l-dm-temp.rtf"; proc report ods rtf close; ods listing; EXTRACTING RTF OUTPUT TO SAS DATASET We do not need to understand RTF tags [2] and RTF parse [5] to do the job. Simply looking through the text within the RTF file and eliminating all unrelated rows and transforming the file to create the primary final dataset with variables col1 to coln and titles, column header, and footnotes dataset is all that is needed for the new method. See appendices II (source code) from data rtf_temp1 to data rtf_temp4. COMPLETING THE TASK The QC program creates the QC final dataset containing variables col1 to coln, and compares it to the primary final dataset using PROC COMPARE. proc compare base=primary_final compare=qc_final listall; proc compare base=primary_tit_colhd_ft compare=qc_tit_colhd_ft listall; CONCLUSION We discussed a method of producing a dataset from an rtf file. While the program is created for one company, with little emphasis on modification, transplanting the program to work for many is an achievable and possible goal. Former Chinese leader Deng Xiaoping [4] uttered his most famous quotation: "I don't care if it's a white cat or a black cat. It's a good cat as long as it catches mice." This quote can be interpreted here to mean that being creative, more effective and serving the objectives of the client is more important than whether one follows traditional ideology in this instance. REFERENCES [1] Shuguang Zhang Use Perl Regular Expressions in SAS [2] Sean M. Burke The Universal Document Format RTF Pocket Guide [3] BIOGEN IDEC SMART System Users Guide [4] WIKIPEDIA Deng Xiaoping [5] Duong Tran %RTFparser CONTACT INFORMATION Your comments and questions are valued and encouraged. Contact the author at: Honghua Chen OCKHAM 8000 Regency Parkway, Suite 360 Cary, North Carolina, Phone: hchen@ockham.com Web: 2
3 ACKNOWLEDGMENTS I would like to thank the Biogen Idec programming team in RTP, NC for their helpful suggestions and assistance in testing the program presented in this paper. I would also like to thank Adam Gilbert and Juliet Allen for their encouragement and assistance in reviewing the macro. SAS is a registered trademark of SAS Institute Inc. in the USA and other countries. indicates USA registration. Other brand and product names are trademarks of their respective companies. DISCLAIMER All code contained in this paper is provided as an AS IS basis, without warranty. The author makes no representation, or warranty, either or implied, with respect to the programs, their quality, accuracy, or fitness for a specific purpose. Therefore, the author shall have no liability to you or any other person or entity with respect to any liability, loss, or damage caused or alleged to have been caused directly or indirectly by the programs provided in this paper. This includes, but is not limited to, interruption of service, loss of data, loss of profits, or consequential damages from the use of these programs. 3
4 APPENDIX I (RTF TABLE): APPENDIX II (SOURCE CODE): %macro get_final(inpgm_folder=,pgm_folder=,pgm_name=,s_string=, e_string=,debug=no); *** Output a simple Perl program to SAS dataset qc_ods_rft ***; options NOQUOTELENMAX; data qc_ods_rtf; length pgm_code $200; pgm_code='open (INFILE,"' "&inpgm_folder" '/' "&pgm_name" '.sas" ) or die "can not open the input file";'; pgm_code='open (OUTFILE,">' "&pgm_folder" '/' "&pgm_name" '-temp.sas" ) or die "can not open output file";'; pgm_code='select (OUTFILE);'; 4
5 pgm_code='while (<INFILE>){'; pgm_code='s/' "&s_string" '/ods listing close; options nodate nonumber' ' ORIENTATION=LANDSCAPE device=sasemf; '; pgm_code='ods rtf file="&pgm_folderx.' '&slashx.' "&pgm_name" '-temp.rtf";/g;'; pgm_code='s/' "&e_string" '/ods rtf close; ods listing; /g;'; pgm_code='print; }'; pgm_code='close (INFILE);'; pgm_code='close (OUTFILE);'; *** Call BIOGEN SMART utility macro putpgm to write out perl program qc_ods_rtf.sas ***; %let exe_lib =&pgm_folder/; %include "/biostats/macros/smart/putpgm.sas"; %putpgm(qc_ods_rtf); *** Execute the perl program qc_ods_rft.sas to create a modified primary program &pgm_name.-temp.sas ***; x "perl &pgm_folder/qc_ods_rtf.sas"; data temp000; length pgm_code $200; pgm_code='%let pgm_folderx=' "&pgm_folder" ';'; pgm_code='%let slashx =/;'; %putpgm(temp000); x "cat &pgm_folder./temp000.sas &pgm_folder./&pgm_name.-temp.sas > &pgm_folder./&pgm_name.-temp2.sas" *** Execute the modified primary program &pgm_name.-temp.sas ***; %include "&pgm_folder./&pgm_name.-temp2.sas"; *** Read in the rtf file &pgm_name.-temp.rtf created from &pgm_name.-temp.sas ***; data rtf_input; infile "&pgm_folder./&pgm_name.-temp.rtf" delimiter='00'x MISSOVER DSD lrecl=32767 firstobs=1; format f1 $500.; input f1 $ ; *** Extract text from cells ***; data rtf_temp1; set rtf_input; 5
6 length text $1000; *** Keep all cells from the table ***; if ( index(f1,'\cell}') or index(f1,'\row}') or index(f1,'\trowd\') ) > 0 ; *** Delete column titles ***; if ( index(f1,'\b\') ) = 0; *** Find start position of text ***; pos1 = index(f1,'{'); *** Find end position of text ***; pos2 = index(f1,'\cell}'); lengthx = pos2 - pos1-1; if pos1 ^= 0 and pos2 ^= 0 then do; if pos2 = pos1 + 1 then text = ' '; else text = substr(f1,pos1+1, lengthx); data rtf_input1; set rtf_input; length f1x $1000; retain delx 0 f1x ''; if (index(f1,'\b\') > 0 and index(f1,'\line}') > 0) then do; f1x = trim(left(f1)); delx = 1; delete; if delx = 1 and index(f1,'\line}') > 0 then do; f1x = trim(left(f1x)) trim(left(f1)); delete; if delx = 1 and index(f1,'\cell}') > 0 then do; f1x = trim(left(f1x)) trim(left(f1)); delx = 0; f1 = tranwrd(f1x,'{\line}',' '); f1 = tranwrd(f1,'\~',' '); f1x = ' '; data rtf_tit_foot1; set rtf_input1; length text $1000; retain group 0 ; if index(f1,'\bkmkend') > 0 then group = 2000; if index(f1,'\header') > 0 then group = 1000; if index(f1,'\footer') > 0 then group = 3000; group = group + 1; *** Keep all cells from the table ***; *** keep column titles ***; if ((index(f1,'\b\') and index(f1,'\cell}')) or index(f1,'\row}') or index(f1,'\trowd\') ) > 0 ; 6
7 *** Find start position of text ***; pos1 = index(f1,'{'); *** Find end position of text ***; pos2 = index(f1,'\cell}'); lengthx = pos2 - pos1-1; if pos1 ^= 0 and pos2 ^= 0 then do; if pos2 = pos1 + 1 then text = ' '; else text = substr(f1,pos1+1, lengthx); if text = '' or index(text,' ') > 0 then delete; proc sort nodupkey; by group text; data rtf_tit_foot2; set rtf_input; length text $1000; retain keepx 0 group 3000 ; *** keep footnotes created by macro setft ***; if index(f1,' ') > 0 and index(f1,'\line}') > 0 then do; keepx = 1; group = 3000; if keepx = 1 then group = group + 1; if keepx = 1 and index(f1,'\cell}') > 0 then keepx = 0; text = tranwrd(f1,'{\line}',' '); text = tranwrd(text,'\~',' '); if keepx = 0 then delete; if keepx = 1 and group = 3001 then delete; if text = '' then delete; proc sort nodupkey; by group text; *** Find the maximum column number ***; data rtf_temp2(drop= tot) tot_temp(keep = grp tot); set rtf_temp1; retain grp 0 col -1; if index(f1,'\trowd\') > 0 then do; grp = grp + 1; col = -1; col = col + 1; output rtf_temp2; if index(f1,'\row') > 0 then do; tot = col; output tot_temp; data rtf_temp3; 7
8 merge rtf_temp2(in=a) tot_temp(in=b); by grp; if a; proc sql noprint; select max(tot) into :max_tot from tot_temp; quit; %put ****&max_tot****; *** Delete titles and footnotes cells ***; data rtf_temp4; set rtf_temp3; if tot = &max_tot; if col = 0 or col = &max_tot then delete; *** create SAS dataset with variable col1 to coln ***; proc transpose data=rtf_temp4 out=rtf_temp5 prefix=col; by grp; id col; var text; *** Get the result ***; data primary_tit_colhd_ft; set rtf_tit_foot1 rtf_tit_foot2; if index(text,'source: ') > 0 then delete; keep text group; data primary_final; set rtf_temp5; *** delete rows if all cells are blank ***; length col $1000; col = %do i = 1 %to &max_tot - 2; trim(left(col&i)) %trim(left(col%eval(&max_tot - 1))); if col = '' then delete; drop grp _name_ col; %if %upcase(&debug)=no %then %do; *** Delete perl prigram qc_ods_rtf.sas ***; x "rm &pgm_folder./qc_ods_rtf.sas"; *** Delete the modified primary program &pgm_name.-temp.sas ***; x "rm &pgm_folder./&pgm_name.-temp.sas"; x "rm &pgm_folder./&pgm_name.-temp2.sas"; x "rm &pgm_folder./temp000.sas"; 8
9 *** Delete the rtf file &pgm_name-temp.rtf ***; x "rm &pgm_folder./&pgm_name.-temp.rtf"; proc datasets library=work memtype=data nolist nowarn; delete rtf_temp1 rtf_temp2 rtf_temp3 rtf_temp4 rtf_temp5 qc_ods_rtf tot_temp rtf_input rtf_input1 rtf_tit_foot1 rtf_tit_foot2 temp000; quit;; % %mend get_final; *** Call get_final macro to create SAS dataset PRIMARY_FINAL ***; %include "/u01/home/hchen/macros/get_final.sas"; %get_final(inpgm_folder=%str(/u01/home/hchen/company/drugname/protocols ), pgm_folder=%str(/u01/home/hchen/company/drugname/protocols), pgm_name=l-dm, s_string=%nrstr(%prtsetup;), e_string=%nrstr(%pageprt;),debug=yes); * Use the backslash (\) character to escape any type of character ; * that might interfere with perl code. Use '%\*' if you want to ; * replace '%*' in SAS code; %get_final(inpgm_folder=%str(/u01/home/hchen/company/drugname/protocols ), pgm_folder=%str(/u01/home/hchen/company/drugname/protocols), pgm_name=l-dm2, s_string=%nrstr(%\*prtsetup;), e_string=%nrstr(%\*pageprt;),debug=no); *** Begin of QC program ***; *** End of QC program ***; data qc_final; length col1-col8 $1000; set final; col1 = subjid; col2 = analset; col2 = brthdtc; col3 = agex; col4 = sex; col5 = racex; col6 = ethnic; col7 = htx; col8 = wtx; keep col1-col8; 9
10 APPENDIX III (SAS DATASETS): 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 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 informationQuality Control of Clinical Data Listings with Proc Compare
ABSTRACT Quality Control of Clinical Data Listings with Proc Compare Robert Bikwemu, Pharmapace, Inc., San Diego, CA Nicole Wallstedt, Pharmapace, Inc., San Diego, CA Checking clinical data listings with
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 informationEssential ODS Techniques for Creating Reports in PDF Patrick Thornton, SRI International, Menlo Park, CA
Thornton, S. P. (2006). Essential ODS techniques for creating reports in PDF. Paper presented at the Fourteenth Annual Western Users of the SAS Software Conference, Irvine, CA. Essential ODS Techniques
More informationA Practical and Efficient Approach in Generating AE (Adverse Events) Tables within a Clinical Study Environment
A Practical and Efficient Approach in Generating AE (Adverse Events) Tables within a Clinical Study Environment Abstract Jiannan Hu Vertex Pharmaceuticals, Inc. When a clinical trial is at the stage of
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 informationODS/RTF Pagination Revisit
PharmaSUG 2018 - Paper QT-01 ODS/RTF Pagination Revisit Ya Huang, Halozyme Therapeutics, Inc. Bryan Callahan, Halozyme Therapeutics, Inc. ABSTRACT ODS/RTF combined with PROC REPORT has been used to generate
More informationTips and Tricks to Create In-text Tables in Clinical Trial Repor6ng Using SAS
Tips and Tricks to Create In-text Tables in Clinical Trial Repor6ng Using SAS By Rafi Rahi - by Murshed Siddick 1 Overview In-text tables in CTR Produc
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 informationThere s No Such Thing as Normal Clinical Trials Data, or Is There? Daphne Ewing, Octagon Research Solutions, Inc., Wayne, PA
Paper HW04 There s No Such Thing as Normal Clinical Trials Data, or Is There? Daphne Ewing, Octagon Research Solutions, Inc., Wayne, PA ABSTRACT Clinical Trials data comes in all shapes and sizes depending
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 informationA Macro to Create Program Inventory for Analysis Data Reviewer s Guide Xianhua (Allen) Zeng, PAREXEL International, Shanghai, China
PharmaSUG 2018 - Paper QT-08 A Macro to Create Program Inventory for Analysis Data Reviewer s Guide Xianhua (Allen) Zeng, PAREXEL International, Shanghai, China ABSTRACT As per Analysis Data Reviewer s
More informationPharmaSUG China 2018 Paper AD-62
PharmaSUG China 2018 Paper AD-62 Decomposition and Reconstruction of TLF Shells - A Simple, Fast and Accurate Shell Designer Chengeng Tian, dmed Biopharmaceutical Co., Ltd., Shanghai, China ABSTRACT Table/graph
More informationClinical Data Visualization using TIBCO Spotfire and SAS
ABSTRACT SESUG Paper RIV107-2017 Clinical Data Visualization using TIBCO Spotfire and SAS Ajay Gupta, PPD, Morrisville, USA In Pharmaceuticals/CRO industries, you may receive requests from stakeholders
More informationPost-Processing.LST files to get what you want
Paper CC04 Post-Processing.LST files to get what you want Edward Foster, Oxford Pharmaceutical Sciences, UK ABSTRACT SAS has a range of procedures you can use to create table and listing output. These
More informationODS DOCUMENT, a practical example. Ruurd Bennink, OCS Consulting B.V., s-hertogenbosch, the Netherlands
Paper CC01 ODS DOCUMENT, a practical example Ruurd Bennink, OCS Consulting B.V., s-hertogenbosch, the Netherlands ABSTRACT The ODS DOCUMENT destination (in short ODS DOCUMENT) is perhaps the most underutilized
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 informationIT S THE LINES PER PAGE THAT COUNTS Jonathan Squire, C2RA, Cambridge, MA Johnny Tai, Comsys, Portage, MI
IT S THE LINES PER PAGE THAT COUNTS Jonathan Squire, C2RA, Cambridge, MA Johnny Tai, Comsys, Portage, MI ABSTRACT When the bodytitle option is used to keep titles and footnotes independent of the table
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 informationPaper An Automated Reporting Macro to Create Cell Index An Enhanced Revisit. Shi-Tao Yeh, GlaxoSmithKline, King of Prussia, PA
ABSTRACT Paper 236-28 An Automated Reporting Macro to Create Cell Index An Enhanced Revisit When generating tables from SAS PROC TABULATE or PROC REPORT to summarize data, sometimes it is necessary to
More informationUsing GSUBMIT command to customize the interface in SAS Xin Wang, Fountain Medical Technology Co., ltd, Nanjing, China
PharmaSUG China 2015 - Paper PO71 Using GSUBMIT command to customize the interface in SAS Xin Wang, Fountain Medical Technology Co., ltd, Nanjing, China One of the reasons that SAS is widely used as the
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 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 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 informationfootnote1 height=8pt j=l "(Rev. &sysdate)" j=c "{\b\ Page}{\field{\*\fldinst {\b\i PAGE}}}";
Producing an Automated Data Dictionary as an RTF File (or a Topic to Bring Up at a Party If You Want to Be Left Alone) Cyndi Williamson, SRI International, Menlo Park, CA ABSTRACT Data dictionaries are
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 informationPharmaSUG Paper PO12
PharmaSUG 2015 - Paper PO12 ABSTRACT Utilizing SAS for Cross-Report Verification in a Clinical Trials Setting Daniel Szydlo, Fred Hutchinson Cancer Research Center, Seattle, WA Iraj Mohebalian, Fred Hutchinson
More informationSAS Graphs in Small Multiples Andrea Wainwright-Zimmerman, Capital One, Richmond, VA
Paper SIB-113 SAS Graphs in Small Multiples Andrea Wainwright-Zimmerman, Capital One, Richmond, VA ABSTRACT Edward Tufte has championed the idea of using "small multiples" as an effective way to present
More informationPresentation Quality Bulleted Lists Using ODS in SAS 9.2. Karl M. Kilgore, PhD, Cetus Group, LLC, Timonium, MD
Presentation Quality Bulleted Lists Using ODS in SAS 9.2 Karl M. Kilgore, PhD, Cetus Group, LLC, Timonium, MD ABSTRACT Business reports frequently include bulleted lists of items: summary conclusions from
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 information3N Validation to Validate PROC COMPARE Output
ABSTRACT Paper 7100-2016 3N Validation to Validate PROC COMPARE Output Amarnath Vijayarangan, Emmes Services Pvt Ltd, India In the clinical research world, data accuracy plays a significant role in delivering
More informationA Macro to replace PROC REPORT!?
Paper TS03 A Macro to replace PROC REPORT!? Katja Glass, Bayer Pharma AG, Berlin, Germany ABSTRACT Some companies have macros for everything. But is that really required? Our company even has a macro to
More informationA Macro To Generate a Study Report Hany Aboutaleb, Biogen Idec, Cambridge, MA
Paper PO26 A Macro To Generate a Study Report Hany Aboutaleb, Biogen Idec, Cambridge, MA Abstract: Imagine that you are working on a study (project) and you would like to generate a report for the status
More informationPDF Multi-Level Bookmarks via SAS
Paper TS04 PDF Multi-Level Bookmarks via SAS Steve Griffiths, GlaxoSmithKline, Stockley Park, UK ABSTRACT Within the GlaxoSmithKline Oncology team we recently experienced an issue within our patient profile
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 informationMultiple Graphical and Tabular Reports on One Page, Multiple Ways to Do It Niraj J Pandya, CT, USA
Paper TT11 Multiple Graphical and Tabular Reports on One Page, Multiple Ways to Do It Niraj J Pandya, CT, USA ABSTRACT Creating different kind of reports for the presentation of same data sounds a normal
More informationAdvanced Visualization using TIBCO Spotfire and SAS
PharmaSUG 2018 - Paper DV-04 ABSTRACT Advanced Visualization using TIBCO Spotfire and SAS Ajay Gupta, PPD, Morrisville, USA In Pharmaceuticals/CRO industries, you may receive requests from stakeholders
More informationThe Dataset Diet How to transform short and fat into long and thin
Paper TU06 The Dataset Diet How to transform short and fat into long and thin Kathryn Wright, Oxford Pharmaceutical Sciences, UK ABSTRACT What do you do when you are given a dataset with one observation
More informationPharmaSUG Paper TT10 Creating a Customized Graph for Adverse Event Incidence and Duration Sanjiv Ramalingam, Octagon Research Solutions Inc.
Abstract PharmaSUG 2011 - Paper TT10 Creating a Customized Graph for Adverse Event Incidence and Duration Sanjiv Ramalingam, Octagon Research Solutions Inc. Adverse event (AE) analysis is a critical part
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 informationAn Easy Way to Split a SAS Data Set into Unique and Non-Unique Row Subsets Thomas E. Billings, MUFG Union Bank, N.A., San Francisco, California
An Easy Way to Split a SAS Data Set into Unique and Non-Unique Row Subsets Thomas E. Billings, MUFG Union Bank, N.A., San Francisco, California This work by Thomas E. Billings is licensed (2017) under
More informationCompute; Your Future with Proc Report
Paper PO10 Compute; Your Future with Proc Report Ian J Dixon, GlaxoSmithKline, Harlow, UK Suzanne E Johnes, GlaxoSmithKline, Harlow, UK ABSTRACT PROC REPORT is widely used within the pharmaceutical industry
More informationProgramming Gems that are worth learning SQL for! Pamela L. Reading, Rho, Inc., Chapel Hill, NC
Paper CC-05 Programming Gems that are worth learning SQL for! Pamela L. Reading, Rho, Inc., Chapel Hill, NC ABSTRACT For many SAS users, learning SQL syntax appears to be a significant effort with a low
More informationPharmaSUG Paper AD21
PharmaSUG2010 - Paper AD21 Operational Uses of Patient Profiles Even in an ectd and SDTM World Terek Peterson, Octagon Research Solutions, Wayne, PA Sanjiv Ramalingam, Octagon Research Solutions, Wayne,
More informationChapter 2: Getting Data Into SAS
Chapter 2: Getting Data Into SAS Data stored in many different forms/formats. Four categories of ways to read in data. 1. Entering data directly through keyboard 2. Creating SAS data sets from raw data
More informationUse That SAP to Write Your Code Sandra Minjoe, Genentech, Inc., South San Francisco, CA
Paper DM09 Use That SAP to Write Your Code Sandra Minjoe, Genentech, Inc., South San Francisco, CA ABSTRACT In this electronic age we live in, we usually receive the detailed specifications from our biostatistician
More information%MAKE_IT_COUNT: An Example Macro for Dynamic Table Programming Britney Gilbert, Juniper Tree Consulting, Porter, Oklahoma
Britney Gilbert, Juniper Tree Consulting, Porter, Oklahoma ABSTRACT Today there is more pressure on programmers to deliver summary outputs faster without sacrificing quality. By using just a few programming
More informationUtilizing SAS for Cross- Report Verification in a Clinical Trials Setting
Utilizing SAS for Cross- Report Verification in a Clinical Trials Setting Daniel Szydlo, SCHARP/Fred Hutch, Seattle, WA Iraj Mohebalian, SCHARP/Fred Hutch, Seattle, WA Marla Husnik, SCHARP/Fred Hutch,
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 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 information186 Statistics, Data Analysis and Modeling. Proceedings of MWSUG '95
A Statistical Analysis Macro Library in SAS Carl R. Haske, Ph.D., STATPROBE, nc., Ann Arbor, M Vivienne Ward, M.S., STATPROBE, nc., Ann Arbor, M ABSTRACT Statistical analysis plays a major role in pharmaceutical
More informationAutomated Macros to Extract Data from the National (Nationwide) Inpatient Sample (NIS)
Paper 3327-2015 Automated Macros to Extract Data from the National (Nationwide) Inpatient Sample (NIS) Ravi Gaddameedi, California State University, Eastbay, CA; Usha Kreaden, Intuitive Surgical, Sunnyvale,
More informationTLFs: Replaying Rather than Appending William Coar, Axio Research, Seattle, WA
ABSTRACT PharmaSUG 2013 - Paper PO16 TLFs: Replaying Rather than Appending William Coar, Axio Research, Seattle, WA In day-to-day operations of a Biostatistics and Statistical Programming department, we
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 informationMoving Data and Results Between SAS and Excel. Harry Droogendyk Stratia Consulting Inc.
Moving Data and Results Between SAS and Excel Harry Droogendyk Stratia Consulting Inc. Introduction SAS can read ( and write ) anything Introduction In the end users want EVERYTHING in. Introduction SAS
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 informationUsing V9 ODS LAYOUT to Simplify Generation of Individual Case Summaries Ling Y. Chen, Rho, Inc., Newton, MA
Paper PO02 Using V9 ODS LAYOUT to Simplify Generation of Individual Case Summaries Ling Y. Chen, Rho, Inc., Newton, MA ABSTRACT Up until now, individual case summaries involve complicated data _null_ coding
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 informationSummary Table for Displaying Results of a Logistic Regression Analysis
PharmaSUG 2018 - Paper EP-23 Summary Table for Displaying Results of a Logistic Regression Analysis Lori S. Parsons, ICON Clinical Research, Medical Affairs Statistical Analysis ABSTRACT When performing
More informationUsing PROC SQL to Generate Shift Tables More Efficiently
ABSTRACT SESUG Paper 218-2018 Using PROC SQL to Generate Shift Tables More Efficiently Jenna Cody, IQVIA Shift tables display the change in the frequency of subjects across specified categories from baseline
More informationTales from the Help Desk 6: Solutions to Common SAS Tasks
SESUG 2015 ABSTRACT Paper BB-72 Tales from the Help Desk 6: Solutions to Common SAS Tasks Bruce Gilsen, Federal Reserve Board, Washington, DC In 30 years as a SAS consultant at the Federal Reserve Board,
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 informationSD10 A SAS MACRO FOR PERFORMING BACKWARD SELECTION IN PROC SURVEYREG
Paper SD10 A SAS MACRO FOR PERFORMING BACKWARD SELECTION IN PROC SURVEYREG Qixuan Chen, University of Michigan, Ann Arbor, MI Brenda Gillespie, University of Michigan, Ann Arbor, MI ABSTRACT This paper
More informationSAS Log Summarizer Finding What s Most Important in the SAS Log
Paper CC-037 SAS Log Summarizer Finding What s Most Important in the SAS Log Milorad Stojanovic RTI International Education Surveys Division RTP, North Carolina ABSTRACT Validity of SAS programs is an
More information%ANYTL: A Versatile Table/Listing Macro
Paper AD09-2009 %ANYTL: A Versatile Table/Listing Macro Yang Chen, Forest Research Institute, Jersey City, NJ ABSTRACT Unlike traditional table macros, %ANTL has only 3 macro parameters which correspond
More informationGeneral Methods to Use Special Characters Dennis Gianneschi, Amgen Inc., Thousand Oaks, CA
General Methods to Use Special Characters Dennis Gianneschi, Amgen Inc., Thousand Oaks, CA ABSTRACT This paper presents three general methods to use special characters in SAS procedure output as well as
More informationABSTRACT INTRODUCTION TRICK 1: CHOOSE THE BEST METHOD TO CREATE MACRO VARIABLES
An Efficient Method to Create a Large and Comprehensive Codebook Wen Song, ICF International, Calverton, MD Kamya Khanna, ICF International, Calverton, MD Baibai Chen, ICF International, Calverton, MD
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 informationMy Reporting Requires a Full Staff Help!
ABSTRACT Paper GH-03 My Reporting Requires a Full Staff Help! Erin Lynch, Daniel O Connor, Himesh Patel, SAS Institute Inc., Cary, NC With cost cutting and reduced staff, everyone is feeling the pressure
More informationReading in Data Directly from Microsoft Word Questionnaire Forms
Paper 1401-2014 Reading in Data Directly from Microsoft Word Questionnaire Forms Sijian Zhang, VA Pittsburgh Healthcare System ABSTRACT If someone comes to you with hundreds of questionnaire forms in Microsoft
More informationSAS Clinical Data Integration Server 2.1
SAS Clinical Data Integration Server 2.1 User s Guide Preproduction Documentation THIS DOCUMENT IS A PREPRODUCTION DRAFT AND IS PROVIDED BY SAS INSTITUTE INC. ON AN AS IS BASIS WITHOUT WARRANTY OF ANY
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 informationUsing Templates Created by the SAS/STAT Procedures
Paper 081-29 Using Templates Created by the SAS/STAT Procedures Yanhong Huang, Ph.D. UMDNJ, Newark, NJ Jianming He, Solucient, LLC., Berkeley Heights, NJ ABSTRACT SAS procedures provide a large quantity
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 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 informationChapter 6: Modifying and Combining Data Sets
Chapter 6: Modifying and Combining Data Sets The SET statement is a powerful statement in the DATA step. Its main use is to read in a previously created SAS data set which can be modified and saved as
More informationSAS PROGRAMMING AND APPLICATIONS (STAT 5110/6110): FALL 2015 Module 2
SAS PROGRAMMING AND APPLICATIONS (STAT 5110/6110): FALL 2015 Department of MathemaGcs and StaGsGcs Phone: 4-3620 Office: Parker 364- A E- mail: carpedm@auburn.edu Web: hup://www.auburn.edu/~carpedm/stat6110
More informationUntangling and Reformatting NT PerfMon Data to Load a UNIX SAS Database With a Software-Intelligent Data-Adaptive Application
Paper 297 Untangling and Reformatting NT PerfMon Data to Load a UNIX SAS Database With a Software-Intelligent Data-Adaptive Application Heather McDowell, Wisconsin Electric Power Co., Milwaukee, WI LeRoy
More informationPaper PO07. %RiTEN. Duong Tran, Independent Consultant, London, Great Britain
Paper PO07 %RiTEN Duong Tran, Independent Consultant, London, Great Britain ABSTRACT For years SAS programmers within the Pharmaceutical industry have been searching for answers to produce tables and listings
More informationThe Impossible An Organized Statistical Programmer Brian Spruell and Kevin Mcgowan, SRA Inc., Durham, NC
Paper CS-061 The Impossible An Organized Statistical Programmer Brian Spruell and Kevin Mcgowan, SRA Inc., Durham, NC ABSTRACT Organization is the key to every project. It provides a detailed history of
More informationA Macro to Manage Table Templates Mark Mihalyo, Community Care Behavioral Health Organization, Pittsburgh, PA
A Macro to Manage Table Templates Mark Mihalyo, Community Care Behavioral Health Organization, Pittsburgh, PA ABSTRACT The scenario: Data must be placed in a table or chart design provided by the company
More informationPharmaSUG Paper AD09
PharmaSUG 2015 - Paper AD09 The Dependency Mapper: How to save time on changes post database lock Apoorva Joshi, Biogen, Cambridge, MA Shailendra Phadke, Eliassen Group, Wakefield, MA ABSTRACT We lay emphasis
More informationHash Objects for Everyone
SESUG 2015 Paper BB-83 Hash Objects for Everyone Jack Hall, OptumInsight ABSTRACT The introduction of Hash Objects into the SAS toolbag gives programmers a powerful way to improve performance, especially
More informationIndenting with Style
ABSTRACT Indenting with Style Bill Coar, Axio Research, Seattle, WA Within the pharmaceutical industry, many SAS programmers rely heavily on Proc Report. While it is used extensively for summary tables
More information3. Almost always use system options options compress =yes nocenter; /* mostly use */ options ps=9999 ls=200;
Randy s SAS hints, updated Feb 6, 2014 1. Always begin your programs with internal documentation. * ***************** * Program =test1, Randy Ellis, first version: March 8, 2013 ***************; 2. Don
More informationStatistics and Data Analysis. Common Pitfalls in SAS Statistical Analysis Macros in a Mass Production Environment
Common Pitfalls in SAS Statistical Analysis Macros in a Mass Production Environment Huei-Ling Chen, Merck & Co., Inc., Rahway, NJ Aiming Yang, Merck & Co., Inc., Rahway, NJ ABSTRACT Four pitfalls are commonly
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 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 informationSAS 101. Based on Learning SAS by Example: A Programmer s Guide Chapter 21, 22, & 23. By Tasha Chapman, Oregon Health Authority
SAS 101 Based on Learning SAS by Example: A Programmer s Guide Chapter 21, 22, & 23 By Tasha Chapman, Oregon Health Authority Topics covered All the leftovers! Infile options Missover LRECL=/Pad/Truncover
More informationIf You Need These OBS and These VARS, Then Drop IF, and Keep WHERE Jay Iyengar, Data Systems Consultants LLC
Paper 2417-2018 If You Need These OBS and These VARS, Then Drop IF, and Keep WHERE Jay Iyengar, Data Systems Consultants LLC ABSTRACT Reading data effectively in the DATA step requires knowing the implications
More informationAn Animated Guide: Proc Transpose
ABSTRACT An Animated Guide: Proc Transpose Russell Lavery, Independent Consultant If one can think about a SAS data set as being made up of columns and rows one can say Proc Transpose flips the columns
More informationSAS Clinical Data Integration 2.4
SAS Clinical Data Integration 2.4 User s Guide SAS Documentation The correct bibliographic citation for this manual is as follows: SAS Institute Inc. 2013. SAS Clinical Data Integration 2.4: User's Guide.
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 informationMaking a List, Checking it Twice (Part 1): Techniques for Specifying and Validating Analysis Datasets
PharmaSUG2011 Paper CD17 Making a List, Checking it Twice (Part 1): Techniques for Specifying and Validating Analysis Datasets Elizabeth Li, PharmaStat LLC, Newark, California Linda Collins, PharmaStat
More informationODS or DDE for Data Presentation -- A Preliminary Comparison of Output from Different Sources John He, Cephalon, Inc.
Paper 145-28 ODS or DDE for -- A Preliminary Comparison of Output from Different Sources John He, Cephalon, Inc., West Chester, PA ABSTRACT To present the data in a desired format from different sources,
More informationOmitting Records with Invalid Default Values
Paper 7720-2016 Omitting Records with Invalid Default Values Lily Yu, Statistics Collaborative Inc. ABSTRACT Many databases include default values that are set inappropriately. These default values may
More informationPharmaSUG Paper PO22
PharmaSUG 2015 - Paper PO22 Challenges in Developing ADSL with Baseline Data Hongyu Liu, Vertex Pharmaceuticals Incorporated, Boston, MA Hang Pang, Vertex Pharmaceuticals Incorporated, Boston, MA ABSTRACT
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 informationAn Efficient Method to Create Titles for Multiple Clinical Reports Using Proc Format within A Do Loop Youying Yu, PharmaNet/i3, West Chester, Ohio
PharmaSUG 2012 - Paper CC12 An Efficient Method to Create Titles for Multiple Clinical Reports Using Proc Format within A Do Loop Youying Yu, PharmaNet/i3, West Chester, Ohio ABSTRACT Do you know how to
More information