f



Re: &&&&&& #2

Alan,

I disagree with that statement.  I think the best solution would be to build
the dang thing the way he want with less macros.  By sending your code out
then back in is in MO to much hassel for too little.

the whole thingy could be done like this:

data one ;
flower = 'Daisy' ;
color  = 'Yellow' ;
run ;

data two ;
set one ;
call symput ( compress('text'||_n_),compbl(flower||'='||color) ) ;
call symput ( 'index' , compress(_n_) ) ;
run ;

%put &&text&index ;





Toby Dunn




From: Alan Churchill <SASL001@SAVIAN.NET>
Reply-To: Alan Churchill <SASL001@SAVIAN.NET>
To: SAS-L@LISTSERV.UGA.EDU
Subject: Re: &&&&&&
Date: Thu, 9 Jun 2005 12:20:06 -0600
MIME-Version: 1.0
Received: from malibu.cc.uga.edu ([128.192.1.103]) by mc5-f10.hotmail.com
with Microsoft SMTPSVC(6.0.3790.211); Thu, 9 Jun 2005 11:20:12 -0700
Received: from listserv.cc.uga.edu (128.192.1.75) by malibu.cc.uga.edu
(LSMTP for Windows NT v1.1b) with SMTP id <1.00FB1FC3@malibu.cc.uga.edu>;
Thu, 9 Jun 2005 14:20:10 -0400
Received: from LISTSERV.UGA.EDU by LISTSERV.UGA.EDU (LISTSERV-TCP/IP release
          1.8d) with spool id 2860742 for SAS-L@LISTSERV.UGA.EDU; Thu, 9 Jun
          2005 14:20:10 -0400
Received: from IPOfCard1.guest-tek.com ([66.193.160.162]) by
listserv.cc.uga.edu (8.12.11/8.12.11) with ESMTP id j59IK93S001763
for <SAS-L@LISTSERV.UGA.EDU>; Thu, 9 Jun 2005 14:20:10 -0400
Received: from alantoshiba (localhost.localdomain [127.0.0.1]) by
IPOfCard1.guest-tek.com (8.11.6/8.11.6) with ESMTP id j59IK7W10621;
Thu, 9 Jun 2005 14:20:07 -0400
X-Message-Info: GQXpnklFM/eJUpGQZYbtwDAabDb5cU8er7WLqhcT3GY=
X-Mailer: Microsoft Office Outlook, Build 11.0.6353
Thread-Index: AcVtGhbbLFhlhlw4Ro+yj1aaUUwWagABUY9A
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2527
Comments: To: Talbot Michael Katz <topkatz@MSN.COM>
Return-Path: owner-sas-l@LISTSERV.UGA.EDU
X-OriginalArrivalTime: 09 Jun 2005 18:20:12.0209 (UTC)
FILETIME=[E0287A10:01C56D1F]

This is a prime example I use when I discuss what is wrong with the macro
language. Yes, you can figure it out but an alternative would be to simply
write your data step code out and then bring it back in so you know what is
being submitted.

data _null_ ;
    file 'c:\myfile.sas' ;
    put 'data ...;' ;
    ...more put statements...
run;

%include 'c:\myfile.sas' ;

Others will argue for SCL or something else. Regardless, this application
probably requires a complete rethink if you are using 6 ampersands.

Thanks,
Alan

Savian
"Bridging SAS and Microsoft Technologies"

-----Original Message-----
From: SAS(r) Discussion [mailto:SAS-L@LISTSERV.UGA.EDU] On Behalf Of Talbot
Michael Katz
Sent: Thursday, June 09, 2005 11:39 AM
To: SAS-L@LISTSERV.UGA.EDU
Subject: &&&&&&

Hi.

It requires SIX ampersands to resolve the macro variable example below:

data _null_ ;
  set DS1 end = last ;
  call symput("mlv" || compress(put(_N_,best32.)), mli)
  ;
  call symput(mli, tdt) ;
  if last then do ;
   call symput("mlin", compress(put(_N_,best32.))) ;
  end ;
run ;
%put &&mlv&mlin.  = &&&&&&mlv&mlin. ;

(So, if there are five observations in the data set, and the fifth value of
mli is "DAISY" and the fifth value of tdt is "YELLOW" this will print
out "DAISY = YELLOW")

Why does it take so many ampersands to resolve?  Can someone please explain
this resolution to me so that it gets through my extremely dense skull?

Thanks!


--  TMK  --
"The Macro Klutz"
0
tobydunn (6018)
6/9/2005 6:27:01 PM
comp.soft-sys.sas 142828 articles. 1 followers. Post Follow

0 Replies
971 Views

Similar Articles

[PageSpeed] 52

Reply: