LISTSERV at the University of Georgia
Menubar Imagemap
Home Browse Manage Request Manuals Register
Previous messageNext messagePrevious in topicNext in topicPrevious by same authorNext by same authorPrevious page (June 2002, week 3)Back to main SAS-L pageJoin or leave SAS-L (or change settings)ReplyPost a new messageSearchProportional fontNon-proportional font
Date:         Thu, 20 Jun 2002 11:41:21 -0400
Reply-To:     "Fehd, Ronald J." <rjf2@CDC.GOV>
Sender:       "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From:         "Fehd, Ronald J." <rjf2@CDC.GOV>
Subject:      Re: Some Basics About Macro Variables
Content-Type: text/plain; charset="iso-8859-1"

> From: Ian Whitlock [mailto:WHITLOI1@WESTAT.COM] > Subject: Some Basics About Macro Variables > Summary: Still another beginning macro tutorial > First of all let's get clear what the macro facility does. It > processes macro instructions plus constant text to make SAS code which > is then fed continuously to the SAS compiler and executed on step > boundaries or at the end of global statements. This means that 4 > important times are intertwined: > > 1) macro compile time (when macro is stored) > 2) macro execution time (when execution of macro instructions > generates SAS code) > 3) SAS compile time (when generated SAS code is compiled) > 4) SAS execution time (when compiled SAS code is executed) > > Hence the macro language is a programming language for generating SAS > programs. It is completely distinct from SAS.

I think that the main problem people have in both reading and then writing the two programming languages together in the same document/program is a result of not understanding this four step sequence.

What everyone needs are macro/SAS bifocals! First read the macro code in the high lens, the fore-sight focus, then read the SAS code in the low lens, the near-sighted focus! LOL :-D We could eliminate a lot of squinting!

I recommend differentiating macro statements from SAS statements: * ALL CAPS for macro statements * lower case for SAS keywords * MixedCase for VarNames

see my papers:

SUGI 25: 2000 Indianapolis IN App Dev 38 Writing for Reading SAS Style Sheet The Writing for Reading SAS ® Style Sheet: Tricks, Traps & Tips from SAS-L's Macro Maven http://www2.sas.com/proceedings/sugi25/25/ad/25p038.pdf

SUGI 26: 2001 Long Beach CA Beg Tutor 66 Macro Tour A Beginner's Tour of a Project using SAS® Macros Led by SAS-L's Macro Maven http://www2.sas.com/proceedings/sugi26/p066-26.pdf note: new&improved version, with discussion of Templates to be presented at NESUG this fall.

best example of the Writing for Reading SAS Style Sheet:

NESUG 2001 Adv Tutor pg 53 %INVALID: a data review macro using proc FORMAT option other=INVALID to identify and list outliers http://www.pace.edu/nesug/proceedings/nesug01/at/At1008.pdf

Ron Fehd the macro maven CDC Atlanta GA USA RJF2@cdc.gov


Back to: Top of message | Previous page | Main SAS-L page