Date: Fri, 6 Jun 2003 11:38:31 -0400
Reply-To: NYASUG@pace.edu
Sender: "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From: NYASUG <NYASUG@PACE.EDU>
Content-Type: text/plain; charset=us-ascii
NYASUG Meeting Announcement -- Have a nice weekend !
For members of SAS-L in the Tri-State area who are also
members of the New York Area SAS Users Group (NYASUG):
The next meeting of the New York Area SAS Users Group
will be on Wednesday, June 11, 2003. This will be a
half day meeting with 3 scheduled presentations, and
a programming problem from Bob Virgile. The theme of
this meeting is macro processing and Data Step merges.
SAS "jedi-masters" Ian Whitlock and Bob Virgile will
also be holding a code clinic. If you have a tough
programming problem, and need help, get it from these
experts. Make sure to bring your code (on disk if
possible), sample data and SASLOGS.
This meeting is being held at the Bank of New York, and
we thank them for hosting the meeting ! Directions to
the BONY site are at the end of this text.
The following are abstracts of the scheduled
presentations:
-------------------------------------------------------
SAS Macro Design Issues
By Ian Whitlock
Two questions motivated this paper. The first came
more than twenty years ago at the end of my first
programming course when the professor asked, "You now
know how to write programs, but do you know when it is
appropriate to write a program?" For SAS macro the
question might be rephrased. What kind of SAS problem
is appropriate to macro? Or when should the solution
involve macro code? The second came from SAS-L in
September 2001, "What sources discuss how to develop
clear and good macro code?" There have been many
Beginning Tutorials on macro, and many of the examples
in them may illustrate some of the principles that
these questions hint at, but I do not know of any
source that concentrates on the principles.
To sum up, I will consider: 1) What makes a macro good?
and 2) How do you make a maintainable, useful, clear
system of macros? Do you need to know how to write %IF
and %DO statements to understand this talk? No, all
terms will be introduced, however, knowing something
about these statements will increase your appreciation
of the subject.
A Serious Look at Macro Quoting
By Ian Whitlock
So you can make decisions in macro with %IF and do
looping with %DO- loops. But there are times when you
don't understand why the beast does what it does. Now
what? It is time to come to this presentation.
It is time to take a serious look at macro quoting. I
have often said that anyone who thinks macro quoting is
simple, probably doesn't understand the problem; so I
have been there. Now I want to explain how simple it
is.
Everything relevant to this paper is in SAS/BASE.
Although the examples have been executed on a PC under
Windows, the examples are independent of any particular
operating system with the exception of file
definitions.
Biography
Ian Whitlock is a Senior Programmer/Analyst for Westat,
a survey research company, where he supports the
statistical analysis of survey data and teaches SAS
programming. He has been programming in SAS since
1981. He is an active participant on SAS-L, and in
national, regional, and local "Sugi" meetings.
-------------------------------------------------------
Danger: MERGE Ahead!
Warning: BY Variable with Multiple Lengths!
By Bob Virgile
Normally, when a data step merges two data sets, any
common variables will have the same length in both
sources of data. When a variable has different lengths
in the incoming data sets, and when that variable is
also a by variable, the merge can produce truly bizarre
results. For example, change the order of the data
sets in the merge statement and the data step generates
a different number of observations. Or merge two data
sets that are in sorted order and the data step issues
an error message claiming that the data sets are not in
sorted order. This paper examines the situation, some
of its manifestations, and solutions to the problem.
===========================================
Extra 'Problem' to Solve
Naturally, the put statement in data step
below wrote a message to the log. How could
that have happened?
data combined;
merge males females;
by lastname;
where lastname > ' ';
if lastname=' ' then put
"I better read Bob's paper!";
run;
===========================================
Biography
Bob Virgile is an independent SAS trainer and
consultant, with 20 years of experience designing and
teaching SAS courses. He has presented papers at many
SUGI and regional conferences, formerly wrote the
problem-solving contests for SUGI and NESUG, and has
written two books for SAS Institute.
-------------------------------------------------------
Schedule
09:00-10:00 SAS Macro Design Issues
Ian Whitlock
10:00-10:30 Dr. Bob and Dr. Ian's Code Clinic
and Break combined
10:30-11:30 Danger: MERGE Ahead!
Warning: BY Variable with Multiple Lengths!
Bob Virgile
11:30-11:45 Extra "Problem" to Solve
Bob Virgile
11:45-12:45 Serious Look at Macro Quoting
Ian Whitlock
-------------------------------------------------------
Directions
Please Note return to Old Location!!!
Check the Website for any last minute changes. Bring
your copy of the Newsletter for identification. In
addition, you will be asked for a photo id or to turn
on or check your laptop. Please be courteous and
understanding with security personnel. Thanks.
Bank of New York
10th Floor Auditorium
101 Barclay Street
New York, NY 10286
The Bank of New York is located one Block North of the
former World Trade Center between Greenwich and West
Streets, Barclay and Park Place. The Main Entrance is
on Greenwich. Park Place is closed. A lot has changed
downtown since 2001, so it might be a good idea to
allow extra time. We will post last minute changes and
additions on our web site.
By Subway
Take IND (A,C,E) to Chambers Street stop, exit at Park
Place walk 2 blocks west to Greenwich. West side IRT
(1 or 9) to Chambers Street, Walk 1 block west to
Greenwich and 3 blocks south to Park Place, IRT (2 or
3) to Park Place walk 2 blocks west to Greenwich.
Eastside IRT (4 or 5) to Broadway Nassau walk north to
Park Place and west to Greenwich. BMT(N, R) to City
Hall, walk 1 block south to Park Place and 3 blocks
west to Greenwich.
By Bus
M9, M10 or M22 to Battery Park City
By Car
Take West Street (West Side Highway) and turn onto
Murray Street. There is limited parking in the area.
From New Jersey
By train to Hoboken and then the New York Waterway
ferry from Hoboken to the downtown terminal. Other
ferries go from Port Imperial to the 38th Street
Terminal or the NY Waterway bus downtown express.
By Bus from NJ to Port Authority and then go downtown
on the IND trains.
-------------------------------------------------------
For further information about this meeting, or the New
York Area SAS Users Group, please contact:
Henny Wolland
Henrietta.Wolland@Pfizer.Com
_______________________________________________________________________
Sent via Pace University's WebMail system at fsmail.pace.edu