Nikki's approach is to use PROC SQL with a where statement. proc sql; create table sql_readin as. quit;run;

Size: px
Start display at page:

Download "Nikki's approach is to use PROC SQL with a where statement. proc sql; create table sql_readin as. quit;run;"

Transcription

1 THE ROAD TO SAS DELIVERANCE- DUELING CODERS Nikki Carroll, Kaiser Permanente, Aurora, CO Frank Ferriola, Elk Crossing Technologies Corp, Highlands Ranch, CO ABSTRACT There's more than one way to skin a cat. There are more ways to program in SAS than you've had hot dinners. There are more ways to program in SAS than you can shake a stick at. You take the high road and I'll take the low road. All roads lead to Rome. Six ofone... halfa dozen of the other. All of these familiar cliches lend to the idea that there are many possible ways to program in SAS, yet still get to the same desired outcome. This paper's goal is to look at multiple illustrations where a programmer can use different SAS procedures that yield the same output. Advantages and disadvantages of each program will be discussed and actual program code will be included. INTRODUCTION When beginning to program in SAS, users often discover different people have different ways to program. The programs might be different, yet they yield the same end result. SAS is a wonderful language that makes it easy to accomplish things at different levels. What we will show in this paper are a few basic approaches to the same problem. It is not our intent to favor one approach over the other, it is to give the reader alternatives and let him/her decide which one they feel comfortable with. STARTING WITH DATA Anytime you write a SAS program, you are going to need to process data. The most common ways to process data include creating it with code, using an existing SAS dataset or import or read in external data. For our purposes we will start with SAS datasets that have already been created for this paper. The data incorporates Pharmaceutical records for prescription drugs. DUEL 1: CHOOSE YOUR WEAPONS! Task: Read in a dataset and exclude data for certain parameters. Frank chooses to use the DATA step and will read the data in followed by specific exclude statements. data data_step (keep;brn cost ndc provider svc_age); set data.wussrx_02; where 18<=svc_age<=65; Nikki's approach is to use PROC SQL with a where statement. proc sql; create table sql_readin as quit; select hrn, cost, ndc, provider, svc_age from data.wussrx_02 where svc_age between 18 and 65; NOTE: The data set WORK.DATASTEP has observations and 5 variables. NOTE: Table WORK.SQL_READIN created, with rows and 5 columns. Analysis: Both ways created the same table with the same number of records and variables. Nikki could have used a wildcard (*) in her select statement and likewise Frank's keep statement is optional. Also notice that the "Between" statement in SQL is actually inclusive of 18 and65. Processing time was insignificant in this example (1/Sth second faster for SQL) but for huge datasets, SQL might be the better choice. Both ways requires similar keystrokes. PROC SQL uses one complete statement, while DATA uses several statements to make the procedure. In both cases you can "build" your procedure by starting simple and adding parts to it. Recommendation: Unless you are using very large datasets, either process will work. You can try hoth and see which one you are most comfortable with. DUEL 2: Stand back to back! Task: Merge datasets to get product information. Once again Frank will use the Data step to merge the files, but first both datasets must be sorted: proa sort data=data_step; by ndc; proc sort data;data.wussprod_02 out=wussprod; by ndc; data data_merge; merge data_step (in;a) wussprod (in;b); if a; by ndc; 417

2 Nikki's approach is to again use PROC SQL with a where statement to merge the datasets in order to get the product information. proc sql; create table sql_merge as quit; select b.generic, b.brand, b.gpi, a.provider, a.cost, a.svc_age Frank's Log shows: from sql_readin a, wuss.wussprod_02 b where a.ndc=b.ndc; NOTE: The data set WORK.DATA_MERGE has observations and 6 variables. NOTE: Table WORK.SQL_MERGE created, with rows and 6 columns. Analysis: Once again, the two processes yield the same results. Frank's method requires presorting the two datasets, while Nikki's doesn't. In SQL you can also match on two different variables (although in this example the same one is used) while in the merge statement in the data step, you must have the same variable name in all datasets. Notice also that the two datasets are referred to as a and b. The IF A statement in the data step indicates that the record will be kept only if it is in the first data set (A). The data step requires that the data be "overlayed" from left to right. That is, any like variable names in the datasets will be taken from the rightmost data set first. In this case Wussprod values would supercede data-step values. SQL gives more versatility by giving you options on "which way" you want to merge. Recommendations: This is one area where SQL is generally a better choice when merging several datasets or complex joins. However, with the understanding ofhow merge works, you can easily merge two data sets with the datastep. DUEL 3: Start Walking! Task: Format vs. Coding This time both will use a data step. Frank will use a PROC FORMAT and then format the data within the data step. proc format; value $gpiname '58'='Antidepressants' '39'='Antihyperlipidemic' '27'='Antidiabetics' '12'='Anivirals' '49'='Ulcer Drugs' '44'='Antiasthmatics' '21'='Antineoplastics' '?2'='Anticonvulsants' '4l'='Antihistamines' '59'='Antipsychotics' '30'='Endocrine' '36'='Antihypertensives' '34'='Calcium Channel Blockers' '67'='Migraine Products' data data_format; set data_merge; '86'='0pthalmics' 'Ol'='Antibiotics'; gpiname=substr{gpi,l,2}; format gpiname $gpiname.; Nikki's approach is to hard code the data in a data step using if-then-else statements. data hard_code; set sql_merge; if substr(gpi,l,2l = '58' then gpiname='antidepressants'; else if substr(gpi,l,2) = '39' then gpiname = 'Antihyperlipidemic'; else if substr(gpi,l,2) = '27' then gpiname = 'Antidiabetics'; else if substr(gpi,l,2) = '12' then gpiname = 'Anivirals'; else if substr(gpi,l,2) = '49' then gpiname = 'Ulcer Drugs'; else if substr(gpi,l,2) = '44' then gpiname = 'Antiasthmatics'; else if substr(gpi,l,2l = '21' then gpiname = 'Antineoplastics'; else if substr(gpi,l,2l = '72' then gpiname = 'Anticonvulsants'; else if substr(gpi,l,2l = '41' then gpiname = 'Antihistamines'; else if substr(gpi,l,2l = '59' then gpiname = 'Antipsychotics'; else if substr(gpi,l,2) = '30' then gpiname = 'Endocrine'; else if substr(gpi,l,2) = '36' then gpiname = 'Antihypertensives'; else if substr(gpi,l,2) = '34' then gpiname = 'calcium Channel Blockers I ; else if substr(gpi,l,2) = '67' then gpiname = 'Migraine Products'; else if substr(gpi,l,2) = '86' then gpiname = 'Ophthalmics'; else if substr(gpi,l,2) = '01' then gpiname = 'Antiobiotics'; else gpiname = 'Other'; NOTE: The data set WORK.DATA_FORMAT has observations and 7 variables. NOTE: The data set WORK.HARD_CODE has observations and 7 variables. Analysis: For a third time the results are identical. Nikki's approach required more keystrokes and is not reusable. Frank's PROC FORMAT is reusable within the same program or can be stored in a Format Library for use by other programs. This way there would be one source to make any changes to the format. Nikki could accomplish the same thing by putting the hard code in a macro and store it in a Macro Library, which would be callable by other programs. Recommendations: If you have only a handful of values and/or you are only using this process once, or you need to get answers quickly, you can hardcode the values into 418

3 your program. For long-term efficiency however, you should store this code in a macro or use the Proc Format stored in a Format Library. id provider; var gpiname numrx totcost; by provider; DUEL 4: Stop and Turn! Task: Summarize data with count of prescriptions and total cost by provider and gpiname. Frank will use PROC SUMMARY: proc summary nway data;sumprep; class provider gpiname; var cost; output out=data_summary (rename=_freq_=nurnrx drop=_type_) sum=totcost; proc sort; by provider descending numrx; Nikki's approach is to use the beloved PROC SQL. proc sql; create table summ_data as select provider, gpiname, count(gpi) as numrx, sum(cost) as totcost from hard_code group by provider, gpiname order by provider, numrx desc; quit; NOTE: The data set WORK.DATA_SUMMARY has 6456 observations and 4 variables. NOTE: Table WORK.SUMM_DATA created, with 6456 rows and 4 columns. Analysis: Once again the results are identical. Both processes include all of the same components, however Frank's requires the extra sort step to order them after the summary has completed. Frank has been using PROC SUMMARY for years (see paper from SUGI 27 Nikki, on the other hand has always preferred SQL and has written two papers on the subject in the proceedings of WUSS1999 and WUSS2000. Recommendations: This is another case of personal preference and comfort level. Neither Frank nor Nikki would like to recommend one process over the other as that might lead to fisticuffs. DUEL 5: Fire! Task: Print Reports. Frank chooses to use the DATA step and will read the data in followed by specific exclude statements. Frank does a straight proc print: proc print data=data_summary; Nikki's approach is to export a delimited file out to Excel where she can "make it pretty''. data _null_; set summ_data; by provider; file 'e:\mydocs\excel\costrx\temp\wuss_rpts.xls'; if first.provider then do; put (provider gpiname numrx totcost) ( I ; 0 ) ; end; else do; put I;' (gpiname numrx totcost) ('; '); end; NOTE: There were 6456 observations read from the data set WORK.DATA_SUMMARY. NOTE: The file 'e:\mydocs\excel\costrx\temp\wuss_rpts.xls ' is: File Name=e:\mydocs\excel\costrx\temp\wuss_rpts.xls, RECFM=V,LRECL=256 NOTE: 6456 records were written to the file 'e:\mydocs\excel\costrx\temp\wuss_rpts.xls ' The minimum record length was 18. The maximum record length was 38. NOTE: There were 6456 observations read from the data set WORK.SUMM_DATA. Analysis: Both of these processes are very simplified, and both can be enhanced with other options. There are also other possibilities like ODS, Proc Report, and Dynamic Data Exchange (DDE). The key point here is that two different processes created the same final data set. You can switch Frank and Nikki's processes on each other's final datasets and get the exact same output. Please see Exhibits 1 and 2 at the end of this paper for sample output. Recommendations: The output method you choose will depend on your client or boss's specific needs. If you are just looking for a report to pull nwnbers from, PROC PRINT will work. If you need to put further information in or do analysis, the PROC EXPORT method will be more useful. CONCLUSION Having gone through 5 different processes, the duel would have to be called a draw. The point is that SAS is versatile enough to allow you to get to the same endpoint in different ways. It also shows that no matter how good your program is, you can usually look at it again and find a way to simplify it even more. In some cases this will 419

4 help you in the long run as you create more and more programs and won't have to duplicate code. The users are left to make up their own mind on which processes they prefer. And remember... there are more ways to program in SAS than you can shake a stick at! ACKNOWLEDGMENTS The Authors would like to thank the following people for their help with this paper: Frank would like to thank: William Slentz and Brian Wright, my mentors from Blue Cross Blue Shield of Delaware Doug Felton for help with previous papers, which eventually led to this one, Daryl Baird, my current mentor and business partner, And finally to co-author Nikki Carroll, for her papers on SQL which led me to the initial idea for this paper, and who has been relentless in keeping this paper going. Nikki would like to thank: Greg Carroll for putting up with me. Beth Worrall for all of her inspiration. And finally to co-author Frank, for coming up with the idea for this paper, for having a great sense of humor and being so fun to work with! CONTACT INFORMATION Your comments and questions are valued and encouraged. Contact the authors at: Nikki Carroll Kaiser Permanente E. Centertech Pkwy Aurora, CO (303) (work) (303) (fax) nikki.m.carroll@kn.org Frank Ferriola Elk Crossing Technologies Corp W. Deer Creek Dr. Highlands Ranch, CO (303) faferriola@elkcrossing.com 420

5 Exhibit 1: Frank's Sample Output 10:41 Saturday, June 15, provider gpiname numrx tot cost 7 Antiasthmatics Ulcer Drugs Antibiotics Antihistamines Antidepressants Antihypertensives Antidiabetics Antidepressants Antihyperlipidemic Antiasthma tics Ulcer orugs Calcium Channel BlOckers Antibiotics Anivirals Anticonvulsants Migraine Products Antihistamines Antipsychotics Opthalmics Endocrine Antihyperlipidemic Antihypertensives Calcium Channel Blockers Antibiotics Antidepressants Ulcer Drugs Antihypertensives Calcium Channel Blockers Ulcer Drugs Antihypertensives Antiasthma tics Antidiabetics Antihyperlipidemic Antidepressants Calcium Channel Blockers Ulcer Drugs Anticonvulsants Opthalmics B Anivirals 6.14 Antipsychotics Antibiotics Antihypertensives 2B

6 Exhibit 2: Nikki's Sample Output # TOTAL PROVIDER GPINAME RXS COST 7 Antiasthmatics 50 $ 5, Ulcer Druas 4$ Antiobiotics 3$ Antidepressants 1 $ 6.38 Antihistamines 1 $ Antihypertensiv 50 $ Antidiabetics 44 $ 1, Antideoressants 41 $ 1, Antihvoerlioide 3f $ Antiasthmatics 32 $ 1, Ulcer Drugs 30 $ Calcium Channel 21 $ Antiobiotics 9 $ Anivirals 8$ 2, Anticonvulsants 7$ Miaraine Produc 5 $ Antiosvchotics 3$ Antihistamines 3$ Qphthalmics 3$ Endocrine 2$ ~ntihvoerlioide 46 $ 3, Antihvoertensiv 26 $ Calcium Channel 22 $ 1, Antiobiotics 3$ Antidepressants 3$ Ulcer Drugs 2$ Antihvoertensiv 3$ Calcium Channel 2$ Ulcer Drugs 1 $ Antihypertensiv 10 $ Antiasthmatics 9$ Antidiabetics 6$ Antihvoerlioide 3 $ Antidepressants 3 $ Ulcer Drugs 2$ Qphthalmics 2$ Calcium Channel 2$ Anticonvulsants 2$ Anivirals 1 $ 6.14 Antiosvchotics 1 $

Using a Fillable PDF together with SAS for Questionnaire Data Donald Evans, US Department of the Treasury

Using a Fillable PDF together with SAS for Questionnaire Data Donald Evans, US Department of the Treasury Using a Fillable PDF together with SAS for Questionnaire Data Donald Evans, US Department of the Treasury Introduction The objective of this paper is to demonstrate how to use a fillable PDF to collect

More information

50 WAYS TO MERGE YOUR DATA INSTALLMENT 1 Kristie Schuster, LabOne, Inc., Lenexa, Kansas Lori Sipe, LabOne, Inc., Lenexa, Kansas

50 WAYS TO MERGE YOUR DATA INSTALLMENT 1 Kristie Schuster, LabOne, Inc., Lenexa, Kansas Lori Sipe, LabOne, Inc., Lenexa, Kansas Paper 103-26 50 WAYS TO MERGE YOUR DATA INSTALLMENT 1 Kristie Schuster, LabOne, Inc., Lenexa, Kansas Lori Sipe, LabOne, Inc., Lenexa, Kansas ABSTRACT When you need to join together two datasets, how do

More information

SAS Styles ODS, Right? No Programming! Discover a Professional SAS Programming Style That Will Last a Career

SAS Styles ODS, Right? No Programming! Discover a Professional SAS Programming Style That Will Last a Career SAS Styles ODS, Right? No Programming! Discover a Professional SAS Programming Style That Will Last a Career Joe Perry, Perry & Associates Consulting, Oceanside, CA The typical, new SAS programmer has

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

PROC FORMAT. CMS SAS User Group Conference October 31, 2007 Dan Waldo

PROC FORMAT. CMS SAS User Group Conference October 31, 2007 Dan Waldo PROC FORMAT CMS SAS User Group Conference October 31, 2007 Dan Waldo 1 Today s topic: Three uses of formats 1. To improve the user-friendliness of printed results 2. To group like data values without affecting

More information

PROC SQL vs. DATA Step Processing. T Winand, Customer Success Technical Team

PROC SQL vs. DATA Step Processing. T Winand, Customer Success Technical Team PROC SQL vs. DATA Step Processing T Winand, Customer Success Technical Team Copyright 2012, SAS Institute Inc. All rights reserved. Agenda PROC SQL VS. DATA STEP PROCESSING Comparison of DATA Step and

More information

Instructor: Craig Duckett. Lecture 03: Tuesday, April 3, 2018 SQL Sorting, Aggregates and Joining Tables

Instructor: Craig Duckett. Lecture 03: Tuesday, April 3, 2018 SQL Sorting, Aggregates and Joining Tables Instructor: Craig Duckett Lecture 03: Tuesday, April 3, 2018 SQL Sorting, Aggregates and Joining Tables 1 Assignment 1 is due LECTURE 5, Tuesday, April 10 th, 2018 in StudentTracker by MIDNIGHT MID-TERM

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

Use That SAP to Write Your Code Sandra Minjoe, Genentech, Inc., South San Francisco, CA

Use 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

Statistics, Data Analysis & Econometrics

Statistics, Data Analysis & Econometrics ST009 PROC MI as the Basis for a Macro for the Study of Patterns of Missing Data Carl E. Pierchala, National Highway Traffic Safety Administration, Washington ABSTRACT The study of missing data patterns

More information

Lab 7 Macros, Modules, Data Access Pages and Internet Summary Macros: How to Create and Run Modules vs. Macros 1. Jumping to Internet

Lab 7 Macros, Modules, Data Access Pages and Internet Summary Macros: How to Create and Run Modules vs. Macros 1. Jumping to Internet Lab 7 Macros, Modules, Data Access Pages and Internet Summary Macros: How to Create and Run Modules vs. Macros 1. Jumping to Internet 1. Macros 1.1 What is a macro? A macro is a set of one or more actions

More information

Planting Your Rows: Using SAS Formats to Make the Generation of Zero- Filled Rows in Tables Less Thorny

Planting Your Rows: Using SAS Formats to Make the Generation of Zero- Filled Rows in Tables Less Thorny Planting Your Rows: Using SAS Formats to Make the Generation of Zero- Filled Rows in Tables Less Thorny Kathy Hardis Fraeman, United BioSource Corporation, Bethesda, MD ABSTRACT Often tables or summary

More information

capabilities and their overheads are therefore different.

capabilities and their overheads are therefore different. Applications Development 3 Access DB2 Tables Using Keylist Extraction Berwick Chan, Kaiser Permanente, Oakland, Calif Raymond Wan, Raymond Wan Associate Inc., Oakland, Calif Introduction The performance

More information

Choosing the Right Technique to Merge Large Data Sets Efficiently Qingfeng Liang, Community Care Behavioral Health Organization, Pittsburgh, PA

Choosing the Right Technique to Merge Large Data Sets Efficiently Qingfeng Liang, Community Care Behavioral Health Organization, Pittsburgh, PA Choosing the Right Technique to Merge Large Data Sets Efficiently Qingfeng Liang, Community Care Behavioral Health Organization, Pittsburgh, PA ABSTRACT This paper outlines different SAS merging techniques

More information

Hash Objects for Everyone

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

A Practical Introduction to SAS Data Integration Studio

A Practical Introduction to SAS Data Integration Studio ABSTRACT A Practical Introduction to SAS Data Integration Studio Erik Larsen, Independent Consultant, Charleston, SC Frank Ferriola, Financial Risk Group, Cary, NC A useful and often overlooked tool which

More information

1. Join with PROC SQL a left join that will retain target records having no lookup match. 2. Data Step Merge of the target and lookup files.

1. Join with PROC SQL a left join that will retain target records having no lookup match. 2. Data Step Merge of the target and lookup files. Abstract PaperA03-2007 Table Lookups...You Want Performance? Rob Rohrbough, Rohrbough Systems Design, Inc. Presented to the Midwest SAS Users Group Monday, October 29, 2007 Paper Number A3 Over the years

More information

Paper ###-YYYY. SAS Enterprise Guide: A Revolutionary Tool! Jennifer First, Systems Seminar Consultants, Madison, WI

Paper ###-YYYY. SAS Enterprise Guide: A Revolutionary Tool! Jennifer First, Systems Seminar Consultants, Madison, WI Paper ###-YYYY SAS Enterprise Guide: A Revolutionary Tool! Jennifer First, Systems Seminar Consultants, Madison, WI ABSTRACT Whether you are a novice or a pro with SAS, Enterprise Guide has something for

More information

DETECTING ANOMALIES IN YOUR DATA USING ROUNDED NUMBERS Curtis A. Smith, Defense Contract Audit Agency, La Mirada, CA

DETECTING ANOMALIES IN YOUR DATA USING ROUNDED NUMBERS Curtis A. Smith, Defense Contract Audit Agency, La Mirada, CA DETECTING ANOMALIES IN YOUR DATA USING ROUNDED NUMBERS Curtis A. Smith, Defense Contract Audit Agency, La Mirada, CA ABSTRACT Analyzing large amounts of data looking for anomalies can be a disheartening

More information

BCSWomen Android programming (with AppInventor) Family fun day World record attempt

BCSWomen Android programming (with AppInventor) Family fun day World record attempt BCSWomen Android programming (with AppInventor) Family fun day World record attempt Overview of the day Intros Hello Android! Getting your app on your phone Getting into groups Ideas for apps Overview

More information

What's the Difference? Using the PROC COMPARE to find out.

What's the Difference? Using the PROC COMPARE to find out. MWSUG 2018 - Paper SP-069 What's the Difference? Using the PROC COMPARE to find out. Larry Riggen, Indiana University, Indianapolis, IN ABSTRACT We are often asked to determine what has changed in a database.

More information

Checking for Duplicates Wendi L. Wright

Checking for Duplicates Wendi L. Wright Checking for Duplicates Wendi L. Wright ABSTRACT This introductory level paper demonstrates a quick way to find duplicates in a dataset (with both simple and complex keys). It discusses what to do when

More information

INTRODUCTION TO PROC SQL JEFF SIMPSON SYSTEMS ENGINEER

INTRODUCTION TO PROC SQL JEFF SIMPSON SYSTEMS ENGINEER INTRODUCTION TO PROC SQL JEFF SIMPSON SYSTEMS ENGINEER THE SQL PROCEDURE The SQL procedure: enables the use of SQL in SAS is part of Base SAS software follows American National Standards Institute (ANSI)

More information

Don t Forget About SMALL Data

Don t Forget About SMALL Data Don t Forget About SMALL Data Lisa Eckler Lisa Eckler Consulting Inc. September 25, 2015 Outline Why does Small Data matter? Defining Small Data Where to look for it How to use it examples What else might

More information

SUGI 29 Data Warehousing, Management and Quality

SUGI 29 Data Warehousing, Management and Quality Building a Purchasing Data Warehouse for SRM from Disparate Procurement Systems Zeph Stemle, Qualex Consulting Services, Inc., Union, KY ABSTRACT SAS Supplier Relationship Management (SRM) solution offers

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

Getting the Most from Hash Objects. Bharath Gowda

Getting the Most from Hash Objects. Bharath Gowda Getting the Most from Hash Objects Bharath Gowda Getting the most from Hash objects Techniques covered are: SQL join Data step merge using BASE engine Data step merge using SPDE merge Index Key lookup

More information

USING SAS HASH OBJECTS TO CUT DOWN PROCESSING TIME Girish Narayandas, Optum, Eden Prairie, MN

USING SAS HASH OBJECTS TO CUT DOWN PROCESSING TIME Girish Narayandas, Optum, Eden Prairie, MN Paper RF-12-2014 USING SAS HASH OBJECTS TO CUT DOWN PROCESSING TIME Girish Narayandas, Optum, Eden Prairie, MN ABSTRACT Hash tables are in existence since SAS 9 version and are part of data step programming.

More information

Format-o-matic: Using Formats To Merge Data From Multiple Sources

Format-o-matic: Using Formats To Merge Data From Multiple Sources SESUG Paper 134-2017 Format-o-matic: Using Formats To Merge Data From Multiple Sources Marcus Maher, Ipsos Public Affairs; Joe Matise, NORC at the University of Chicago ABSTRACT User-defined formats are

More information

Cleaning Duplicate Observations on a Chessboard of Missing Values Mayrita Vitvitska, ClinOps, LLC, San Francisco, CA

Cleaning Duplicate Observations on a Chessboard of Missing Values Mayrita Vitvitska, ClinOps, LLC, San Francisco, CA Cleaning Duplicate Observations on a Chessboard of Missing Values Mayrita Vitvitska, ClinOps, LLC, San Francisco, CA ABSTRACT Removing duplicate observations from a data set is not as easy as it might

More information

Customized Flowcharts Using SAS Annotation Abhinav Srivastva, PaxVax Inc., Redwood City, CA

Customized Flowcharts Using SAS Annotation Abhinav Srivastva, PaxVax Inc., Redwood City, CA ABSTRACT Customized Flowcharts Using SAS Annotation Abhinav Srivastva, PaxVax Inc., Redwood City, CA Data visualization is becoming a trend in all sectors where critical business decisions or assessments

More information

ABSTRACT INTRODUCTION MACRO. Paper RF

ABSTRACT INTRODUCTION MACRO. Paper RF Paper RF-08-2014 Burst Reporting With the Help of PROC SQL Dan Sturgeon, Priority Health, Grand Rapids, Michigan Erica Goodrich, Priority Health, Grand Rapids, Michigan ABSTRACT Many SAS programmers need

More information

Please Don't Lag Behind LAG!

Please Don't Lag Behind LAG! Please Don't Lag Behind LAG! Anjan Matlapudi and J. Daniel Knapp Pharmacy Informatics and Finance PerformRx, The Next Generation PBM 200 Stevens Drive, Philadelphia, PA 19113 ABSTRACT A programmer may

More information

SAS Online Training: Course contents: Agenda:

SAS Online Training: Course contents: Agenda: SAS Online Training: Course contents: Agenda: (1) Base SAS (6) Clinical SAS Online Training with Real time Projects (2) Advance SAS (7) Financial SAS Training Real time Projects (3) SQL (8) CV preparation

More information

Exporting Variable Labels as Column Headers in Excel using SAS Chaitanya Chowdagam, MaxisIT Inc., Metuchen, NJ

Exporting 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 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

Quicker Than Merge? Kirby Cossey, Texas State Auditor s Office, Austin, Texas

Quicker Than Merge? Kirby Cossey, Texas State Auditor s Office, Austin, Texas Paper 076-29 Quicker Than Merge? Kirby Cossey, Texas State Auditor s Office, Austin, Texas ABSTRACT How many times do you need to extract a few records from an extremely large dataset? INTRODUCTION In

More information

9 Ways to Join Two Datasets David Franklin, Independent Consultant, New Hampshire, USA

9 Ways to Join Two Datasets David Franklin, Independent Consultant, New Hampshire, USA 9 Ways to Join Two Datasets David Franklin, Independent Consultant, New Hampshire, USA ABSTRACT Joining or merging data is one of the fundamental actions carried out when manipulating data to bring it

More information

Excel Tools for Internal Auditing

Excel Tools for Internal Auditing Excel Tools for Internal Auditing BONNIE MAXFIELD SMITH COUNTY INTERNAL AUDITOR Data Process Obtain Data Data Import Format Text to Columns Concatenate Macros Compare /Analyze IF Function Subtotal Random

More information

PROC SQL VS. DATA STEP PROCESSING JEFF SIMPSON SAS CUSTOMER LOYALTY

PROC SQL VS. DATA STEP PROCESSING JEFF SIMPSON SAS CUSTOMER LOYALTY PROC SQL VS. DATA STEP PROCESSING JEFF SIMPSON SAS CUSTOMER LOYALTY PROC SQL VS. DATA STEP What types of functionality do each provide Types of Joins Replicating joins using the data step How do each work

More information

Welcome to Google Docs:

Welcome to Google Docs: Welcome to Google Docs: Online free word processor, spreadsheet, and presentation tool that allows collaboration... (alternatives to Microsoft Word, Excel and PowerPoint) Allows users to create basic documents

More information

BASICS BEFORE STARTING SAS DATAWAREHOSING Concepts What is ETL ETL Concepts What is OLAP SAS. What is SAS History of SAS Modules available SAS

BASICS BEFORE STARTING SAS DATAWAREHOSING Concepts What is ETL ETL Concepts What is OLAP SAS. What is SAS History of SAS Modules available SAS SAS COURSE CONTENT Course Duration - 40hrs BASICS BEFORE STARTING SAS DATAWAREHOSING Concepts What is ETL ETL Concepts What is OLAP SAS What is SAS History of SAS Modules available SAS GETTING STARTED

More information

SAS Programming Efficiency: Tips, Examples, and PROC GINSIDE Optimization

SAS Programming Efficiency: Tips, Examples, and PROC GINSIDE Optimization SAS Programming Efficiency: Tips, Examples, and PROC GINSIDE Optimization Lingqun Liu, University of Michigan MISUG, Feb 2018 1 Outline This paper first explores the concepts of efficiency. Then reviews

More information

Table Lookups: From IF-THEN to Key-Indexing

Table Lookups: From IF-THEN to Key-Indexing Table Lookups: From IF-THEN to Key-Indexing Arthur L. Carpenter, California Occidental Consultants ABSTRACT One of the more commonly needed operations within SAS programming is to determine the value of

More information

From Manual to Automatic with Overdrive - Using SAS to Automate Report Generation Faron Kincheloe, Baylor University, Waco, TX

From Manual to Automatic with Overdrive - Using SAS to Automate Report Generation Faron Kincheloe, Baylor University, Waco, TX Paper 152-27 From Manual to Automatic with Overdrive - Using SAS to Automate Report Generation Faron Kincheloe, Baylor University, Waco, TX ABSTRACT This paper is a case study of how SAS products were

More information

The Stack, Free Store, and Global Namespace

The Stack, Free Store, and Global Namespace Pointers This tutorial is my attempt at clarifying pointers for anyone still confused about them. Pointers are notoriously hard to grasp, so I thought I'd take a shot at explaining them. The more information

More information

Proc SQL A Primer for SAS Programmers

Proc SQL A Primer for SAS Programmers Proc SQL A Primer for SAS Programmers Jimmy DeFoor South Central SAS Users Group Benbrook, Texas Abstract The Structured Query Language (SQL) has a very different syntax and, often, a very different method

More information

PROFESSOR: Last time, we took a look at an explicit control evaluator for Lisp, and that bridged the gap between

PROFESSOR: Last time, we took a look at an explicit control evaluator for Lisp, and that bridged the gap between MITOCW Lecture 10A [MUSIC PLAYING] PROFESSOR: Last time, we took a look at an explicit control evaluator for Lisp, and that bridged the gap between all these high-level languages like Lisp and the query

More information

HKTA TANG HIN MEMORIAL SECONDARY SCHOOL SECONDARY 3 COMPUTER LITERACY. Name: ( ) Class: Date: Databases and Microsoft Access

HKTA TANG HIN MEMORIAL SECONDARY SCHOOL SECONDARY 3 COMPUTER LITERACY. Name: ( ) Class: Date: Databases and Microsoft Access Databases and Microsoft Access Introduction to Databases A well-designed database enables huge data storage and efficient data retrieval. Term Database Table Record Field Primary key Index Meaning A organized

More information

Merging Data Eight Different Ways

Merging Data Eight Different Ways Paper 197-2009 Merging Data Eight Different Ways David Franklin, Independent Consultant, New Hampshire, USA ABSTRACT Merging data is a fundamental function carried out when manipulating data to bring it

More information

This Too Shall Pass: Passing Simple and Complex Parameters In and Out of Macros

This Too Shall Pass: Passing Simple and Complex Parameters In and Out of Macros ABSTRACT Paper 078-2018 This Too Shall Pass: Passing Simple and Complex Parameters In and Out of Macros Ted D. Williams, PharmD, BCPS, Magellan Method Even a rudimentary knowledge of SAS macros will highlight

More information

Paper William E Benjamin Jr, Owl Computer Consultancy, LLC

Paper William E Benjamin Jr, Owl Computer Consultancy, LLC Paper 025-2009 So, You ve Got Data Enterprise Wide (SAS, ACCESS, EXCEL, MySQL, and Others); Well, Let SAS Enterprise Guide Software Point-n-Click Your Way to Using It William E Benjamin Jr, Owl Computer

More information

Programming Gems that are worth learning SQL for! Pamela L. Reading, Rho, Inc., Chapel Hill, NC

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

Are you Still Afraid of Using Arrays? Let s Explore their Advantages

Are you Still Afraid of Using Arrays? Let s Explore their Advantages Paper CT07 Are you Still Afraid of Using Arrays? Let s Explore their Advantages Vladyslav Khudov, Experis Clinical, Kharkiv, Ukraine ABSTRACT At first glance, arrays in SAS seem to be a complicated and

More information

Creating a Departmental Standard SAS Enterprise Guide Template

Creating a Departmental Standard SAS Enterprise Guide Template Paper 1288-2017 Creating a Departmental Standard SAS Enterprise Guide Template ABSTRACT Amanda Pasch and Chris Koppenhafer, Kaiser Permanente This paper describes an ongoing effort to standardize and simplify

More information

VUEWorks Report Generation Training Packet

VUEWorks Report Generation Training Packet VUEWorks Report Generation Training Packet Thursday, June 21, 2018 Copyright 2017 VUEWorks, LLC. All rights reserved. Page 1 of 53 Table of Contents VUEWorks Reporting Course Description... 3 Generating

More information

If You Need These OBS and These VARS, Then Drop IF, and Keep WHERE Jay Iyengar, Data Systems Consultants LLC

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

Deep Dive: Pronto Transformations Reference

Deep Dive: Pronto Transformations Reference Deep Dive: Pronto Transformations Reference Available Transformations and Their Icons Transform Description Menu Icon Add Column on page 2 Important: Not available in Trial. Upgrade to Pro Edition! Add

More information

UAccess ANALYTICS Next Steps: Working with Bins, Groups, and Calculated Items: Combining Data Your Way

UAccess ANALYTICS Next Steps: Working with Bins, Groups, and Calculated Items: Combining Data Your Way UAccess ANALYTICS Next Steps: Working with Bins, Groups, and Calculated Items: Arizona Board of Regents, 2014 THE UNIVERSITY OF ARIZONA created 02.07.2014 v.1.00 For information and permission to use our

More information

Ruby on Rails Welcome. Using the exercise files

Ruby on Rails Welcome. Using the exercise files Ruby on Rails Welcome Welcome to Ruby on Rails Essential Training. In this course, we're going to learn the popular open source web development framework. We will walk through each part of the framework,

More information

Join, Merge or Lookup? Expanding your toolkit

Join, Merge or Lookup? Expanding your toolkit Join, Merge or Lookup? Expanding your toolkit Judy Loren, Health Dialog, Portland, ME Sandeep Gaudana, Health Dialog, Portland, ME ABSTRACT People who are learning SAS often ask: Is the DATA step or PROC

More information

A Breeze through SAS options to Enter a Zero-filled row Kajal Tahiliani, ICON Clinical Research, Warrington, PA

A Breeze through SAS options to Enter a Zero-filled row Kajal Tahiliani, ICON Clinical Research, Warrington, PA ABSTRACT: A Breeze through SAS options to Enter a Zero-filled row Kajal Tahiliani, ICON Clinical Research, Warrington, PA Programmers often need to summarize data into tables as per template. But study

More information

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

Hypothesis Testing: An SQL Analogy

Hypothesis Testing: An SQL Analogy Hypothesis Testing: An SQL Analogy Leroy Bracken, Boulder Creek, CA Paul D Sherman, San Jose, CA ABSTRACT This paper is all about missing data. Do you ever know something about someone but don't know who

More information

BI-09 Using Enterprise Guide Effectively Tom Miron, Systems Seminar Consultants, Madison, WI

BI-09 Using Enterprise Guide Effectively Tom Miron, Systems Seminar Consultants, Madison, WI Paper BI09-2012 BI-09 Using Enterprise Guide Effectively Tom Miron, Systems Seminar Consultants, Madison, WI ABSTRACT Enterprise Guide is not just a fancy program editor! EG offers a whole new window onto

More information

Automate Clinical Trial Data Issue Checking and Tracking

Automate Clinical Trial Data Issue Checking and Tracking PharmaSUG 2018 - Paper AD-31 ABSTRACT Automate Clinical Trial Data Issue Checking and Tracking Dale LeSueur and Krishna Avula, Regeneron Pharmaceuticals Inc. Well organized and properly cleaned data are

More information

Are Your SAS Programs Running You? Marje Fecht, Prowerk Consulting, Cape Coral, FL Larry Stewart, SAS Institute Inc., Cary, NC

Are Your SAS Programs Running You? Marje Fecht, Prowerk Consulting, Cape Coral, FL Larry Stewart, SAS Institute Inc., Cary, NC Paper CS-044 Are Your SAS Programs Running You? Marje Fecht, Prowerk Consulting, Cape Coral, FL Larry Stewart, SAS Institute Inc., Cary, NC ABSTRACT Most programs are written on a tight schedule, using

More information

1 of 24 5/6/2011 2:14 PM

1 of 24 5/6/2011 2:14 PM 1 of 24 5/6/2011 2:14 PM This tutorial explains how to add links, files, zipped files, pages, and MOODLE Media. ADDING LINKS 1. Let s start with adding a link. Here is a link to a practice Prezi. Highlight

More information

The new SAS 9.2 FCMP Procedure, what functions are in your future? John H. Adams, Boehringer Ingelheim Pharmaceutical, Inc.

The new SAS 9.2 FCMP Procedure, what functions are in your future? John H. Adams, Boehringer Ingelheim Pharmaceutical, Inc. PharmaSUG2010 - Paper AD02 The new SAS 9.2 FCMP Procedure, what functions are in your future? John H. Adams, Boehringer Ingelheim Pharmaceutical, Inc., Ridgefield, CT ABSTRACT Our company recently decided

More information

Data Transfer from Microsoft Access to SAS Made Easy

Data Transfer from Microsoft Access to SAS Made Easy ABSTRACT Paper CC12 Data Transfer from Microsoft Access to SAS Made Easy Zaizai Lu, AstraZeneca Pharmaceutical David Shen, ClinForce Inc. To transfer data from Microsoft Access database to SAS has never

More information

Macros I Use Every Day (And You Can, Too!)

Macros I Use Every Day (And You Can, Too!) Paper 2500-2018 Macros I Use Every Day (And You Can, Too!) Joe DeShon ABSTRACT SAS macros are a powerful tool which can be used in all stages of SAS program development. Like most programmers, I have collected

More information

One SAS To Rule Them All

One SAS To Rule Them All SAS Global Forum 2017 ABSTRACT Paper 1042 One SAS To Rule Them All William Gui Zupko II, Federal Law Enforcement Training Centers In order to display data visually, our audience preferred Excel s compared

More information

An Efficient Tool for Clinical Data Check

An Efficient Tool for Clinical Data Check PharmaSUG 2018 - Paper AD-16 An Efficient Tool for Clinical Data Check Chao Su, Merck & Co., Inc., Rahway, NJ Shunbing Zhao, Merck & Co., Inc., Rahway, NJ Cynthia He, Merck & Co., Inc., Rahway, NJ ABSTRACT

More information

Parallel scan. Here's an interesting alternative implementation that avoids the second loop.

Parallel scan. Here's an interesting alternative implementation that avoids the second loop. Parallel scan Summing the elements of an n-element array takes O(n) time on a single processor. Thus, we'd hope to find an algorithm for a p-processor system that takes O(n / p) time. In this section,

More information

ACT! Calendar to Excel

ACT! Calendar to Excel Another efficient and affordable ACT! Add-On by ACT! Calendar to Excel v.6.0 for ACT! 2008 and up http://www.exponenciel.com ACT! Calendar to Excel 2 Table of content Purpose of the add-on... 3 Installation

More information

A SAS Macro for Producing Benchmarks for Interpreting School Effect Sizes

A SAS Macro for Producing Benchmarks for Interpreting School Effect Sizes A SAS Macro for Producing Benchmarks for Interpreting School Effect Sizes Brian E. Lawton Curriculum Research & Development Group University of Hawaii at Manoa Honolulu, HI December 2012 Copyright 2012

More information

ABSTRACT INTRODUCTION TRICK 1: CHOOSE THE BEST METHOD TO CREATE MACRO VARIABLES

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

Correcting for natural time lag bias in non-participants in pre-post intervention evaluation studies

Correcting for natural time lag bias in non-participants in pre-post intervention evaluation studies Correcting for natural time lag bias in non-participants in pre-post intervention evaluation studies Gandhi R Bhattarai PhD, OptumInsight, Rocky Hill, CT ABSTRACT Measuring the change in outcomes between

More information

Getting it Done with PROC TABULATE

Getting it Done with PROC TABULATE ABSTRACT Getting it Done with PROC TABULATE Michael J. Williams, ICON Clinical Research, San Francisco, CA The task of displaying statistical summaries of different types of variables in a single table

More information

Professional Edition Tutorial: Basic Excel

Professional Edition Tutorial: Basic Excel Professional Edition Tutorial: Basic Excel Pronto, Visualizer, and Dashboards 2.0 Documentation Release 3/29/2017 i Copyright 2015-2017 Birst, Inc. Copyright 2015-2017 Birst, Inc. All rights reserved.

More information

A Way to Work with Invoice Files in SAS

A Way to Work with Invoice Files in SAS A Way to Work with Invoice Files in SAS Anjan Matlapudi and J. Daniel Knapp Pharmacy Informatics, PerformRx, The Next Generation PBM, 200 Stevens Drive, Philadelphia, PA 19113 ABSTRACT This paper illustrates

More information

Basic Reports & Dashboards

Basic Reports & Dashboards Basic Reports & Dashboards Arizona Board of Regents, 2012 updated 06.01.2012 v.1.10 For information and permission to use our PDF manuals, please contact uitsworkshopteam@list.arizona.edu PDFs available

More information

Quick Results with the Output Delivery System

Quick Results with the Output Delivery System Paper 58-27 Quick Results with the Output Delivery System Sunil K. Gupta, Gupta Programming, Simi Valley, CA ABSTRACT SAS s new Output Delivery System (ODS) opens a whole new world of options in generating

More information

Indenting with Style

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

PharmaSUG Paper AD06

PharmaSUG Paper AD06 PharmaSUG 2012 - Paper AD06 A SAS Tool to Allocate and Randomize Samples to Illumina Microarray Chips Huanying Qin, Baylor Institute of Immunology Research, Dallas, TX Greg Stanek, STEEEP Analytics, Baylor

More information

The Crypt Keeper Cemetery Software Online Version Tutorials To print this information, right-click on the contents and choose the 'Print' option.

The Crypt Keeper Cemetery Software Online Version Tutorials To print this information, right-click on the contents and choose the 'Print' option. The Crypt Keeper Cemetery Software Online Version Tutorials To print this information, right-click on the contents and choose the 'Print' option. Home Greetings! This tutorial series is to get you familiar

More information

Introduction to Databases and SQL

Introduction to Databases and SQL Introduction to Databases and SQL Files vs Databases In the last chapter you learned how your PHP scripts can use external files to store and retrieve data. Although files do a great job in many circumstances,

More information

Why choose between SAS Data Step and PROC SQL when you can have both?

Why choose between SAS Data Step and PROC SQL when you can have both? Paper QT-09 Why choose between SAS Data Step and PROC SQL when you can have both? Charu Shankar, SAS Canada ABSTRACT As a SAS coder, you've often wondered what the SQL buzz is about. Or vice versa you

More information

Metadata integrated programming

Metadata integrated programming PharmaSUG 2017 - Paper AD17 Metadata integrated programming Jesper Zeth, Jan Skowronski, Novo Nordisk A/S ABSTRACT With the growing complexity of pharmaceutical projects it is becoming increasingly relevant

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

2997 Yarmouth Greenway Drive, Madison, WI Phone: (608) Web:

2997 Yarmouth Greenway Drive, Madison, WI Phone: (608) Web: Getting the Most Out of SAS Enterprise Guide 2997 Yarmouth Greenway Drive, Madison, WI 53711 Phone: (608) 278-9964 Web: www.sys-seminar.com 1 Questions, Comments Technical Difficulties: Call 1-800-263-6317

More information

Have SAS Annotate your Blank CRF for you! Plus dynamically add color and style to your annotations. Steven Black, Agility-Clinical Inc.

Have SAS Annotate your Blank CRF for you! Plus dynamically add color and style to your annotations. Steven Black, Agility-Clinical Inc. PharmaSUG 2015 - Paper AD05 Have SAS Annotate your Blank CRF for you! Plus dynamically add color and style to your annotations. ABSTRACT Steven Black, Agility-Clinical Inc., Carlsbad, CA Creating the BlankCRF.pdf

More information

USPS HIGHWAY CONTRACT ROUTE RECONCILIATION PROCESS

USPS HIGHWAY CONTRACT ROUTE RECONCILIATION PROCESS USPS HIGHWAY CONTRACT ROUTE RECONCILIATION PROCESS As an HCR Contractor you will need to track and reconcile your transactions. Doing so will ensure that you are staying within your gallons and quickly

More information

PH006 Audit Trails of SAS Data Set Changes An Overview Maria Y. Reiss, Wyeth Pharmaceuticals, Collegeville, PA

PH006 Audit Trails of SAS Data Set Changes An Overview Maria Y. Reiss, Wyeth Pharmaceuticals, Collegeville, PA PH006 Audit Trails of SAS Data Set Changes An Overview Maria Y. Reiss, Wyeth, Collegeville, PA ABSTRACT SAS programmers often have to modify data in SAS data sets. When modifying data, it is desirable

More information

SAS Application to Automate a Comprehensive Review of DEFINE and All of its Components

SAS Application to Automate a Comprehensive Review of DEFINE and All of its Components PharmaSUG 2017 - Paper AD19 SAS Application to Automate a Comprehensive Review of DEFINE and All of its Components Walter Hufford, Vincent Guo, and Mijun Hu, Novartis Pharmaceuticals Corporation ABSTRACT

More information

Interface. 2. Interface Adobe InDesign CS2 H O T

Interface. 2. Interface Adobe InDesign CS2 H O T 2. Interface Adobe InDesign CS2 H O T 2 Interface The Welcome Screen Interface Overview The Toolbox Toolbox Fly-Out Menus InDesign Palettes Collapsing and Grouping Palettes Moving and Resizing Docked or

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

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

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

How to Create Data-Driven Lists

How to Create Data-Driven Lists Paper 9540-2016 How to Create Data-Driven Lists Kate Burnett-Isaacs, Statistics Canada ABSTRACT As SAS programmers we often want our code or program logic to be driven by the data at hand, rather than

More information