Date: Tue, 21 May 2002 12:45:37 +0200
Reply-To: Andre Wielki <wielki@INED.FR>
Sender: "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From: Andre Wielki <wielki@INED.FR>
Subject: Re: SMALL macro question
In-Reply-To: <3CEA1D06.1E4BA54C@fac.fbk.eur.nl>
Content-Type: text/plain; charset="us-ascii"; format=flowed
Jan
Find here a solution
options mprint;
%MACRO TEST(varnam);
%LET sumind = _&varnam._ ;
DATA dum; &sumind=0; OUTPUT; RUN;
PROC PRINT DATA=dum; RUN;
%MEND;
%TEST(IT);
;
HTH
Andre
At 12:10 21/05/2002 +0200, J. van Dalen wrote:
>ls,
>
>I am sorry to disturb you all with the following macro question. I would
>appreciate however, if someone could help me out with this one.
>
>Part of the macro is to create a variable that has a name (to be
>determined in the macro heading) enclosed in underscores. For example,
>one might be interested in having a variable: _IT_ (which should be the
>result of the macro shown below, with IT as input). However, when I run
>the macro below, I do have the desired variable name stored in the macro
>variable &sumind, but the subsequent use of this macro variable gives
>rise to errors as illustrated by the subsequent note. [Alternatively,
>when I change the %LET statement into %LET sumind = _IT_, no errors
>occur. Yet, this is not an elegant solution, since I then loose my
>flexibility in naming macro vraiables.]
>
>Question: Is there a way to obtain the desired _IT_ (or any arbitrary
>variable name within underscores) and still maintain the equally desired
>flexibility?
>
>Kind regards,
>
>
>Jan van Dalen
>
>THE MACRO ------->
>
>%MACRO TEST(varnam);
> %LET sumind = _%STR(&varnam)_ ;
> %PUT sumind : &sumind;
> DATA dum; &sumind=0; OUTPUT; RUN;
> PROC PRINT DATA=dum; RUN;
>%MEND;
>
>%TEST(IT); RUN; /* Calculating indices */
>
>NOTE: Line generated by the macro variable "SUMIND".
>1 _IT_
> -
> 180
___________
WIELKI Andre
INED - Service Informatique
133 Bd Davout,
75 980 Paris Cedex 20
FRANCE
Tel: 01 56 06 21 54
|