f



Re: &&&&&&

Talbot,

Its basic macro aper math.  With each pass of the macro processor it reduces
&& to &.

in yoru case: %put &&mlv&mlin.  = &&&&&&mlv&mlin. ;

1st pass:

&mlv5 = &&&mlv5

2nd Pass:

Daisy = &Daisy

3rd Pass :

Daisy = Yellow






Toby Dunn




From: Talbot Michael Katz <topkatz@MSN.COM>
Reply-To: Talbot Michael Katz <topkatz@MSN.COM>
To: SAS-L@LISTSERV.UGA.EDU
Subject: &&&&&&
Date: Thu, 9 Jun 2005 13:38:44 -0400
Received: from malibu.cc.uga.edu ([128.192.1.103]) by MC8-F21.hotmail.com
with Microsoft SMTPSVC(6.0.3790.211); Thu, 9 Jun 2005 10:38:49 -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.00FB1DF4@malibu.cc.uga.edu>;
Thu, 9 Jun 2005 13:38:45 -0400
Received: from LISTSERV.UGA.EDU by LISTSERV.UGA.EDU (LISTSERV-TCP/IP release
          1.8d) with spool id 2857001 for SAS-L@LISTSERV.UGA.EDU; Thu, 9 Jun
          2005 13:38:45 -0400
Received: from malibu.cc.uga.edu (malibu.cc.uga.edu [128.192.1.103]) by
     listserv.cc.uga.edu (8.12.11/8.12.11) with ESMTP id j59HcjEo028135
     for <SAS-L@LISTSERV.UGA.EDU>; Thu, 9 Jun 2005 13:38:45 -0400
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.00FB1DF2@malibu.cc.uga.edu>;          Thu, 9 Jun 2005 13:38:44 -0400
X-Message-Info: GQXpnklFM/fA1eeXd/R7DaPlucKbdkgkWc6H4E6avJE=
Return-Path: owner-sas-l@LISTSERV.UGA.EDU
X-OriginalArrivalTime: 09 Jun 2005 17:38:50.0805 (UTC)
FILETIME=[19204650:01C56D1A]

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 (6020)
6/9/2005 5:57:27 PM
comp.soft-sys.sas 142828 articles. 3 followers. Post Follow

0 Replies
1829 Views

Similar Articles

[PageSpeed] 6

Reply:

Similar Artilces:

Re: &&&&&& #3
toby dunn <tobydunn@hotmail.com> replied: > 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' , compre...

Re: &&&&&& #10
Thank you, Toby et al for your answers, opinions, advice, criticism, etc. I almost think I'm beginning to get it. Let me regurgitate this to be sure: Given &&&&&&mlv&mlin., I resolve &mlin. = 5 and reduce the &&&&&& to &&& to get &&&mlv5. Then I resolve &mlv5. = DAISY and reduce the && to & to get &DAISY. Finally I resolve &DAISY. = YELLOW. So, it looks to me like once I reach a stage where I have a string of ampersands followed by a "pure" name (i.e., one with no ampersa...

Re: &&&&&& #4
> From: Talbot Michael Katz > 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 fi...

Re: &&&&&& #8
On Thu, 9 Jun 2005 13:38:44 -0400, Talbot Michael Katz <topkatz@MSN.COM> wrote: >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 va...

Re: &&&&&& #12
Talbot, From another message you already seem satisfied with the information given about your problem, but I will add my penny thoughts for they give a different point of view. The basic question might be interpreted as, "Why does it take so many ampersands to express 'daisy=yellow'?" The implied question might be what is wrong with my structure and how should it be fixed? I am interested in both. A macro variable can be thought of as a name pointing at a value. So a name can point at a name that can point at a value, etc. Let's look at the problem by analogy. Suppo...

Re: &&&&&& #13
Bold=Ian Whitlock Faint Italics=Joe Whitehurst A macro variable can be thought of as a name pointing at a value. A named scl list item can be thought of as a name pointing at a value. So a name can point at a name that can point at a value, etc. So a named scl list item can be thought of as a named scl list item that can point at a named scl list item that can point at a named scl list item that can point at a value which can continue to whatever level of abstraction you wish without ever using any concatenated ampersands. Let's look at the problem by analogy. Suppose you go to a pa...

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: A...

Re: &&&&&& #9
"I have found that while in certain situations this may be the only way to accomplish something easily, it is over used and causes way more headaches than it is worth" My feeling on macros... Thanks, Alan Savian "Bridging SAS and Microsoft Technologies" -----Original Message----- From: SAS(r) Discussion [mailto:SAS-L@LISTSERV.UGA.EDU] On Behalf Of toby dunn Sent: Thursday, June 09, 2005 12:56 PM To: SAS-L@LISTSERV.UGA.EDU Subject: Re: &&&&&& Alan, I seem to have started a hail storm here and I probably should have stated earlier that I don'...

Re: &&&&&& #6
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...

Re: &&&&&& #11
Michael, Where were you when I needed you? Just how long have you kept that naughty question bottled up where it cannot see the light of day? How many others harbor that naughty question? Well, all of you got some answers today. Some technically perfect regurgitations of the SAS documentation without a care about consequences which those who don't like to read for themselves will find somewhat useful. Some sagely suggesting that some newer SAS Constructs might be worth investigating, and, indeed, there may be something worth examining about your approach to solving problems when you t...

Re: &&&&&& #5
Toby, Fair to disagree but the approach I suggested works extremely well, is easy to debug, and has proven itself time after time. As the famous macro or not debate showed a few months back, there are lots of ways to handle code gen...macro is merely 1 way. The limit here is one of comfort: where does an individual programmer feel comfortable technology and approach-wise. If macro is it, then that is what you will tend to drift toward. If it is SCL, as Joe states, then it will be SCL. Personally, I use macros (to a point), %includes, c#, CodeSmith, and a host of other methods to gen code dep...

Re: &&&&&& #7
Alan, I seem to have started a hail storm here and I probably should have stated earlier that I don't disagree with SCL or a rework of the code, but rather building and then sending the code out to a temp file and then %including it back in I like not. I have found that while in certain situations this may be the only way to accomplish something easily, it is over used and causes way more headaches than it is worth. As for the rest of your post I am right behind you. Toby Dunn From: Alan Churchill <SASL001@SAVIAN.NET> Reply-To: Alan Churchill <SASL001@SAVIAN.NET> To: ...

& and &amp;
How can one stop a browser from converting &amp; to & ? We have a textarea in our system wehre a user can type in some html code and have it saved to the database. When the data is retireved and redisplayed it is displayed as simply &. HTML snippet: <TEXTAREA NAME="p_html" ROWS=6 COLS=70 ALIGN="VIRTUAL" WRAP="YES"> fred & &amp; </TEXTAREA> When displayed, the user predictably sees fred & & What workarounds are there for this - I am sure it's a problem for others - is there a way...

&& and &
What exactly is the difference between && and & (|| and |)? When does it generates different results? Is the & wrong now from R14 on? Best regards Prom Prom wrote: > What exactly is the difference between && and & (|| and |)? When does > it generates different results? Is the & wrong now from R14 on? > > Best regards > Prom 'help &' shows: Logical operators. Short-circuit logical AND && Short-circuit logical OR || and - Element-wise logical AND &...

Web resources about - Re: &&&&&& - comp.soft-sys.sas

Resources last updated: 2/3/2016 9:58:10 AM