1 Files to download. 3 A macro to list out-of-range data values. 2 Reading in the example data file. 22S:172 Lab session 9 Macros for data cleaning

Size: px
Start display at page:

Download "1 Files to download. 3 A macro to list out-of-range data values. 2 Reading in the example data file. 22S:172 Lab session 9 Macros for data cleaning"

Transcription

1 1 2 22S:172 Lab session 9 Macros for data cleaning July 20, 2005 GENDER VISIT HR SBP DBP DX AE = "Gender" = "Visit Date" = "Heart Rate" = "Systolic Blood Pressure" = "Diastolic Blood Pressure" = "Diagnosis Code" = "Adverse Event?"; 1 Files to download FORMAT VISIT MMDDYY10.; patients.txt lab9.sas 2 Reading in the example data file options linesize = 72 mprint ; * mprint option puts macro debugging info in the log file ; /* Program to create SAS data set PATIENTS */ *LIBNAME CLEAN "C:\TEMP"; LIBNAME CLEAN "/space/kcowles/172/clean"; DATA CLEAN.PATIENTS; INFILE "C:\TEMP\patients.dat" PAD; * INFILE "/space/kcowles/172/clean/patients.dat" PAD; PATNO GENDER VISIT HR SBP DBP DX AE $1.; LABEL PATNO = "Patient Number" 3 A macro to list out-of-range data values Recall that a macro program is a piece of SAS code in which parts of the code are replaced by variable information by the macro processor before the code is processed in the usual way by the SAS compiler. When the macro is called, the macro processor replaces each of the arguments with the values you specify. Then, in the macro program, every macro variable is replaced by the assigned value. Program 2-7 Writing a macro to list out-of-range data values * * Program Name: RANGE.SAS in C:\CLEANING Purpose: Macro that takes lower and upper limits for a numeric variable, and an ID variable to print out an exception report to the output window Arguments: DSN - Data set name VAR - Numeric variable to test LOW - Lowest valid value HIGH - Highest valid value IDVAR - ID variable to print in the exception report Example: %RANGE(CLEAN.PATIENTS,HR,40,100,PATNO) * *; %MACRO RANGE(DSN,VAR,LOW,HIGH,IDVAR);

2 3 4 TITLE "Listing of Invalid Patient Numbers and Data Values"; DATA _NULL_; SET &DSN(KEEP=&IDVAR &VAR); FILE PRINT; IF (&VAR LT &LOW AND &VAR NE.) OR &VAR GT &HIGH THEN PUT "&IDVAR:" "Value:" "out-of-range"; %MEND RANGE; %RANGE(CLEAN.PATIENTS,HR,40,100,PATNO) Look at what appears in the SAS log: MPRINT(RANGE): TITLE "Listing of Invalid Patient Numbers and Data Values"; MPRINT(RANGE): DATA _NULL_; MPRINT(RANGE): SET CLEAN.PATIENTS(KEEP=PATNO HR); MPRINT(RANGE): FILE PRINT; MPRINT(RANGE): IF (HR LT 40 AND HR NE.) OR HR GT 100 THEN PUT "PATNO:" "Value:" "out-of-range"; MPRINT(RANGE): NOTE: 7 lines were written to file PRINT. NOTE: There were 31 observations read from the data set CLEAN.PATIENTS. NOTE: The DATASTEP printed page 1. And here is the output: Listing of Invalid Patient Numbers and Data Values 1 20:04 Monday, July 14, 2003 PATNO:004 Variable:HR Value:101 out-of-range PATNO:008 Variable:HR Value:210 out-of-range PATNO:014 Variable:HR Value:22 out-of-range PATNO:017 Variable:HR Value:208 out-of-range PATNO:321 Variable:HR Value:900 out-of-range PATNO:020 Variable:HR Value:10 out-of-range PATNO:023 Variable:HR Value:22 out-of-range 4 A program to use PROC UNIVARIATE to look for highest and lowest values by percentiles Note: the %EVAL is needed in the 7th line to perform the integer arithmetic. If the value of LOW_PER were 20, the value of UP_PER without the %EVAL function would be the text string instead of 80. The data set TMP created by proc univariate contains only one observation and three variables: PATNO, L_20 and L_80. We want to add the two values of L_20 and L_80 to every observation in the original dataset. The SET statement brings in an observation from the PATIENTS dataset, keeping only the variables PATNO and HR. Because all variables brought in with a SET statement are automatically retained, the values for L_20 and L_80 are added to every observation in the dataset HILO. Program 2-12 Program to print the top and bottom "n" percent of data values, using PROC UNIVARIATE ***Solution using PROC UNIVARIATE and Percentiles; *LIBNAME CLEAN "C:\CLEANING"; ***The two macro variables that follow define the lower and upper percentile cut points; ***Change the value in the line below to the percentile cut-off you want; %LET LOW_PER=20; ***Compute the upper cut-off value; %LET UP_PER= %EVAL(100 - &LOW_PER); ***Choose a variable to operate on; %LET VAR = HR; PROC UNIVARIATE DATA=CLEAN.PATIENTS NOPRINT; VAR &VAR; ID PATNO; OUTPUT OUT=TMP PCTLPTS=&LOW_PER &UP_PER PCTLPRE = L_; * PCTLPRE = L sets prefix of variable names to L_ ;

3 5 6 DATA HILO; SET CLEAN.PATIENTS(KEEP=PATNO &VAR); ***Bring in upper and lower cutoffs for variable; IF _N_ = 1 THEN SET TMP; IF &VAR LE L_&LOW_PER THEN DO; RANGE = LOW ; ELSE IF &VAR GE L_&UP_PER THEN DO; RANGE = HIGH ; PROC SORT DATA=HILO(WHERE=(&VAR NE.)); BY DESCENDING RANGE &VAR; PROC PRINT DATA=HILO; TITLE "High and Low Values For Variables"; ID PATNO; VAR RANGE &VAR; The output: High and Low Values For Variables 2 20:04 Monday, July 14, 2003 PATNO RANGE HR 020 LOW LOW LOW LOW LOW LOW HIGH HIGH 88 HIGH 90 o 004 HIGH HIGH HIGH HIGH Turning the prevous program into a macro PROC DATASETS is used to delete the two temporaray datasets TMP and HILO. Program 2-13 Creating a macro to list the highest and lowest "n" percent of the data, using PROC UNIVARIATE * * Program Name: HILOWPER.SAS in C:\CLEANING Purpose: To list the n percent highest and lowest values for a selected variable. Arguments: DSN - Data set name VAR - Numeric variable to test PERCENT - Upper and Lower percentile cutoff IDVAR - ID variable to print in the report Example: %HILOWPER(CLEAN.PATIENTS,SBP,20,PATNO) * *; %MACRO HILOWPER(DSN,VAR,PERCENT,IDVAR); ***Compute upper percentile cutoff; %LET UP_PER = %EVAL(100 - &PERCENT); PROC UNIVARIATE DATA=&DSN NOPRINT; VAR &VAR; ID &IDVAR; OUTPUT OUT=TMP PCTLPTS=&PERCENT &UP_PER PCTLPRE = L_; DATA HILO; SET &DSN(KEEP=&IDVAR &VAR);

4 7 8 IF _N_ = 1 THEN SET TMP; IF &VAR LE L_&PERCENT THEN DO; RANGE = LOW ; ELSE IF &VAR GE L_&UP_PER THEN DO; RANGE = HIGH ; PROC SORT DATA=HILO(WHERE=(&VAR NE.)); BY DESCENDING RANGE &VAR; PROC PRINT DATA=HILO; TITLE "Low And High Values For Variables"; ID &IDVAR; VAR RANGE &VAR; PROC DATASETS LIBRARY=WORK NOLIST; DELETE TMP; DELETE HILO; QUIT; %MEND HILOWPER ; %HILOWPER(CLEAN.PATIENTS,HR,20,PATNO) %HILOWPER(CLEAN.PATIENTS,SBP,20,PATNO) %HILOWPER(CLEAN.PATIENTS,DBP,20,PATNO) 6 Introduction to PROC RANK observations in group 0 being in the bottom quartile, etc. Here is sample code to illustrate how PROC RANK works. data sample ; input myval ; datalines ; ; proc rank data = sample out = smplrank; var myval ; ranks valrank ; proc print data = smplrank ; proc rank data = sample out = smplrank2 groups = 3; var myval ; ranks valrank ; proc print data = smplrank2 ; PROC RANK produces a new variable (or replaces the values of an existing variable) with values equal to the ranks of another variable. The GROUPS= option on PROC RANK allows you to group your data values. For example, if you set GROUPS = 4, the new variable that usually holds rank values with instead have values of 0,1,2, and 3, with those Here is the output. The SAS System 1

5 9 10 Obs myval valrank The SAS System 2 Obs myval valrank Using PROC RANK to look for highest and lowest values by percentage This method is simpler and more efficient, but slightly less accurate than the method using PROC UNIVARIATE. The %SYSEVALF function allows noninteger arithmetic and also provides various conversions (CEIL, FLOOR, INTEGER, or BOOLEAN). Program 2-14 Creating a macro to list the highest and lowest "n" percent of the data, using PROC RANK * * Macro Name: HI_LOW_P Purpose: To list the upper and lower n% of values Arguments: DSN - Data set name (one- or two-level VAR - Variable to test PERCENT - Upper and lower n% IDVAR - ID variable Example: %HI_LOW_P(CLEAN.PATIENTS,SBP,20,PATNO) * *; %MACRO HI_LOW_P(DSN,VAR,PERCENT,IDVAR); ***Compute number of groups for PROC RANK; %LET GRP = %SYSEVALF(100 / &PERCENT,FLOOR); ***Value of the highest GROUP from PROC RANK, equal to the number of groups - 1; %LET TOP = %EVAL(&GRP - 1); PROC FORMAT; VALUE RNK 0= Low &TOP= High ; PROC RANK DATA=&DSN OUT=NEW GROUPS=&GRP; VAR &VAR; RANKS RANGE; ***Sort and keep top and bottom n%; PROC SORT DATA=NEW (WHERE=(RANGE IN (0,&TOP))); BY &VAR; ***Produce the report; PROC PRINT DATA=NEW; TITLE "Upper and Lower &PERCENT.% Values for %UPCASE(&VAR)"; ID &IDVAR; VAR RANGE &VAR; FORMAT RANGE RNK.;

6 11 PROC DATASETS LIBRARY=WORK NOLIST; DELETE NEW; QUIT; %MEND HI_LOW_P; %HI_LOW_P(CLEAN.PATIENTS,SBP,20,PATNO)

1 Checking Values of Character Variables

1 Checking Values of Character Variables 1 Checking Values of Character Variables Introduction 1 Using PROC FREQ to List Values 1 Description of the Raw Data File PATIENTS.TXT 2 Using a DATA Step to Check for Invalid Values 7 Describing the VERIFY,

More information

Data Cleaning 101. Ronald Cody, Ed.D., Robert Wood Johnson Medical School, Piscataway, NJ. Variable Name. Valid Values. Type

Data Cleaning 101. Ronald Cody, Ed.D., Robert Wood Johnson Medical School, Piscataway, NJ. Variable Name. Valid Values. Type Data Cleaning 101 Ronald Cody, Ed.D., Robert Wood Johnson Medical School, Piscataway, NJ INTRODUCTION One of the first and most important steps in any data processing task is to verify that your data values

More information

Managing very large EXCEL files using the XLS engine John H. Adams, Boehringer Ingelheim Pharmaceutical, Inc., Ridgefield, CT

Managing very large EXCEL files using the XLS engine John H. Adams, Boehringer Ingelheim Pharmaceutical, Inc., Ridgefield, CT Paper AD01 Managing very large EXCEL files using the XLS engine John H. Adams, Boehringer Ingelheim Pharmaceutical, Inc., Ridgefield, CT ABSTRACT The use of EXCEL spreadsheets is very common in SAS applications,

More information

How to Reduce the Disk Space Required by a SAS Data Set

How to Reduce the Disk Space Required by a SAS Data Set How to Reduce the Disk Space Required by a SAS Data Set Selvaratnam Sridharma, U.S. Census Bureau, Washington, DC ABSTRACT SAS datasets can be large and disk space can often be at a premium. In this paper,

More information

Writing cleaner and more powerful SAS code using macros. Patrick Breheny

Writing cleaner and more powerful SAS code using macros. Patrick Breheny Writing cleaner and more powerful SAS code using macros Patrick Breheny Why Use Macros? Macros automatically generate SAS code Macros allow you to make more dynamic, complex, and generalizable SAS programs

More information

AN INTRODUCTION TO MACRO VARIABLES AND MACRO PROGRAMS Mike S. Zdeb, New York State Department of Health

AN INTRODUCTION TO MACRO VARIABLES AND MACRO PROGRAMS Mike S. Zdeb, New York State Department of Health AN INTRODUCTION TO MACRO VARIABLES AND MACRO PROGRAMS Mike S. Zdeb, New York State Department of Health INTRODUCTION There are a number of SAS tools that you may never have to use. Why? The main reason

More information

Preparing your data for analysis using SAS. Landon Sego 24 April 2003 Department of Statistics UW-Madison

Preparing your data for analysis using SAS. Landon Sego 24 April 2003 Department of Statistics UW-Madison Preparing your data for analysis using SAS Landon Sego 24 April 2003 Department of Statistics UW-Madison Assumptions That you have used SAS at least a few times. It doesn t matter whether you run SAS in

More information

B) Mean Function: This function returns the arithmetic mean (average) and ignores the missing value. E.G: Var=MEAN (var1, var2, var3 varn);

B) Mean Function: This function returns the arithmetic mean (average) and ignores the missing value. E.G: Var=MEAN (var1, var2, var3 varn); SAS-INTERVIEW QUESTIONS 1. What SAS statements would you code to read an external raw data file to a DATA step? Ans: Infile and Input statements are used to read external raw data file to a Data Step.

More information

Using Macros to Automate SAS Processing Kari Richardson, SAS Institute, Cary, NC Eric Rossland, SAS Institute, Dallas, TX

Using Macros to Automate SAS Processing Kari Richardson, SAS Institute, Cary, NC Eric Rossland, SAS Institute, Dallas, TX Paper 126-29 Using Macros to Automate SAS Processing Kari Richardson, SAS Institute, Cary, NC Eric Rossland, SAS Institute, Dallas, TX ABSTRACT This hands-on workshop shows how to use the SAS Macro Facility

More information

Nine Steps to Get Started using SAS Macros

Nine Steps to Get Started using SAS Macros Paper 56-28 Nine Steps to Get Started using SAS Macros Jane Stroupe, SAS Institute, Chicago, IL ABSTRACT Have you ever heard your coworkers rave about macros? If so, you've probably wondered what all the

More information

Data Presentation. Paper 126-27. Using SAS Macros to Create Automated Excel Reports Containing Tables, Charts and Graphs

Data Presentation. Paper 126-27. Using SAS Macros to Create Automated Excel Reports Containing Tables, Charts and Graphs Paper 126-27 Using SAS Macros to Create Automated Excel Reports Containing Tables, Charts and Graphs Tugluke Abdurazak Abt Associates Inc. 1110 Vermont Avenue N.W. Suite 610 Washington D.C. 20005-3522

More information

Programming Tricks For Reducing Storage And Work Space Curtis A. Smith, Defense Contract Audit Agency, La Mirada, CA.

Programming Tricks For Reducing Storage And Work Space Curtis A. Smith, Defense Contract Audit Agency, La Mirada, CA. Paper 23-27 Programming Tricks For Reducing Storage And Work Space Curtis A. Smith, Defense Contract Audit Agency, La Mirada, CA. ABSTRACT Have you ever had trouble getting a SAS job to complete, although

More information

4 Other useful features on the course web page. 5 Accessing SAS

4 Other useful features on the course web page. 5 Accessing SAS 1 Using SAS outside of ITCs Statistical Methods and Computing, 22S:30/105 Instructor: Cowles Lab 1 Jan 31, 2014 You can access SAS from off campus by using the ITC Virtual Desktop Go to https://virtualdesktopuiowaedu

More information

EXST SAS Lab Lab #4: Data input and dataset modifications

EXST SAS Lab Lab #4: Data input and dataset modifications EXST SAS Lab Lab #4: Data input and dataset modifications Objectives 1. Import an EXCEL dataset. 2. Infile an external dataset (CSV file) 3. Concatenate two datasets into one 4. The PLOT statement will

More information

Paper 109-25 Merges and Joins Timothy J Harrington, Trilogy Consulting Corporation

Paper 109-25 Merges and Joins Timothy J Harrington, Trilogy Consulting Corporation Paper 109-25 Merges and Joins Timothy J Harrington, Trilogy Consulting Corporation Abstract This paper discusses methods of joining SAS data sets. The different methods and the reasons for choosing a particular

More information

EXTRACTING DATA FROM PDF FILES

EXTRACTING DATA FROM PDF FILES Paper SER10_05 EXTRACTING DATA FROM PDF FILES Nat Wooding, Dominion Virginia Power, Richmond, Virginia ABSTRACT The Adobe Portable Document File (PDF) format has become a popular means of producing documents

More information

The Power of CALL SYMPUT DATA Step Interface by Examples Yunchao (Susan) Tian, Social & Scientific Systems, Inc., Silver Spring, MD

The Power of CALL SYMPUT DATA Step Interface by Examples Yunchao (Susan) Tian, Social & Scientific Systems, Inc., Silver Spring, MD Paper 052-29 The Power of CALL SYMPUT DATA Step Interface by Examples Yunchao (Susan) Tian, Social & Scientific Systems, Inc., Silver Spring, MD ABSTRACT AND INTRODUCTION CALL SYMPUT is a SAS language

More information

Developing Applications Using BASE SAS and UNIX

Developing Applications Using BASE SAS and UNIX Developing Applications Using BASE SAS and UNIX Joe Novotny, GlaxoSmithKline Pharmaceuticals, Inc., Collegeville, PA ABSTRACT How many times have you written simple SAS programs to view the contents of

More information

Health Services Research Utilizing Electronic Health Record Data: A Grad Student How-To Paper

Health Services Research Utilizing Electronic Health Record Data: A Grad Student How-To Paper Paper 3485-2015 Health Services Research Utilizing Electronic Health Record Data: A Grad Student How-To Paper Ashley W. Collinsworth, ScD, MPH, Baylor Scott & White Health and Tulane University School

More information

THE POWER OF PROC FORMAT

THE POWER OF PROC FORMAT THE POWER OF PROC FORMAT Jonas V. Bilenas, Chase Manhattan Bank, New York, NY ABSTRACT The FORMAT procedure in SAS is a very powerful and productive tool. Yet many beginning programmers rarely make use

More information

Innovative Techniques and Tools to Detect Data Quality Problems

Innovative Techniques and Tools to Detect Data Quality Problems Paper DM05 Innovative Techniques and Tools to Detect Data Quality Problems Hong Qi and Allan Glaser Merck & Co., Inc., Upper Gwynnedd, PA ABSTRACT High quality data are essential for accurate and meaningful

More information

USING PROCEDURES TO CREATE SAS DATA SETS... ILLUSTRATED WITH AGE ADJUSTING OF DEATH RATES 1

USING PROCEDURES TO CREATE SAS DATA SETS... ILLUSTRATED WITH AGE ADJUSTING OF DEATH RATES 1 USING PROCEDURES TO CREATE SAS DATA SETS... ILLUSTRATED WITH AGE ADJUSTING OF DEATH RATES 1 There may be times when you run a SAS procedure when you would like to direct the procedure output to a SAS data

More information

9.1 SAS. SQL Query Window. User s Guide

9.1 SAS. SQL Query Window. User s Guide SAS 9.1 SQL Query Window User s Guide The correct bibliographic citation for this manual is as follows: SAS Institute Inc. 2004. SAS 9.1 SQL Query Window User s Guide. Cary, NC: SAS Institute Inc. SAS

More information

Instant Interactive SAS Log Window Analyzer

Instant Interactive SAS Log Window Analyzer ABSTRACT Paper 10240-2016 Instant Interactive SAS Log Window Analyzer Palanisamy Mohan, ICON Clinical Research India Pvt Ltd Amarnath Vijayarangan, Emmes Services Pvt Ltd, India An interactive SAS environment

More information

Foundations and Fundamentals

Foundations and Fundamentals How to Monitor Production and Development Processing using the SAS Logging Facility Curtis E. Reid, U.S. Bureau of Labor Statistics, Washington, DC Abstract An innovative diagnostic feature was introduced

More information

AN ANIMATED GUIDE: SENDING SAS FILE TO EXCEL

AN ANIMATED GUIDE: SENDING SAS FILE TO EXCEL Paper CC01 AN ANIMATED GUIDE: SENDING SAS FILE TO EXCEL Russ Lavery, Contractor for K&L Consulting Services, King of Prussia, U.S.A. ABSTRACT The primary purpose of this paper is to provide a generic DDE

More information

A Method for Cleaning Clinical Trial Analysis Data Sets

A Method for Cleaning Clinical Trial Analysis Data Sets A Method for Cleaning Clinical Trial Analysis Data Sets Carol R. Vaughn, Bridgewater Crossings, NJ ABSTRACT This paper presents a method for using SAS software to search SAS programs in selected directories

More information

Different ways of calculating percentiles using SAS Arun Akkinapalli, ebay Inc, San Jose CA

Different ways of calculating percentiles using SAS Arun Akkinapalli, ebay Inc, San Jose CA Different ways of calculating percentiles using SAS Arun Akkinapalli, ebay Inc, San Jose CA ABSTRACT Calculating percentiles (quartiles) is a very common practice used for data analysis. This can be accomplished

More information

Categorical Variables

Categorical Variables Categorical Variables Variables which record a response as a set of categories are termed categorical. Such variables fall into three classifications: Nominal, Ordinal, and Interval. Nominal variables

More information

Labels, Labels, and More Labels Stephanie R. Thompson, Rochester Institute of Technology, Rochester, NY

Labels, Labels, and More Labels Stephanie R. Thompson, Rochester Institute of Technology, Rochester, NY Paper FF-007 Labels, Labels, and More Labels Stephanie R. Thompson, Rochester Institute of Technology, Rochester, NY ABSTRACT SAS datasets include labels as optional variable attributes in the descriptor

More information

REx: An Automated System for Extracting Clinical Trial Data from Oracle to SAS

REx: An Automated System for Extracting Clinical Trial Data from Oracle to SAS REx: An Automated System for Extracting Clinical Trial Data from Oracle to SAS Edward McCaney, Centocor Inc., Malvern, PA Gail Stoner, Centocor Inc., Malvern, PA Anthony Malinowski, Centocor Inc., Malvern,

More information

Managing Tables in Microsoft SQL Server using SAS

Managing Tables in Microsoft SQL Server using SAS Managing Tables in Microsoft SQL Server using SAS Jason Chen, Kaiser Permanente, San Diego, CA Jon Javines, Kaiser Permanente, San Diego, CA Alan L Schepps, M.S., Kaiser Permanente, San Diego, CA Yuexin

More information

SAS Macro Programming for Beginners

SAS Macro Programming for Beginners Paper 243-29 SAS Macro Programming for Beginners Susan J. Slaughter, Avocet Solutions, Davis, CA Lora D. Delwiche, Delwiche Consulting, Winters, CA ABSTRACT Macro programming is generally considered an

More information

You have got SASMAIL!

You have got SASMAIL! You have got SASMAIL! Rajbir Chadha, Cognizant Technology Solutions, Wilmington, DE ABSTRACT As SAS software programs become complex, processing times increase. Sitting in front of the computer, waiting

More information

Paper 70-27 An Introduction to SAS PROC SQL Timothy J Harrington, Venturi Partners Consulting, Waukegan, Illinois

Paper 70-27 An Introduction to SAS PROC SQL Timothy J Harrington, Venturi Partners Consulting, Waukegan, Illinois Paper 70-27 An Introduction to SAS PROC SQL Timothy J Harrington, Venturi Partners Consulting, Waukegan, Illinois Abstract This paper introduces SAS users with at least a basic understanding of SAS data

More information

CHAPTER 1 Overview of SAS/ACCESS Interface to Relational Databases

CHAPTER 1 Overview of SAS/ACCESS Interface to Relational Databases 3 CHAPTER 1 Overview of SAS/ACCESS Interface to Relational Databases About This Document 3 Methods for Accessing Relational Database Data 4 Selecting a SAS/ACCESS Method 4 Methods for Accessing DBMS Tables

More information

SAS Certified Base Programmer for SAS 9 A00-211. SAS Certification Questions and Answers with explanation

SAS Certified Base Programmer for SAS 9 A00-211. SAS Certification Questions and Answers with explanation SAS BASE Certification 490 Questions + 50 Page Revision Notes (Free update to new questions for the Same Product) By SAS Certified Base Programmer for SAS 9 A00-211 SAS Certification Questions and Answers

More information

Changing the Shape of Your Data: PROC TRANSPOSE vs. Arrays

Changing the Shape of Your Data: PROC TRANSPOSE vs. Arrays Changing the Shape of Your Data: PROC TRANSPOSE vs. Arrays Bob Virgile Robert Virgile Associates, Inc. Overview To transpose your data (turning variables into observations or turning observations into

More information

Emailing Automated Notification of Errors in a Batch SAS Program Julie Kilburn, City of Hope, Duarte, CA Rebecca Ottesen, City of Hope, Duarte, CA

Emailing Automated Notification of Errors in a Batch SAS Program Julie Kilburn, City of Hope, Duarte, CA Rebecca Ottesen, City of Hope, Duarte, CA Emailing Automated Notification of Errors in a Batch SAS Program Julie Kilburn, City of Hope, Duarte, CA Rebecca Ottesen, City of Hope, Duarte, CA ABSTRACT With multiple programmers contributing to a batch

More information

Search and Replace in SAS Data Sets thru GUI

Search and Replace in SAS Data Sets thru GUI Search and Replace in SAS Data Sets thru GUI Edmond Cheng, Bureau of Labor Statistics, Washington, DC ABSTRACT In managing data with SAS /BASE software, performing a search and replace is not a straight

More information

Eliminating Tedium by Building Applications that Use SQL Generated SAS Code Segments

Eliminating Tedium by Building Applications that Use SQL Generated SAS Code Segments Eliminating Tedium by Building Applications that Use SQL Generated SAS Code Segments David A. Mabey, Reader s Digest Association Inc., Pleasantville, NY ABSTRACT When SAS applications are driven by data-generated

More information

Creating Dynamic Reports Using Data Exchange to Excel

Creating Dynamic Reports Using Data Exchange to Excel Creating Dynamic Reports Using Data Exchange to Excel Liping Huang Visiting Nurse Service of New York ABSTRACT The ability to generate flexible reports in Excel is in great demand. This paper illustrates

More information

Methods for Interaction Detection in Predictive Modeling Using SAS Doug Thompson, PhD, Blue Cross Blue Shield of IL, NM, OK & TX, Chicago, IL

Methods for Interaction Detection in Predictive Modeling Using SAS Doug Thompson, PhD, Blue Cross Blue Shield of IL, NM, OK & TX, Chicago, IL Paper SA01-2012 Methods for Interaction Detection in Predictive Modeling Using SAS Doug Thompson, PhD, Blue Cross Blue Shield of IL, NM, OK & TX, Chicago, IL ABSTRACT Analysts typically consider combinations

More information

Quick Start to Data Analysis with SAS Table of Contents. Chapter 1 Introduction 1. Chapter 2 SAS Programming Concepts 7

Quick Start to Data Analysis with SAS Table of Contents. Chapter 1 Introduction 1. Chapter 2 SAS Programming Concepts 7 Chapter 1 Introduction 1 SAS: The Complete Research Tool 1 Objectives 2 A Note About Syntax and Examples 2 Syntax 2 Examples 3 Organization 4 Chapter by Chapter 4 What This Book Is Not 5 Chapter 2 SAS

More information

Using PROC RANK and PROC UNIVARIATE to Rank or Decile Variables

Using PROC RANK and PROC UNIVARIATE to Rank or Decile Variables Using PROC RANK and PROC UNIVARIATE to Rank or Decile Variables Jonas V. Bilenas, JP Morgan Chase Bank, Wilmington, DE ABSTRACT In direct marketing applications prospects are often ranked by scores that

More information

SAS Programming Tips, Tricks, and Techniques

SAS Programming Tips, Tricks, and Techniques SAS Programming Tips, Tricks, and Techniques A presentation by Kirk Paul Lafler Copyright 2001-2012 by Kirk Paul Lafler, Software Intelligence Corporation All rights reserved. SAS is the registered trademark

More information

SAS Comments How Straightforward Are They? Jacksen Lou, Merck & Co.,, Blue Bell, PA 19422

SAS Comments How Straightforward Are They? Jacksen Lou, Merck & Co.,, Blue Bell, PA 19422 SAS Comments How Straightforward Are They? Jacksen Lou, Merck & Co.,, Blue Bell, PA 19422 ABSTRACT SAS comment statements typically use conventional symbols, *, %*, /* */. Most programmers regard SAS commenting

More information

AN INTRODUCTION TO THE SQL PROCEDURE Chris Yindra, C. Y. Associates

AN INTRODUCTION TO THE SQL PROCEDURE Chris Yindra, C. Y. Associates AN INTRODUCTION TO THE SQL PROCEDURE Chris Yindra, C Y Associates Abstract This tutorial will introduce the SQL (Structured Query Language) procedure through a series of simple examples We will initially

More information

New Tricks for an Old Tool: Using Custom Formats for Data Validation and Program Efficiency

New Tricks for an Old Tool: Using Custom Formats for Data Validation and Program Efficiency New Tricks for an Old Tool: Using Custom Formats for Data Validation and Program Efficiency S. David Riba, JADE Tech, Inc., Clearwater, FL ABSTRACT PROC FORMAT is one of the old standards among SAS Procedures,

More information

Using SAS With a SQL Server Database. M. Rita Thissen, Yan Chen Tang, Elizabeth Heath RTI International, RTP, NC

Using SAS With a SQL Server Database. M. Rita Thissen, Yan Chen Tang, Elizabeth Heath RTI International, RTP, NC Using SAS With a SQL Server Database M. Rita Thissen, Yan Chen Tang, Elizabeth Heath RTI International, RTP, NC ABSTRACT Many operations now store data in relational databases. You may want to use SAS

More information

Random effects and nested models with SAS

Random effects and nested models with SAS Random effects and nested models with SAS /************* classical2.sas ********************* Three levels of factor A, four levels of B Both fixed Both random A fixed, B random B nested within A ***************************************************/

More information

Using SAS to Control and Automate a Multi SAS Program Process. Patrick Halpin November 2008

Using SAS to Control and Automate a Multi SAS Program Process. Patrick Halpin November 2008 Using SAS to Control and Automate a Multi SAS Program Process Patrick Halpin November 2008 What are we covering today A little background on me Some quick questions How to use Done files Use a simple example

More information

Using Pharmacovigilance Reporting System to Generate Ad-hoc Reports

Using Pharmacovigilance Reporting System to Generate Ad-hoc Reports Using Pharmacovigilance Reporting System to Generate Ad-hoc Reports Jeff Cai, Amylin Pharmaceuticals, Inc., San Diego, CA Jay Zhou, Amylin Pharmaceuticals, Inc., San Diego, CA ABSTRACT To supplement Oracle

More information

Tales from the Help Desk 3: More Solutions for Simple SAS Mistakes Bruce Gilsen, Federal Reserve Board

Tales from the Help Desk 3: More Solutions for Simple SAS Mistakes Bruce Gilsen, Federal Reserve Board Tales from the Help Desk 3: More Solutions for Simple SAS Mistakes Bruce Gilsen, Federal Reserve Board INTRODUCTION In 20 years as a SAS consultant at the Federal Reserve Board, I have seen SAS users make

More information

Introduction to Market Basket Analysis Bill Qualls, First Analytics, Raleigh, NC

Introduction to Market Basket Analysis Bill Qualls, First Analytics, Raleigh, NC Paper AA07-2013 Introduction to Market Basket Analysis Bill Qualls, First Analytics, Raleigh, NC ABSTRACT Market Basket Analysis (MBA) is a data mining technique which is widely used in the consumer package

More information

That Mysterious Colon (:) Haiping Luo, Dept. of Veterans Affairs, Washington, DC

That Mysterious Colon (:) Haiping Luo, Dept. of Veterans Affairs, Washington, DC Paper 73-26 That Mysterious Colon (:) Haiping Luo, Dept. of Veterans Affairs, Washington, DC ABSTRACT The colon (:) plays certain roles in SAS coding. Its usage, however, is not well documented nor is

More information

Dongfeng Li. Autumn 2010

Dongfeng Li. Autumn 2010 Autumn 2010 Chapter Contents Some statistics background; ; Comparing means and proportions; variance. Students should master the basic concepts, descriptive statistics measures and graphs, basic hypothesis

More information

Debugging Complex Macros

Debugging Complex Macros Debugging Complex Macros Peter Stagg, Decision Informatics It s possible to write code generated by macros to an external file. The file can t be access until the SAS session has ended. Use the options

More information

Encoding the Password

Encoding the Password SESUG 2012 Paper CT-28 Encoding the Password A low maintenance way to secure your data access Leanne Tang, National Agriculture Statistics Services USDA, Washington DC ABSTRACT When users access data in

More information

Overview. NT Event Log. CHAPTER 8 Enhancements for SAS Users under Windows NT

Overview. NT Event Log. CHAPTER 8 Enhancements for SAS Users under Windows NT 177 CHAPTER 8 Enhancements for SAS Users under Windows NT Overview 177 NT Event Log 177 Sending Messages to the NT Event Log Using a User-Written Function 178 Examples of Using the User-Written Function

More information

One problem > Multiple solutions; various ways of removing duplicates from dataset using SAS Jaya Dhillon, Louisiana State University

One problem > Multiple solutions; various ways of removing duplicates from dataset using SAS Jaya Dhillon, Louisiana State University One problem > Multiple solutions; various ways of removing duplicates from dataset using SAS Jaya Dhillon, Louisiana State University ABSTRACT In real world, analysts seldom come across data which is in

More information

This can dilute the significance of a departure from the null hypothesis. We can focus the test on departures of a particular form.

This can dilute the significance of a departure from the null hypothesis. We can focus the test on departures of a particular form. One-Degree-of-Freedom Tests Test for group occasion interactions has (number of groups 1) number of occasions 1) degrees of freedom. This can dilute the significance of a departure from the null hypothesis.

More information

5. Crea+ng SAS Datasets from external files. GIORGIO RUSSOLILLO - Cours de prépara+on à la cer+fica+on SAS «Base Programming»

5. Crea+ng SAS Datasets from external files. GIORGIO RUSSOLILLO - Cours de prépara+on à la cer+fica+on SAS «Base Programming» 5. Crea+ng SAS Datasets from external files 107 Crea+ng a SAS dataset from a raw data file 108 LIBNAME statement In most of cases, you may want to assign a libref to a certain folder (a SAS library) LIBNAME

More information

Project 2: Bejeweled

Project 2: Bejeweled Project 2: Bejeweled Project Objective: Post: Tuesday March 26, 2013. Due: 11:59PM, Monday April 15, 2013 1. master the process of completing a programming project in UNIX. 2. get familiar with command

More information

Counting the Ways to Count in SAS. Imelda C. Go, South Carolina Department of Education, Columbia, SC

Counting the Ways to Count in SAS. Imelda C. Go, South Carolina Department of Education, Columbia, SC Paper CC 14 Counting the Ways to Count in SAS Imelda C. Go, South Carolina Department of Education, Columbia, SC ABSTRACT This paper first takes the reader through a progression of ways to count in SAS.

More information

Get in Control! Configuration Management for SAS Projects John Quarantillo, Westat, Rockville, MD

Get in Control! Configuration Management for SAS Projects John Quarantillo, Westat, Rockville, MD AD004 Get in Control! Configuration Management for SAS Projects John Quarantillo, Westat, Rockville, MD Abstract SAS applications development can benefit greatly from the use of Configuration Management/Source

More information

SAS PROGRAM EFFICIENCY FOR BEGINNERS. Bruce Gilsen, Federal Reserve Board

SAS PROGRAM EFFICIENCY FOR BEGINNERS. Bruce Gilsen, Federal Reserve Board SAS PROGRAM EFFICIENCY FOR BEGINNERS Bruce Gilsen, Federal Reserve Board INTRODUCTION This paper presents simple efficiency techniques that can benefit inexperienced SAS software users on all platforms.

More information

Beginning Tutorials. bt009 A TUTORIAL ON THE SAS MACRO LANGUAGE John J. Cohen AstraZeneca LP

Beginning Tutorials. bt009 A TUTORIAL ON THE SAS MACRO LANGUAGE John J. Cohen AstraZeneca LP bt009 A TUTORIAL ON THE SAS MACRO LANGUAGE John J. Cohen AstraZeneca LP Abstract The SAS Macro language is another language that rests on top of regular SAS code. If used properly, it can make programming

More information

Importing Excel File using Microsoft Access in SAS Ajay Gupta, PPD Inc, Morrisville, NC

Importing Excel File using Microsoft Access in SAS Ajay Gupta, PPD Inc, Morrisville, NC ABSTRACT PharmaSUG 2012 - Paper CC07 Importing Excel File using Microsoft Access in SAS Ajay Gupta, PPD Inc, Morrisville, NC In Pharmaceuticals/CRO industries, Excel files are widely use for data storage.

More information

Introduction to Proc SQL Steven First, Systems Seminar Consultants, Madison, WI

Introduction to Proc SQL Steven First, Systems Seminar Consultants, Madison, WI Paper #HW02 Introduction to Proc SQL Steven First, Systems Seminar Consultants, Madison, WI ABSTRACT PROC SQL is a powerful Base SAS Procedure that combines the functionality of DATA and PROC steps into

More information

Automation of Large SAS Processes with Email and Text Message Notification Seva Kumar, JPMorgan Chase, Seattle, WA

Automation of Large SAS Processes with Email and Text Message Notification Seva Kumar, JPMorgan Chase, Seattle, WA Automation of Large SAS Processes with Email and Text Message Notification Seva Kumar, JPMorgan Chase, Seattle, WA ABSTRACT SAS includes powerful features in the Linux SAS server environment. While creating

More information

The entire SAS code for the %CHK_MISSING macro is in the Appendix. The full macro specification is listed as follows: %chk_missing(indsn=, outdsn= );

The entire SAS code for the %CHK_MISSING macro is in the Appendix. The full macro specification is listed as follows: %chk_missing(indsn=, outdsn= ); Macro Tabulating Missing Values, Leveraging SAS PROC CONTENTS Adam Chow, Health Economics Resource Center (HERC) VA Palo Alto Health Care System Department of Veterans Affairs (Menlo Park, CA) Abstract

More information

Data-driven Validation Rules: Custom Data Validation Without Custom Programming Don Hopkins, Ursa Logic Corporation, Durham, NC

Data-driven Validation Rules: Custom Data Validation Without Custom Programming Don Hopkins, Ursa Logic Corporation, Durham, NC Data-driven Validation Rules: Custom Data Validation Without Custom Programming Don Hopkins, Ursa Logic Corporation, Durham, NC ABSTRACT One of the most expensive and time-consuming aspects of data management

More information

A Technique for Storing and Manipulating Incomplete Dates in a Single SAS Date Value

A Technique for Storing and Manipulating Incomplete Dates in a Single SAS Date Value A Technique for Storing and Manipulating Incomplete Dates in a Single SAS Date Value John Ingersoll Introduction: This paper presents a technique for storing incomplete date values in a single variable

More information

Arthur L. Carpenter, California Occidental Consultants

Arthur L. Carpenter, California Occidental Consultants Paper 4-25 Arthur L. Carpenter, California Occidental Consultants ABSTRACT Many macro functions are very analogous to those of the DATA step. The differences are in how they are used and applied. While

More information

Effective Use of SQL in SAS Programming

Effective Use of SQL in SAS Programming INTRODUCTION Effective Use of SQL in SAS Programming Yi Zhao Merck & Co. Inc., Upper Gwynedd, Pennsylvania Structured Query Language (SQL) is a data manipulation tool of which many SAS programmers are

More information

Post Processing Macro in Clinical Data Reporting Niraj J. Pandya

Post Processing Macro in Clinical Data Reporting Niraj J. Pandya Post Processing Macro in Clinical Data Reporting Niraj J. Pandya ABSTRACT Post Processing is the last step of generating listings and analysis reports of clinical data reporting in pharmaceutical industry

More information

SAS UNIX-Space Analyzer A handy tool for UNIX SAS Administrators Airaha Chelvakkanthan Manickam, Cognizant Technology Solutions, Teaneck, NJ

SAS UNIX-Space Analyzer A handy tool for UNIX SAS Administrators Airaha Chelvakkanthan Manickam, Cognizant Technology Solutions, Teaneck, NJ PharmaSUG 2012 Paper PO11 SAS UNIX-Space Analyzer A handy tool for UNIX SAS Administrators Airaha Chelvakkanthan Manickam, Cognizant Technology Solutions, Teaneck, NJ ABSTRACT: In the fast growing area

More information

ABSTRACT INTRODUCTION %CODE MACRO DEFINITION

ABSTRACT INTRODUCTION %CODE MACRO DEFINITION Generating Web Application Code for Existing HTML Forms Don Boudreaux, PhD, SAS Institute Inc., Austin, TX Keith Cranford, Office of the Attorney General, Austin, TX ABSTRACT SAS Web Applications typically

More information

Combining SAS LIBNAME and VBA Macro to Import Excel file in an Intriguing, Efficient way Ajay Gupta, PPD Inc, Morrisville, NC

Combining SAS LIBNAME and VBA Macro to Import Excel file in an Intriguing, Efficient way Ajay Gupta, PPD Inc, Morrisville, NC ABSTRACT PharmaSUG 2013 - Paper CC11 Combining SAS LIBNAME and VBA Macro to Import Excel file in an Intriguing, Efficient way Ajay Gupta, PPD Inc, Morrisville, NC There are different methods such PROC

More information

This can be useful to temporarily deactivate programming segments without actually deleting the statements.

This can be useful to temporarily deactivate programming segments without actually deleting the statements. EXST 700X SAS Programming Tips Page 1 SAS Statements: All SAS statements end with a semicolon, ";". A statement may occur on one line, or run across several lines. Several statements can also be placed

More information

Statistics and Analysis. Quality Control: How to Analyze and Verify Financial Data

Statistics and Analysis. Quality Control: How to Analyze and Verify Financial Data Abstract Quality Control: How to Analyze and Verify Financial Data Michelle Duan, Wharton Research Data Services, Philadelphia, PA As SAS programmers dealing with massive financial data from a variety

More information

Survey, Statistics and Psychometrics Core Research Facility University of Nebraska-Lincoln. Log-Rank Test for More Than Two Groups

Survey, Statistics and Psychometrics Core Research Facility University of Nebraska-Lincoln. Log-Rank Test for More Than Two Groups Survey, Statistics and Psychometrics Core Research Facility University of Nebraska-Lincoln Log-Rank Test for More Than Two Groups Prepared by Harlan Sayles (SRAM) Revised by Julia Soulakova (Statistics)

More information

Introduction to SAS Informats and Formats

Introduction to SAS Informats and Formats CHAPTER 1 Introduction to SAS Informats and Formats 1.1 Chapter Overview... 2 1.2 Using SAS Informats... 2 1.2.1 INPUT Statement... 3 1.2.2 INPUT Function... 7 1.2.3 INPUTN and INPUTC Functions... 8 1.2.4

More information

PharmaSUG2011 - Paper AD11

PharmaSUG2011 - Paper AD11 PharmaSUG2011 - Paper AD11 Let the system do the work! Automate your SAS code execution on UNIX and Windows platforms Niraj J. Pandya, Element Technologies Inc., NJ Vinodh Paida, Impressive Systems Inc.,

More information

Applying Customer Attitudinal Segmentation to Improve Marketing Campaigns Wenhong Wang, Deluxe Corporation Mark Antiel, Deluxe Corporation

Applying Customer Attitudinal Segmentation to Improve Marketing Campaigns Wenhong Wang, Deluxe Corporation Mark Antiel, Deluxe Corporation Applying Customer Attitudinal Segmentation to Improve Marketing Campaigns Wenhong Wang, Deluxe Corporation Mark Antiel, Deluxe Corporation ABSTRACT Customer segmentation is fundamental for successful marketing

More information

Building a Marketing Dashboard using Excel and SAS. Tim Walters InfoTech Marketing

Building a Marketing Dashboard using Excel and SAS. Tim Walters InfoTech Marketing Building a Marketing Dashboard using Excel and SAS Tim Walters InfoTech Marketing 1 Desired Outcome Dashboard Sheet and 6 Results Sheets 2 Client Environmental Considerations Client company has software

More information

Paper PO-008. exceeds 5, where and (Stokes, Davis and Koch, 2000).

Paper PO-008. exceeds 5, where and (Stokes, Davis and Koch, 2000). Paper PO-008 A Macro for Computing the Mantel-Fleisś Criterion Brandon Welch MS, Rho, Inc., Chapel Hill, NC Jane Eslinger BS, Rho, Inc., Chapel Hill, NC Rob Woolson MS, Rho, Inc., Chapel Hill, NC ABSTRACT

More information

Katie Minten Ronk, Steve First, David Beam Systems Seminar Consultants, Inc., Madison, WI

Katie Minten Ronk, Steve First, David Beam Systems Seminar Consultants, Inc., Madison, WI Paper 191-27 AN INTRODUCTION TO PROC SQL Katie Minten Ronk, Steve First, David Beam Systems Seminar Consultants, Inc., Madison, WI ABSTRACT PROC SQL is a powerful Base SAS 7 Procedure that combines the

More information

CDW DATA QUALITY INITIATIVE

CDW DATA QUALITY INITIATIVE Loading Metadata to the IRS Compliance Data Warehouse (CDW) Website: From Spreadsheet to Database Using SAS Macros and PROC SQL Robin Rappaport, IRS Office of Research, Washington, DC Jeff Butler, IRS

More information