|
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
|