Posters. Paper

Size: px
Start display at page:

Download "Posters. Paper"

Transcription

1 Paper Using SAS/AF to Create a SAS Program File Explorer Rob Nelson, Centers for Disease Control and Prevention, Atlanta, GA Janet Royalty, Centers for Disease Control and Prevention, Atlanta, GA Ernie Lewis, Greenville, SC ABSTRACT The SAS version 8 application presented in this poster combines the interactive features of SAS/AF with a methodology for documenting SAS programs to create a descriptive index of SAS program files within a given Windows directory. File name, creation date, and program header description are captured and displayed in an easy-to-browse data table. This application also includes a search tool function that can locate programs containing a specified string of SAS code. While the methods presented in this paper apply to intermediate SAS programmers, they can also be modified for use by more advanced programmers. INTRODUCTION Most SAS programmers find it useful to adapt previously written code to new projects. Normally, efficient maintenance of a SAS program file directory depends on internal program code documentation, explaining the intricacies of specific code, and external file documentation, explaining the overall purpose of the program and summarizing any innovative code. The prototype SAS Program File Explorer application illustrated in this article was developed in SAS version 8 on the Windows NT platform. It modifies Mr. Gary Cunningham s technique for creating an index of SAS programs to enable display of program file summary information in table format, searching directories for specific SAS program code, and submitting and viewing selected SAS programs. The application is presented in three parts. First, the base SAS code for creating a SAS program file indexing program is presented. Second, the SAS/AF techniques for developing the frame, frame objects, and SCL are explored. Third, additional base SAS code is given which can be used to create a search mechanism for the application. In reading this paper, please consider the following. Directory information read into SAS using the pipe varies across operating system and operating system version. Section 2 of programs.sas and section 1 of search.sas might need to be changed to reflect this. In addition, this program was creating using SAS files with short file extensions. As a result, this application will include SAS version 8.0 data sets and catalogs with long file extensions in the SAS program file listing unless the application is modified. Finally, some familiarity with SAS/AF is assumed. CREATING A BASE SAS INDEXING PROGRAM Below, the file programs.sas, a modification of Mr. Cunningham s program, is reviewed. This file, which obtains information on SAS program files within a specified directory, is divided into 4 sections that are explained separately. SECTION 1 Descriptive headers are the backbone of this application, since this information is captured and displayed on the program directory frame. In order to fully take advantage of the application, all SAS program files should have a header. Otherwise, only file name and file modification date will be displayed. Additionally, the header structure should remain uniform across programs. Note that the programming techniques below can be used to add additional header categories /******************************************** * Program Name: programs.sas * Description: SAS program dir, mod. of * Date: 06/13/2000 * Modified: 08/02/2000; 1/9/2001 * Author: Rob Nelson * Comments: All pgm hdrs should use format! ********************************************/ SECTION 2 In this section, the macro %progindx is created. This macro is ed from the SAS program file explorer application each time a new directory is opened. The directory is fed to the macro using the parameter &dir. An unnamed pipe is used to create a SAS data set, named pgmdat, containing file name and file creation date for all files in the directory with the extension.sas. %macro progindx(dir=); options nodate nocenter number; /******************************************** Index function - which searches source for string - could be used to make sure that path passed in is correct: if index(dir,'(default)') then endsas; Use a pipe to create list of all SAS programs ********************************************/ /* Clear old data sets */ proc datasets; delete pgmdat allpgm pgmdes sasprogs; /* Unnamed pipe obtains file info. &dir given in SCL */ filename fileinfo pipe "dir &dir.\*.sas"; data pgmdat (KEEP=PGM DATE); infile fileinfo length=l; line $varying200. l; pgm=substr(line,40,50); pgm = upcase(pgm); date=substr(line,1,8); if substr(date,3,1)='/' and pgm NE ' '; filename fileinfo clear; SECTION 3 Next, the first 10 lines of each SAS program file identified in the previous step are parsed for a description. This information is stored in the data set pgmdes. If the header convention shown in step 1 is not used, description data will be not included. The dataset pgmdes is then merged with the data set from section 2, pgmdat to create sasprogs. /* Determine num of SAS pgms*/ set pgmdat end=eof; if eof then symput ('total',left(_n_)); /** Retrieve program SAS pgm file descrip **/ %if &total NE 0 %then %do i=1 %to &total; %let pgm=;

2 set pgmdat; if _n_=&i; symput('pgm',trim(pgm)); symput('dat',trim(date)); filename saspgm "&dir.\&pgm"; data pgmdes (keep=program descript date); length program $ 200; infile saspgm missover lrecl=200 pad obs=10 end=eof; line $200.; retain gotdesc 0; drop colon i; program="&pgm"; date="&dat"; if index(upcase(line),'description:') > 0 THEN DO; colon=index(line,':'); do i=1 to colon+1; substr(line,i,1)=' '; gotdesc=1; descript=left(line); output; if eof and gotdesc=0 then do; descript=' '; output; set sasprogs pgmdes; if _n_=1 and program=' ' then delete; filename saspgm clear; % /* If no SAS pgm files, create blank ds */ %else %do; data sasprogs(keep=program descript date); attrib program length=$25 descript length=$100; % SECTION 4 In the final step, macro variables are created which will be used to supply column width to the AF application. The data set is also sorted for display, and the macro definition ended. /* Create str len macro vars to */ /* dynamiy control col width in SCL */ /* (labeled sections update & btnsearch) */ set sasprogs end=last; attrib pgmlenc deslenc length=$8; retain pgmlen 15 deslen 15; label program='program' descript='description' date='date'; if length(trim(pgm)) > pgmlen then pgmlen=length(trim(pgm)); if length(trim(descript)) > deslen then deslen=length(trim(descript)); if last=1 then do; pgmlenc=pgmlen; deslenc=deslen; symput('pgmlen',pgmlenc); symput('deslen',deslenc); proc sort data=sasprogs; by program; %mend progindx; CREATING THE SAS/AF INTERFACE The application s frame layout is illustrated below in Figure 1. The frame is named programs. Table 1 lists object name and type. Object text and labels are shown in the figure. Note that the text entry object is used for all text, including labels. This allows more flexibility, particularly with background color. However, the following object attributes must be ste to use text entry objects in place of text labels: borderstyle= None, editable= No. Also, the commandonclick property of btnexit should be set to End. Finally, the use object name as id in scl box should be checked in the property box of the object tblprogs. Figure 1 - Frame Layout Table 1 Object List No. Name Object type 1 lbltitle Text entry control 2 tblprogs Data table 3 ntndir Push button 4 lbldirlabel Text entry control 5 lbldirdisplay Text entry control 6 containerbox1 Container box 7 entsearch Text entry control 8 btnsearch Push button control 9 lblsearch Text entry control 10 btnopen Push button control 11 btnexit Push button control 12 lbltotobs Text entry control 13 lblnumfiles Text entry control 14 lblnumfound Text entry control 15 lblfound Text entry control PROGRAMS.SCL After creating the frame and all objects, add the following frame SCL. This code allows the user to select a program file directory, search for a string of code within the SAS program files in that directory. Several features of this code deserve mention. Submit blocks are used to run the Base SAS programs programs.sas and search.sas. These programs should be tested before starting frame development. The filedialog function is used to a directory dialog box. This is used both at application start-up, and when the user changes directory. Column width in the data table is controlled using the _setcolumnattributes method. init: _frame_=_frame_; length dat1 8 direct progg program $50; declare object expid datable, num pgmvar desvar codvar X Y, char string1 pgmbox findcnt; /* Position form */ _frame_=_frame_; dcl num col row scol srow; col=round((winfo('maxcol')),1); row=round((winfo('maxrow')),1); 2

3 _frame_._setwindowsize(1,1,row,col); _frame_._get_widget_('tblprogs',datable); symput('pgmlen',' '); symput('deslen',' '); symput('dirtex',' '); * select directory dialog box; rc=filedialog('aggregate',director,'','','*.s as','','','','','','','','','','','choose SAS Program File Directory', '','','','','','','','','',''); if rc NE 0 then goto errdir; else do; lbldirdisplay.text=director; goto update; update: direct=trim(lbldirdisplay.text); symput('direct1',direct); %include 't:\serodata\sasapps\dev\sugi\programs.sas'; %progindx(dir=&direct1); DATA _null_; CALL SYMPUT('totobs',numobs); STOP; SET work.sasprogs NOBS=numobs; RUN; rc=open('work.sasprogs','u'); dat1=dsid('work.sasprogs','u'); datable._setdataset('work.sasprogs'); datable._displaycolumnlabel('program','date', 'descript'); datable._setdisplayedcolumns('program','descr ipt','date'); pgmvar=((symget('pgmlen') + 1) * 5); *BECAUSE UPCASE; X=(SYMGET('DESLEN')); If X < 4 then X=4; Y=(SYMGET('CODLEN')); If Y < 4 then Y=4; desvar=(x - 1) * 4.5; codvar=(y - 1) * 4.5; datable._setcolumnattribute('program','column _WIDTH',pgmvar); datable._setcolumnattribute('descript','colum N_WIDTH',desvar); * HOLD COLUMN 1; heldcol=makelist(); heldcol=insertn(heldcol,1,1); tblprogs._set_held_columns_(heldcol,heldcol); heldcol=dellist(heldcol); lbltotobs.text=trim(left(symget('totobs'))); lblfound.visible='no'; lblnumfound.visible='no'; btnopen: datable._getcolumntext('program',progg); execcmd('wedit "' trim(direct) '\' trim(progg) '" Use'); btndir: *start in previously selected directory; prevdir=director "\*.sas "; rc=filedialog('aggregate',director,'','',prev dir, '','','','','','','','','','','Choose SAS Program File Directory', '','','','','','','','','',''); lbldirdisplay.text=director; datable._setdataset(' '); rc=close(dat1); goto update; btnsearch: if lbltotobs.text='0' then goto errsearch1; string1=entsearch.text; if string1='' then goto errsearch2; datable._setdataset(' '); rc=close(dat1); symput('search',string1); symput('findcnt',' '); %include 't:\serodata\sasapps\dev\sugi\search.sas'; %strfind(&search,dir=&direct1); entsearch.text=''; rc=open('work.sasprogs','u'); dat1=dsid('work.sasprogs','u'); datable._setdataset('work.sasprogs'); datable._displaycolumnlabel('program','date', 'descript'); datable._setdisplayedcolumns('program','descr ipt','date','finds'); pgmvar=((symget('pgmlen') + 1) * 5); *BECAUSE UPCASE; X=(SYMGET('DESLEN')); If X < 4 then X=4; Y=(SYMGET('CODLEN')); If Y < 4 then Y=4; desvar=(x - 1) * 4.5; codvar=(y - 1) * 4.5; datable._setcolumnattribute('program','column _WIDTH',pgmvar); datable._setcolumnattribute('descript','colum N_WIDTH',desvar); datable._hidecolumn('finds'); * HOLD COLUMN 1; heldcol1=makelist(); heldcol1=insertn(heldcol1,1,1); datable._set_held_columns_(heldcol1,heldcol1) ; heldcol1=dellist(heldcol1); * DISPLAY NUMBER FOUND; lblfound.visible='yes'; lblnumfound.text=trim(left(symget('findcnt')) ); lblnumfound.visible='yes'; errsearch1: warnlist=insertc(warnlist,'no SAS programs in dir'); errsearch2: warnlist=insertc(warnlist,'please enter string'); 3

4 errdir: *********************************** use dsid function to see if data set work.programs exists (see above); ***********************************; data sasprogs(keep=program descript date); attrib program length=$25 descript length=$100; warnlist=insertc(warnlist,'you must select a directory'); Once the frame SCL has been added, include the following SCL for the data table object TBLPROGS. Remember to compile the data table SCL before compiling the frame SCL. This is done by selecting the data table object in the frame build environment, left mouse clicking, and selecting Table and Compile SCL from the resulting menus. init: dcl object datable, char finds; _viewer_=_viewer_; if finds='y' then do; send(_viewer_,'_setviewerattribute','program','bcolor','yellow'); send(_viewer_,'_setviewerattribute','descript ','bcolor','yellow'); send(_viewer_,'_setviewerattribute','date','b color','yellow'); CREATING A BASE SAS SEARCH PROGRAM The Base SAS program search.sas, is a modification of programs.sas. It searches SAS program files in the chosen directory for a specified string of code. The search feature of the application does not have to be included for the application to work. To exclude this feature, remove the objects btnsearch, entsearch, lblsearch, lblnumfound, lblfound and the SCL code blocks btnsearch, errsearch1, and errsearch2. SECTION 1 This section begins the macro %strfind. A data set nalled flmns is created, containing file name for each of the files in the directory. /************************************** * Program Name: search.sas * Description: Searches SAS program directory program for string, mod. of SAS SUGI * Author: Rob Nelson ***************************************/ %macro strfind(str,dir=); options nodate nocenter number pageno=1 ps=50 ls=100; proc datasets; delete flnms str1 pgmstr search; filename fls pipe "dir/b &dir.\*.sas"; data flnms; infile fls length=l; length filename $200; filename $varying200. l; filename = upcase(filename); filename fls clear; *determine num of SAS pgms & get pgm descript for each; set flnms end=eof; if eof then symput ('total',left(_n_)); data search; SECTION 2 In this section, the first 10 lines of each SAS program file in the directory are searched for header information. %if &total NE 0 %then %do i=1 %to &total; %let pgm=; set flnms; if _n_=&i; symput('pgm',trim(filename)); filename pgm "&dir.\&pgm"; data pgmstr (keep=program finds findstr string); infile pgm missover lrecl=200 pad end=eof; attrib find length=$3. program format=$varying200.; line $200.; retain findstr 0; program="&pgm"; string=upcase("&str"); if index(upcase(line),string) > 0 THEN findstr=1; if findstr=1 then finds='y'; if eof then output; data search; set search pgmstr; if program='' then delete; filename pgm clear; % SECTION 3 Finally, results from the search are combined with the existing data set containing information on SAS program files. PROC freq is used to provide the number of files encountered to the SAS/AF application. data work.search; set work.search; attrib indxvar length=$200; indxvar=program; data work.sasprogs(keep=indxvar program descript code date); set work.sasprogs; attrib indxvar length=$200; indxvar=program; proc sort data=work.search; 4

5 proc sort data=work.sasprogs; data sasprogs(drop=indxvar); merge search sasprogs; proc freq data=work.sasprogs; tables finds / NOPRINT out=findcoun; data work.findcoun; set work.findcoun; symput('findcnt','0'); if finds='y'; symput('findcnt',count); proc sort data=sasprogs; by program; %mend strfind; CONCLUSION This application illustrates the usefulness of combining the interactive features of SAS/AF with the flexibility of Base SAS. The authors hope that use of this application will encourage documentation of Base SAS programs and consistent selection of storage location. Additional features for this application might include a tree display of the directory structure, allowing users to select and submit SAS programs without opening, and predesignation of user start directory. REFERENCES Cunningham, Gary An Automated Method to Create a Descriptive Index for a Directory of SAS Programs, SAS Institute Proceedings of the Twenty-Fifth Annual SAS Users Group International Conference, Cary, NC: SAS institute Inc. SAS Institute Inc. (1999), SAS OnlineDoc Version 8., SAS Institute Inc., Cary, NC: SAS Institute Inc. CONTACT INFORMATION Contact the author at: Rob Nelson Centers for Disease Control & Prevention Mailstop E Clifton Road Atlanta, GA RXN1@CDC.GOV 5

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

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 information

A Macro To Generate a Study Report Hany Aboutaleb, Biogen Idec, Cambridge, MA

A 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 information

Arthur L. Carpenter California Occidental Consultants, Oceanside, California

Arthur L. Carpenter California Occidental Consultants, Oceanside, California Paper 028-30 Storing and Using a List of Values in a Macro Variable Arthur L. Carpenter California Occidental Consultants, Oceanside, California ABSTRACT When using the macro language it is not at all

More information

Creating Macro Calls using Proc Freq

Creating Macro Calls using Proc Freq Creating Macro Calls using Proc Freq, Educational Testing Service, Princeton, NJ ABSTRACT Imagine you were asked to get a series of statistics/tables for each country in the world. You have the data, but

More information

Photos with Text Reports on the Same SAS/AF Screen

Photos with Text Reports on the Same SAS/AF Screen Photos with Text Reports on the Same SAS/AF Screen Michael Shreve, American Honda Motor Company, Torrance, California Abstract The day of the digital media has arrived! Our field reps are armed with digital

More information

How to Implement the One-Time Methodology Mark Tabladillo, Ph.D., Atlanta, GA

How to Implement the One-Time Methodology Mark Tabladillo, Ph.D., Atlanta, GA How to Implement the One-Time Methodology Mark Tabladillo, Ph.D., Atlanta, GA ABSTRACT This tutorial will demonstrate how to implement the One-Time Methodology, a way to manage, validate, and process survey

More information

How to Implement the One-Time Methodology Mark Tabladillo, Ph.D., MarkTab Consulting, Atlanta, GA Associate Faculty, University of Phoenix

How to Implement the One-Time Methodology Mark Tabladillo, Ph.D., MarkTab Consulting, Atlanta, GA Associate Faculty, University of Phoenix Paper PO-09 How to Implement the One-Time Methodology Mark Tabladillo, Ph.D., MarkTab Consulting, Atlanta, GA Associate Faculty, University of Phoenix ABSTRACT This paper demonstrates how to implement

More information

Make Your Life a Little Easier: A Collection of SAS Macro Utilities. Pete Lund, Northwest Crime and Social Research, Olympia, WA

Make Your Life a Little Easier: A Collection of SAS Macro Utilities. Pete Lund, Northwest Crime and Social Research, Olympia, WA Make Your Life a Little Easier: A Collection of SAS Macro Utilities Pete Lund, Northwest Crime and Social Research, Olympia, WA ABSTRACT SAS Macros are used in a variety of ways: to automate the generation

More information

Using an ICPSR set-up file to create a SAS dataset

Using 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 information

e. That's accomplished with:

e. That's accomplished with: Make Your Life a Little Easier: A Collection of SAs Macro Utilities Pete Lund, Northwest Crime and Social Research, Olympia, WA ABSTRACT SAs Macros are used in a variety of ways: to automate the generation

More information

Using Unnamed and Named Pipes

Using Unnamed and Named Pipes 227 CHAPTER 12 Using Unnamed and Named Pipes Overview of Pipes 227 Using Unnamed Pipes 228 Unnamed Pipe Syntax 228 Using Redirection Sequences 229 Unnamed Pipe Example 229 Using Named Pipes 230 Named Pipe

More information

HAVE YOU EVER WISHED THAT YOU DO NOT NEED TO TYPE OR CHANGE REPORT NUMBERS AND TITLES IN YOUR SAS PROGRAMS?

HAVE YOU EVER WISHED THAT YOU DO NOT NEED TO TYPE OR CHANGE REPORT NUMBERS AND TITLES IN YOUR SAS PROGRAMS? HAVE YOU EVER WISHED THAT YOU DO NOT NEED TO TYPE OR CHANGE REPORT NUMBERS AND TITLES IN YOUR SAS PROGRAMS? Aileen L. Yam, PharmaNet, Inc., Princeton, NJ ABSTRACT In clinical research, the table of contents

More information

Using PROC REPORT to Cross-Tabulate Multiple Response Items Patrick Thornton, SRI International, Menlo Park, CA

Using PROC REPORT to Cross-Tabulate Multiple Response Items Patrick Thornton, SRI International, Menlo Park, CA Using PROC REPORT to Cross-Tabulate Multiple Response Items Patrick Thornton, SRI International, Menlo Park, CA ABSTRACT This paper describes for an intermediate SAS user the use of PROC REPORT to create

More information

3. Almost always use system options options compress =yes nocenter; /* mostly use */ options ps=9999 ls=200;

3. 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 information

Base and Advance SAS

Base and Advance SAS Base and Advance SAS BASE SAS INTRODUCTION An Overview of the SAS System SAS Tasks Output produced by the SAS System SAS Tools (SAS Program - Data step and Proc step) A sample SAS program Exploring SAS

More information

The Output Bundle: A Solution for a Fully Documented Program Run

The 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 information

Implementing external file processing with no record delimiter via a metadata-driven approach

Implementing 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 information

PDF Multi-Level Bookmarks via SAS

PDF 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 information

Using SAS Macro to Include Statistics Output in Clinical Trial Summary Table

Using SAS Macro to Include Statistics Output in Clinical Trial Summary Table Using SAS Macro to Include Statistics Output in Clinical Trial Summary Table Amy C. Young, Ischemia Research and Education Foundation, San Francisco, CA Sharon X. Zhou, Ischemia Research and Education

More information

SAS/AF FRAME Entries: A Hands-on Introduction

SAS/AF FRAME Entries: A Hands-on Introduction SAS/AF FRAME Entries: A Hands-on Introduction Vincent L. Timbers The Pennsylvania State University, University Park, Pa. ABSTRACT Frame entries in SAS/AF use graphic display devices that enable application

More information

HOW TO DEVELOP A SAS/AF APPLICATION

HOW TO DEVELOP A SAS/AF APPLICATION PS001 Creating Effective Graphical User Interfaces Using Version 8 SAS/AF Anders Longthorne, National Highway Traffic Safety Administration, Washington, DC ABSTRACT Improving access to an organization

More information

MACROS TO REPORT MISSING DATA: AN HTML DATA COLLECTION GUIDE Patrick Thornton, University of California San Francisco

MACROS TO REPORT MISSING DATA: AN HTML DATA COLLECTION GUIDE Patrick Thornton, University of California San Francisco MACROS TO REPORT MISSING DATA: AN HTML DATA COLLECTION GUIDE Patrick Thornton, University of California San Francisco ABSTRACT This paper presents SAS macros to produce missing data reports in HTML. The

More information

Procedure 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 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 information

Program Validation: Logging the Log

Program Validation: Logging the Log Program Validation: Logging the Log Adel Fahmy, Symbiance Inc., Princeton, NJ ABSTRACT Program Validation includes checking both program Log and Logic. The program Log should be clear of any system Error/Warning

More information

SAS 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 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 information

Using SAS to Control the Post Processing of Microsoft Documents Nat Wooding, J. Sargeant Reynolds Community College, Richmond, VA

Using SAS to Control the Post Processing of Microsoft Documents Nat Wooding, J. Sargeant Reynolds Community College, Richmond, VA Using SAS to Control the Post Processing of Microsoft Documents Nat Wooding, J. Sargeant Reynolds Community College, Richmond, VA Chen, SUGI 31, showed how to use SAS and VBA to automate the post processing

More information

A Cross-national Comparison Using Stacked Data

A Cross-national Comparison Using Stacked Data A Cross-national Comparison Using Stacked Data Goal In this exercise, we combine household- and person-level files across countries to run a regression estimating the usual hours of the working-aged civilian

More information

Matt Downs and Heidi Christ-Schmidt Statistics Collaborative, Inc., Washington, D.C.

Matt 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 information

The Dataset Attribute Family of Classes Mark Tabladillo, Ph.D., Atlanta, GA

The Dataset Attribute Family of Classes Mark Tabladillo, Ph.D., Atlanta, GA The Dataset Attribute Family of Classes Mark Tabladillo, Ph.D., Atlanta, GA ABSTRACT This presentation will specifically present the dataset attribute family, an abstract parent and its twenty-five children.

More information

SAS Macro Dynamics - From Simple Basics to Powerful Invocations Rick Andrews, Office of the Actuary, CMS, Baltimore, MD

SAS Macro Dynamics - From Simple Basics to Powerful Invocations Rick Andrews, Office of the Actuary, CMS, Baltimore, MD Paper BB-7 SAS Macro Dynamics - From Simple Basics to Powerful Invocations Rick Andrews, Office of the Actuary, CMS, Baltimore, MD ABSTRACT The SAS Macro Facility offers a mechanism for expanding and customizing

More information

INTRODUCTION TO SAS HOW SAS WORKS READING RAW DATA INTO SAS

INTRODUCTION 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 information

Jennifer Clegg and Carol Rigsbee, SAS Institute Inc., Cary, NC

Jennifer Clegg and Carol Rigsbee, SAS Institute Inc., Cary, NC OLE and the SAS System for Windows Release 6.12 Jennifer Clegg and Carol Rigsbee, SAS Institute Inc., Cary, NC ABSTRACT This paper describes the OLE support within the SAS System for Windows Release 6.12.

More information

Use SAS/AF, SCL and MACRO to Build User-friendly Applications on UNIX

Use SAS/AF, SCL and MACRO to Build User-friendly Applications on UNIX Use SAS/AF, SCL and MACRO to Build User-friendly Applications on UNIX Minghui Yang, Ph.D, Boeing Logistics Market Research O. Introduction In the business application environment, many business analysts

More information

A Macro that can Search and Replace String in your SAS Programs

A 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 information

LST in Comparison Sanket Kale, Parexel International Inc., Durham, NC Sajin Johnny, Parexel International Inc., Durham, NC

LST 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 information

Your Own SAS Macros Are as Powerful as You Are Ingenious

Your 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 information

USING DATA TO SET MACRO PARAMETERS

USING DATA TO SET MACRO PARAMETERS USING DATA TO SET MACRO PARAMETERS UPDATE A PREVIOUS EXAMPLE %macro report(regs=); %let r=1; %let region=%scan(&regs,&r); %do %until(&region eq ); options nodate pageno=1; ods pdf file="&region..pdf";

More information

A Useful Macro for Converting SAS Data sets into SAS Transport Files in Electronic Submissions

A 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 information

Changes and Enhancements

Changes and Enhancements ix Introduction This section describes the features of SAS Component Language that have been implemented or enhanced since Release 6.12. Information about changes and enhancements that were implemented

More information

Christopher Louden University of Texas Health Science Center at San Antonio

Christopher Louden University of Texas Health Science Center at San Antonio Christopher Louden University of Texas Health Science Center at San Antonio Overview of Macro Language Report Writing The REPORT procedure The Output Delivery System (ODS) Macro Examples Utility Macros

More information

Using SAS/SCL to Create Flexible Programs... A Super-Sized Macro Ellen Michaliszyn, College of American Pathologists, Northfield, IL

Using SAS/SCL to Create Flexible Programs... A Super-Sized Macro Ellen Michaliszyn, College of American Pathologists, Northfield, IL Using SAS/SCL to Create Flexible Programs... A Super-Sized Macro Ellen Michaliszyn, College of American Pathologists, Northfield, IL ABSTRACT SAS is a powerful programming language. When you find yourself

More information

ABSTRACT. Paper CC-031

ABSTRACT. Paper CC-031 Paper CC-031 Using Functions SYSFUNC and IFC to Conditionally Execute Statements in Open Code Ronald J. Fehd, Centers for Disease Control and Prevention, Atlanta, GA, USA ABSTRACT Audience Keywords Information

More information

Template Versatility Using SAS Macro Language to Generate Dynamic RTF Reports Patrick Leon, MPH

Template Versatility Using SAS Macro Language to Generate Dynamic RTF Reports Patrick Leon, MPH Versatility Using SAS Macro Language to Generate Dynamic RTF Reports Versatility Using SAS Macro Language to Generate Dynamic RTF Reports ABSTRACT SAS Macro Language can be used to enhance many report-generating

More information

So Much Data, So Little Time: Splitting Datasets For More Efficient Run Times and Meeting FDA Submission Guidelines

So 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 information

Using DDE with Microsoft Excel and SAS to Collect Data from Hundreds of Users

Using DDE with Microsoft Excel and SAS to Collect Data from Hundreds of Users Using DDE with Microsoft Excel and SAS to Collect Data from Hundreds of Users Russell Denslow and Yan Li Sodexho Marriott Services, Orlando, FL ABSTRACT A process is demonstrated in this paper to automatically

More information

How a Code-Checking Algorithm Can Prevent Errors

How a Code-Checking Algorithm Can Prevent Errors How a Code-Checking Algorithm Can Prevent Errors 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.

More information

MISSOVER, TRUNCOVER, and PAD, OH MY!! or Making Sense of the INFILE and INPUT Statements. Randall Cates, MPH, Technical Training Specialist

MISSOVER, TRUNCOVER, and PAD, OH MY!! or Making Sense of the INFILE and INPUT Statements. Randall Cates, MPH, Technical Training Specialist MISSOVER, TRUNCOVER, and PAD, OH MY!! or Making Sense of the INFILE and INPUT Statements. Randall Cates, MPH, Technical Training Specialist ABSTRACT The SAS System has many powerful tools to store, analyze

More information

The Proc Transpose Cookbook

The Proc Transpose Cookbook ABSTRACT PharmaSUG 2017 - Paper TT13 The Proc Transpose Cookbook Douglas Zirbel, Wells Fargo and Co. Proc TRANSPOSE rearranges columns and rows of SAS datasets, but its documentation and behavior can be

More information

BIOMETRICS INFORMATION

BIOMETRICS INFORMATION BIOMETRICS INFORMATION (You re 95% likely to need this information) PAMPHLET NO. # 24 DATE: February 9, 1990 SUBJECT: Reading WATFILE files into SAS WATFILE is a useful package for data entry because it

More information

A Tool to Compare Different Data Transfers Jun Wang, FMD K&L, Inc., Nanjing, China

A Tool to Compare Different Data Transfers Jun Wang, FMD K&L, Inc., Nanjing, China PharmaSUG China 2018 Paper 64 A Tool to Compare Different Data Transfers Jun Wang, FMD K&L, Inc., Nanjing, China ABSTRACT For an ongoing study, especially for middle-large size studies, regular or irregular

More information

Identifying Duplicate Variables in a SAS Data Set

Identifying Duplicate Variables in a SAS Data Set Paper 1654-2018 Identifying Duplicate Variables in a SAS Data Set Bruce Gilsen, Federal Reserve Board, Washington, DC ABSTRACT In the big data era, removing duplicate data from a data set can reduce disk

More information

Getting Up to Speed with PROC REPORT Kimberly LeBouton, K.J.L. Computing, Rossmoor, CA

Getting Up to Speed with PROC REPORT Kimberly LeBouton, K.J.L. Computing, Rossmoor, CA SESUG 2012 Paper HW-01 Getting Up to Speed with PROC REPORT Kimberly LeBouton, K.J.L. Computing, Rossmoor, CA ABSTRACT Learning the basics of PROC REPORT can help the new SAS user avoid hours of headaches.

More information

Generating a Detailed Table of Contents for Web-Served Output

Generating a Detailed Table of Contents for Web-Served Output Paper 089-29 Generating a Detailed Table of Contents for Web-Served Output Derek Morgan, Washington University Medical School, St. Louis, MO Steve Hoffner, Washington University Medical School, St. Louis,

More information

Epidemiology Principles of Biostatistics Chapter 3. Introduction to SAS. John Koval

Epidemiology Principles of Biostatistics Chapter 3. Introduction to SAS. John Koval Epidemiology 9509 Principles of Biostatistics Chapter 3 John Koval Department of Epidemiology and Biostatistics University of Western Ontario What we will do today We will learn to use use SAS to 1. read

More information

An Introduction to SAS Macros

An Introduction to SAS Macros An Introduction to SAS Macros Expanded token SAS Program (Input Stack) SAS Wordscanner (Tokenization) Non-Macro (Tokens) SAS Compiler % and & Triggers Macro Facility Steven First, President 2997 Yarmouth

More information

Posters. Workarounds for SASWare Ballot Items Jack Hamilton, First Health, West Sacramento, California USA. Paper

Posters. Workarounds for SASWare Ballot Items Jack Hamilton, First Health, West Sacramento, California USA. Paper Paper 223-25 Workarounds for SASWare Ballot Items Jack Hamilton, First Health, West Sacramento, California USA ABSTRACT As part of its effort to insure that SAS Software is useful to its users, SAS Institute

More information

Macro Architecture in Pictures Mark Tabladillo PhD, marktab Consulting, Atlanta, GA Associate Faculty, University of Phoenix

Macro Architecture in Pictures Mark Tabladillo PhD, marktab Consulting, Atlanta, GA Associate Faculty, University of Phoenix Paper PS16_05 Macro Architecture in Pictures Mark Tabladillo PhD, marktab Consulting, Atlanta, GA Associate Faculty, University of Phoenix ABSTRACT The qualities which SAS macros share with object-oriented

More information

Using SAS software to fulfil an FDA request for database documentation

Using SAS software to fulfil an FDA request for database documentation Using SAS software to fulfil an FDA request for database documentation Introduction Pantaleo Nacci, Adam Crisp Glaxo Wellcome R&D, UK Historically, a regulatory submission to seek approval for a new drug

More information

CHAPTER 7 Using Other SAS Software Products

CHAPTER 7 Using Other SAS Software Products 77 CHAPTER 7 Using Other SAS Software Products Introduction 77 Using SAS DATA Step Features in SCL 78 Statements 78 Functions 79 Variables 79 Numeric Variables 79 Character Variables 79 Expressions 80

More information

Using GSUBMIT command to customize the interface in SAS Xin Wang, Fountain Medical Technology Co., ltd, Nanjing, China

Using 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 information

Taming a Spreadsheet Importation Monster

Taming 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 information

2. Don t forget semicolons and RUN statements The two most common programming errors.

2. Don t forget semicolons and RUN statements The two most common programming errors. Randy s SAS hints March 7, 2013 1. Always begin your programs with internal documentation. * ***************** * Program =test1, Randy Ellis, March 8, 2013 ***************; 2. Don t forget semicolons and

More information

SAS CURRICULUM. BASE SAS Introduction

SAS CURRICULUM. BASE SAS Introduction SAS CURRICULUM BASE SAS Introduction Data Warehousing Concepts What is a Data Warehouse? What is a Data Mart? What is the difference between Relational Databases and the Data in Data Warehouse (OLTP versus

More information

Electricity Forecasting Full Circle

Electricity Forecasting Full Circle Electricity Forecasting Full Circle o Database Creation o Libname Functionality with Excel o VBA Interfacing Allows analysts to develop procedural prototypes By: Kyle Carmichael Disclaimer The entire presentation

More information

Paper An Automated Reporting Macro to Create Cell Index An Enhanced Revisit. Shi-Tao Yeh, GlaxoSmithKline, King of Prussia, PA

Paper 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 information

Using a HASH Table to Reference Variables in an Array by Name. John Henry King, Hopper, Arkansas

Using a HASH Table to Reference Variables in an Array by Name. John Henry King, Hopper, Arkansas PharmaSUG 2011 - Paper TT04 Using a HASH Table to Reference Variables in an Array by Name John Henry King, Hopper, Arkansas ABSTRACT Array elements are referenced by their index value using a constant,

More information

\WSS95. Applications Development. Managing Longitudinal Panel Surveys Using Interactive Applications Created by SAS!Af and SASJFsp with SCL

\WSS95. Applications Development. Managing Longitudinal Panel Surveys Using Interactive Applications Created by SAS!Af and SASJFsp with SCL Managing Longitudinal Panel Surveys Using Interactive Applications Created by SAS!Af and SASJFsp with SCL Miriam Cistemas, Technology Assessment Group, San Francisco, California ABSTRACT Social science

More information

Because We Can: Using SAS System Tools to Help Our Less Fortunate Brethren John Cohen, Advanced Data Concepts, LLC, Newark, DE

Because We Can: Using SAS System Tools to Help Our Less Fortunate Brethren John Cohen, Advanced Data Concepts, LLC, Newark, DE SESUG 2015 CC145 Because We Can: Using SAS System Tools to Help Our Less Fortunate Brethren John Cohen, Advanced Data Concepts, LLC, Newark, DE ABSTRACT We may be called upon to provide data to developers

More information

Data Tables: Highlighting Techniques Christopher A. Roper, Qualex Consulting Services, Inc.

Data Tables: Highlighting Techniques Christopher A. Roper, Qualex Consulting Services, Inc. Data Tables: Highlighting Techniques Christopher A. Roper, Qualex Consulting Services, Inc. Abstract Data tables are arguably one of the best looking widgets in SAS. This makes them a popular choice for

More information

An Introduction to SAS/SHARE, By Example

An Introduction to SAS/SHARE, By Example Paper AD01 An Introduction to SAS/SHARE, By Example Larry Altmayer, U.S. Census Bureau, Washington, DC ABSTRACT SAS/SHARE software is a useful tool for allowing several users to access and edit the same

More information

Essential ODS Techniques for Creating Reports in PDF Patrick Thornton, SRI International, Menlo Park, CA

Essential 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 information

Abstract. Background. Summary of method. Using SAS to determine file and space usage in UNIX. Title: Mike Montgomery [MIS Manager, MTN (South Africa)]

Abstract. Background. Summary of method. Using SAS to determine file and space usage in UNIX. Title: Mike Montgomery [MIS Manager, MTN (South Africa)] Title: Author: Using SAS to determine file and space usage in UNIX Mike Montgomery [MIS Manager, MTN (South Africa)] Abstract The paper will show tools developed to manage a proliferation of SAS files

More information

TLF Management Tools: SAS programs to help in managing large number of TLFs. Eduard Joseph Siquioco, PPD, Manila, Philippines

TLF Management Tools: SAS programs to help in managing large number of TLFs. Eduard Joseph Siquioco, PPD, Manila, Philippines PharmaSUG China 2018 Paper AD-58 TLF Management Tools: SAS programs to help in managing large number of TLFs ABSTRACT Eduard Joseph Siquioco, PPD, Manila, Philippines Managing countless Tables, Listings,

More information

Paper 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 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 information

SD10 A SAS MACRO FOR PERFORMING BACKWARD SELECTION IN PROC SURVEYREG

SD10 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 information

Paper SE04 Dynamic SAS Programming Techniques, or How NOT to Create Job Security Steven Beakley and Suzanne McCoy

Paper SE04 Dynamic SAS Programming Techniques, or How NOT to Create Job Security Steven Beakley and Suzanne McCoy Introduction Paper SE04 Dynamic SAS Programming Techniques, or How NOT to Create Job Security Steven Beakley and Suzanne McCoy Many SAS programmers, particularly consultants, joke about creating job security

More information

Demystifying Inherited Programs

Demystifying Inherited Programs Demystifying Inherited Programs Have you ever inherited a program that leaves you scratching your head trying to figure it out? If you have not, chances are that some time in the future you will. While

More information

Developing Data-Driven SAS Programs Using Proc Contents

Developing 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 information

Tales from the Help Desk 6: Solutions to Common SAS Tasks

Tales 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 information

A Macro to Keep Titles and Footnotes in One Place

A Macro to Keep Titles and Footnotes in One Place CC25 ABSTRACT A Macro to Keep Titles and Footnotes in One Place John Morrill, Quintiles, Inc., Kansas City, MO A large project with titles and footnotes in each separate program can be cumbersome to maintain.

More information

Using a Control Dataset to Manage Production Compiled Macro Library Curtis E. Reid, Bureau of Labor Statistics, Washington, DC

Using 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 information

Going Under the Hood: How Does the Macro Processor Really Work?

Going Under the Hood: How Does the Macro Processor Really Work? Going Under the Hood: How Does the Really Work? ABSTRACT Lisa Lyons, PPD, Inc Hamilton, NJ Did you ever wonder what really goes on behind the scenes of the macro processor, or how it works with other parts

More information

A Quick and Gentle Introduction to PROC SQL

A Quick and Gentle Introduction to PROC SQL ABSTRACT Paper B2B 9 A Quick and Gentle Introduction to PROC SQL Shane Rosanbalm, Rho, Inc. Sam Gillett, Rho, Inc. If you are afraid of SQL, it is most likely because you haven t been properly introduced.

More information

Open Problem for SUAVe User Group Meeting, November 26, 2013 (UVic)

Open Problem for SUAVe User Group Meeting, November 26, 2013 (UVic) Open Problem for SUAVe User Group Meeting, November 26, 2013 (UVic) Background The data in a SAS dataset is organized into variables and observations, which equate to rows and columns. While the order

More information

A Generic Solution to Running the SAS System on the Web Without SAS/Intrnet David L. Ward, InterNext, Inc., Somerset, NJ

A Generic Solution to Running the SAS System on the Web Without SAS/Intrnet David L. Ward, InterNext, Inc., Somerset, NJ A Generic Solution to Running the SAS System on the Web Without SAS/Intrnet David L. Ward, InterNext, Inc., Somerset, NJ ABSTRACT Many organizations are not able to afford SAS/IntrNet but desperately need

More information

Working the System: Our Best SAS Options Patrick Thornton, SRI International, Menlo Park, CA Iuliana Barbalau, Adecco, Pleasanton, CA

Working the System: Our Best SAS Options Patrick Thornton, SRI International, Menlo Park, CA Iuliana Barbalau, Adecco, Pleasanton, CA ABSTRACT Working the System: Our Best SAS Options Patrick Thornton, SRI International, Menlo Park, CA Iuliana Barbalau, Adecco, Pleasanton, CA This paper provides an overview of SAS system options, and

More information

%Addval: A SAS Macro Which Completes the Cartesian Product of Dataset Observations for All Values of a Selected Set of Variables

%Addval: A SAS Macro Which Completes the Cartesian Product of Dataset Observations for All Values of a Selected Set of Variables %Addval: A SAS Macro Which Completes the Cartesian Product of Dataset Observations for All Values of a Selected Set of Variables Rich Schiefelbein, PRA International, Lenexa, KS ABSTRACT It is often useful

More information

SAS Data Integration Studio Take Control with Conditional & Looping Transformations

SAS Data Integration Studio Take Control with Conditional & Looping Transformations Paper 1179-2017 SAS Data Integration Studio Take Control with Conditional & Looping Transformations Harry Droogendyk, Stratia Consulting Inc. ABSTRACT SAS Data Integration Studio jobs are not always linear.

More information

SAS Drug Development Program Portability

SAS 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 information

Automated Checking Of Multiple Files Kathyayini Tappeta, Percept Pharma Services, Bridgewater, NJ

Automated 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 information

The REPORT Procedure CHAPTER 32

The REPORT Procedure CHAPTER 32 859 CHAPTER 32 The REPORT Procedure Overview 861 Types of Reports 861 A Sampling of Reports 861 Concepts 866 Laying Out a Report 866 Usage of Variables in a Report 867 Display Variables 867 Order Variables

More information

Using PROC SQL to Calculate FIRSTOBS David C. Tabano, Kaiser Permanente, Denver, CO

Using PROC SQL to Calculate FIRSTOBS David C. Tabano, Kaiser Permanente, Denver, CO Using PROC SQL to Calculate FIRSTOBS David C. Tabano, Kaiser Permanente, Denver, CO ABSTRACT The power of SAS programming can at times be greatly improved using PROC SQL statements for formatting and manipulating

More information

A Tutorial on the SAS Macro Language

A Tutorial on the SAS Macro Language HW152 SESUG 2015 A Tutorial on the SAS Macro Language John J. Cohen, Advanced Data Concepts LLC, Newark, DE ABSTRACT The SAS Macro language is another language that rests on top of regular SAS code. If

More information

The Power of PROC SQL Techniques and SAS Dictionary Tables in Handling Data

The Power of PROC SQL Techniques and SAS Dictionary Tables in Handling Data Paper PO31 The Power of PROC SQL Techniques and SAS Dictionary Tables in Handling Data MaryAnne DePesquo Hope, Health Services Advisory Group, Phoenix, Arizona Fen Fen Li, Health Services Advisory Group,

More information

Driving to Better Credit Policies : The Risk Strategy Instrument Panel

Driving to Better Credit Policies : The Risk Strategy Instrument Panel Paper 30 Driving to Better Credit Policies : The Risk Strategy Instrument Panel Michael Davis, Bassett Consulting Services, North Haven, Connecticut Adam Terr, GE Capital Card Services, Stamford, Connecticut

More information

Army Hearing Evaluation Automated Registry System (HEARS) Corporate Data Reporting System -- A Customized EIS Solution

Army Hearing Evaluation Automated Registry System (HEARS) Corporate Data Reporting System -- A Customized EIS Solution Army Hearing Evaluation Automated Registry System (HEARS) Corporate Data Reporting System -- A Customized EIS Solution Krista Elspas, Troy Systems, Inc. -- Fort Detrick, Frederick, MD Julie Shadoan, Dept.

More information

%SHOWCOMB: a macro to produce a data set with frequency of combinations of responses from multiple-response data

%SHOWCOMB: a macro to produce a data set with frequency of combinations of responses from multiple-response data %SHOWCOMB: a macro to produce a data set with frequency of combinations of responses from multiple-response data Ronald Fehd, Centers for Disease Control, and Prevention, Atlanta GA ABSTRACT Multiple-response

More information

Using PROC SQL to Generate Shift Tables More Efficiently

Using 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 information

Uncommon Techniques for Common Variables

Uncommon Techniques for Common Variables Paper 11863-2016 Uncommon Techniques for Common Variables Christopher J. Bost, MDRC, New York, NY ABSTRACT If a variable occurs in more than one data set being merged, the last value (from the variable

More information

Can I have the menu please?

Can I have the menu please? Can I have the menu please? Renee Beekwilder - PW Consulting Introduction It is vital for users to work with a system that is easy to use and understand and that requires as little training as possible.

More information