Nikki's approach is to use PROC SQL with a where statement. proc sql; create table sql_readin as. quit;run;
|
|
- Shannon Hunter
- 5 years ago
- Views:
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 Introduction The objective of this paper is to demonstrate how to use a fillable PDF to collect
More information50 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 informationSAS 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 informationINTRODUCTION TO SAS HOW SAS WORKS READING RAW DATA INTO SAS
TO SAS NEED FOR SAS WHO USES SAS WHAT IS SAS? OVERVIEW OF BASE SAS SOFTWARE DATA MANAGEMENT FACILITY STRUCTURE OF SAS DATASET SAS PROGRAM PROGRAMMING LANGUAGE ELEMENTS OF THE SAS LANGUAGE RULES FOR SAS
More informationPROC 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 informationPROC 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 informationInstructor: 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 informationUsing 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 informationUse That SAP to Write Your Code Sandra Minjoe, Genentech, Inc., South San Francisco, CA
Paper DM09 Use That SAP to Write Your Code Sandra Minjoe, Genentech, Inc., South San Francisco, CA ABSTRACT In this electronic age we live in, we usually receive the detailed specifications from our biostatistician
More informationStatistics, 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 informationLab 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 informationPlanting 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 informationcapabilities 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 informationChoosing 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 informationHash Objects for Everyone
SESUG 2015 Paper BB-83 Hash Objects for Everyone Jack Hall, OptumInsight ABSTRACT The introduction of Hash Objects into the SAS toolbag gives programmers a powerful way to improve performance, especially
More informationA 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 information1. 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 informationPaper ###-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 informationDETECTING 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 informationBCSWomen 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 informationWhat'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 informationChecking 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 informationINTRODUCTION 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 informationDon 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 informationSUGI 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 informationA 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 informationGetting 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 informationUSING 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 informationFormat-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 informationCleaning 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 informationCustomized Flowcharts Using SAS Annotation Abhinav Srivastva, PaxVax Inc., Redwood City, CA
ABSTRACT Customized Flowcharts Using SAS Annotation Abhinav Srivastva, PaxVax Inc., Redwood City, CA Data visualization is becoming a trend in all sectors where critical business decisions or assessments
More informationABSTRACT INTRODUCTION MACRO. Paper RF
Paper RF-08-2014 Burst Reporting With the Help of PROC SQL Dan Sturgeon, Priority Health, Grand Rapids, Michigan Erica Goodrich, Priority Health, Grand Rapids, Michigan ABSTRACT Many SAS programmers need
More informationPlease 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 informationSAS Online Training: Course contents: Agenda:
SAS Online Training: Course contents: Agenda: (1) Base SAS (6) Clinical SAS Online Training with Real time Projects (2) Advance SAS (7) Financial SAS Training Real time Projects (3) SQL (8) CV preparation
More informationExporting Variable Labels as Column Headers in Excel using SAS Chaitanya Chowdagam, MaxisIT Inc., Metuchen, NJ
Paper 74924-2011 Exporting Variable Labels as Column Headers in Excel using SAS Chaitanya Chowdagam, MaxisIT Inc., Metuchen, NJ ABSTRACT Excel output is the desired format for most of the ad-hoc reports
More informationTaming a Spreadsheet Importation Monster
SESUG 2013 Paper BtB-10 Taming a Spreadsheet Importation Monster Nat Wooding, J. Sargeant Reynolds Community College ABSTRACT As many programmers have learned to their chagrin, it can be easy to read Excel
More informationQuicker 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 information9 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 informationExcel 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 informationPROC 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 informationWelcome 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 informationBASICS 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 informationSAS 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 informationTable 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 informationFrom Manual to Automatic with Overdrive - Using SAS to Automate Report Generation Faron Kincheloe, Baylor University, Waco, TX
Paper 152-27 From Manual to Automatic with Overdrive - Using SAS to Automate Report Generation Faron Kincheloe, Baylor University, Waco, TX ABSTRACT This paper is a case study of how SAS products were
More informationThe 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 informationProc 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 informationPROFESSOR: 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 informationHKTA 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 informationMerging 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 informationThis 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 informationPaper 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 informationProgramming Gems that are worth learning SQL for! Pamela L. Reading, Rho, Inc., Chapel Hill, NC
Paper CC-05 Programming Gems that are worth learning SQL for! Pamela L. Reading, Rho, Inc., Chapel Hill, NC ABSTRACT For many SAS users, learning SQL syntax appears to be a significant effort with a low
More informationAre you Still Afraid of Using Arrays? Let s Explore their Advantages
Paper CT07 Are you Still Afraid of Using Arrays? Let s Explore their Advantages Vladyslav Khudov, Experis Clinical, Kharkiv, Ukraine ABSTRACT At first glance, arrays in SAS seem to be a complicated and
More informationCreating 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 informationVUEWorks 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 informationIf You Need These OBS and These VARS, Then Drop IF, and Keep WHERE Jay Iyengar, Data Systems Consultants LLC
Paper 2417-2018 If You Need These OBS and These VARS, Then Drop IF, and Keep WHERE Jay Iyengar, Data Systems Consultants LLC ABSTRACT Reading data effectively in the DATA step requires knowing the implications
More informationDeep 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 informationUAccess 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 informationRuby 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 informationJoin, 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 informationA 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 informationCC13 An Automatic Process to Compare Files. Simon Lin, Merck & Co., Inc., Rahway, NJ Huei-Ling Chen, Merck & Co., Inc., Rahway, NJ
CC13 An Automatic Process to Compare Files Simon Lin, Merck & Co., Inc., Rahway, NJ Huei-Ling Chen, Merck & Co., Inc., Rahway, NJ ABSTRACT Comparing different versions of output files is often performed
More informationHypothesis 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 informationBI-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 informationAutomate 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 informationAre 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 information1 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 informationThe 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 informationData 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 informationMacros 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 informationOne 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 informationAn Efficient Tool for Clinical Data Check
PharmaSUG 2018 - Paper AD-16 An Efficient Tool for Clinical Data Check Chao Su, Merck & Co., Inc., Rahway, NJ Shunbing Zhao, Merck & Co., Inc., Rahway, NJ Cynthia He, Merck & Co., Inc., Rahway, NJ ABSTRACT
More informationParallel 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 informationACT! 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 informationA SAS Macro for Producing Benchmarks for Interpreting School Effect Sizes
A SAS Macro for Producing Benchmarks for Interpreting School Effect Sizes Brian E. Lawton Curriculum Research & Development Group University of Hawaii at Manoa Honolulu, HI December 2012 Copyright 2012
More informationABSTRACT INTRODUCTION TRICK 1: CHOOSE THE BEST METHOD TO CREATE MACRO VARIABLES
An Efficient Method to Create a Large and Comprehensive Codebook Wen Song, ICF International, Calverton, MD Kamya Khanna, ICF International, Calverton, MD Baibai Chen, ICF International, Calverton, MD
More informationCorrecting for natural time lag bias in non-participants in pre-post intervention evaluation studies
Correcting for natural time lag bias in non-participants in pre-post intervention evaluation studies Gandhi R Bhattarai PhD, OptumInsight, Rocky Hill, CT ABSTRACT Measuring the change in outcomes between
More informationGetting 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 informationProfessional 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 informationA 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 informationBasic 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 informationQuick 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 informationIndenting with Style
ABSTRACT Indenting with Style Bill Coar, Axio Research, Seattle, WA Within the pharmaceutical industry, many SAS programmers rely heavily on Proc Report. While it is used extensively for summary tables
More informationPharmaSUG Paper AD06
PharmaSUG 2012 - Paper AD06 A SAS Tool to Allocate and Randomize Samples to Illumina Microarray Chips Huanying Qin, Baylor Institute of Immunology Research, Dallas, TX Greg Stanek, STEEEP Analytics, Baylor
More informationThe 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 informationIntroduction 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 informationWhy 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 informationMetadata 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 informationUsing PROC SQL to Generate Shift Tables More Efficiently
ABSTRACT SESUG Paper 218-2018 Using PROC SQL to Generate Shift Tables More Efficiently Jenna Cody, IQVIA Shift tables display the change in the frequency of subjects across specified categories from baseline
More information2997 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 informationHave 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 informationUSPS 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 informationPH006 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 informationSAS 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 informationInterface. 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 informationUSING DATA TO SET MACRO PARAMETERS
USING DATA TO SET MACRO PARAMETERS UPDATE A PREVIOUS EXAMPLE %macro report(regs=); %let r=1; %let region=%scan(®s,&r); %do %until(®ion eq ); options nodate pageno=1; ods pdf file="®ion..pdf";
More informationOpen 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 informationThe 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 informationHow 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