Date: Thu, 15 May 2008 11:54:45 -0500
Reply-To: Amy Sun <tonyliang20032@GMAIL.COM>
Sender: "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From: Amy Sun <tonyliang20032@GMAIL.COM>
Subject: Re: %str question?
In-Reply-To: <f779f94d-a212-4c38-bd2d-34d4026e589e@d45g2000hsc.googlegroups.com>
Content-Type: text/plain; charset=ISO-8859-1
Thank you for the suggestions, and if I want a macro taking the macro
variable as parameter, then how to revise the following code.
%macro batchcodeA (param);
%do i = 1 %to &nvisit;
%let vis_a = %scan(&vValList, &i, %str( ) );
%do j = 1 %to &nvisit;
%let vis_b = %scan(&vValList, &j, %str( ) );
¶m
%end;
%end;
%mend;
%batchcodeA(%nrstr(STD_&vis_a.&vis_b))
Thank you for your help.
Best regards,
Amy
On 5/15/08, karma <dorjetarap@googlemail.com> wrote:
>
> Hi Amy,
>
> If you are trying to generate a string of variable names using your
> batchcode macro, try this:
>
> %macro batchcode;
> %let nvisit=4; /*Remove this line*/
> %let vVallist=this is a test; /*Remove this line*/
> %let visx=STD_;
> %do i = 1 %to &nvisit;
> %let vis_a = %scan(&vValList, &i, %str( ) );
> %do j = 1 %to &nvisit;
> %let vis_b = %scan(&vValList, &j, %str( ) );
> %let visx=&visx.&vis_a.&vis_b ;
> %end;
> %end;
> &visx;
> %mend batchcode;
>
> %let y=%batchcode;
> %put &y;
>
> >>>
> STD_thisthisthisisthisathistestisthisisisisaistestathisaisaaatesttestthistestistestatesttest
>
> The code you have given will create a string with all combinations of
> each substring in vis_a with vis_b. This does seem a bit strange. What
> is it you want to use this for? HTH
>
> On May 15, 3:57 pm, tonyliang20...@GMAIL.COM (Amy Sun) wrote:
> > Hi, All;
> >
> > I have the following code, and want to refer the macro &batchcode, in
> some
> > other place,
> >
> > %let batchcode = %nrstr(
> > %do i = 1 %to &nvisit;
> > %let vis_a = %scan(&vValList, &i, %str( ) );
> > %do j = 1 %to &nvisit;
> > %let vis_b = %scan(&vValList, &j, %str( ) );
> > STD_&vis_a.&vis_b
> > %end;
> > %end;
> > );
> >
> > e.g. in some procedure,
> >
> > proc summary data = datacov mean;
> > class trt;
> > var &batchcode;
> > output out = stat_cov
> > mean = &bathcode N = ....;
> > run;
> >
> > there are some error message in the log, then how can I corrrectly define
> > the macro &batchcode.
> >
> > Thank you in advance for your suggestions.
> >
> > Best regards,
> > Amy
>
|