DATA Step, Macro, Functions and more

how to iterate %do loop over uneven intervals of index values

Reply
Occasional Contributor
Posts: 7

how to iterate %do loop over uneven intervals of index values


     data x ;

     set % do i = 1 , 2 , 3 , 8 , 10 ;

                         xyz&i

          %end; ;

     run;

Hi guyz, I need to append some datasets which ends with a number like this scenario above. But , when i run this code am getting this error "%to note found, macro is not compiled" . Please help me in this situation

Super User
Super User
Posts: 7,035

Re: how to iterate %do loop over uneven intervals of index values

Posted in reply to chaitanya

%DO is not as flexible as DO.

Make a list and loop over an index into the list.

Note: the %UNQUOTE() is because sometimes the parser can get confused by this type of syntax and treat the XYZ and %SCAN() as separate tokens.

%let suffix=1 2 3 8 10;

data x ;

  set

%do i=1 %to %sysfunc(countw(&suffix,%str( )));

  %unquote(xyz%scan(&suffix,&i,%str( )))

%end;

  ;

run;

Ask a Question
Discussion stats
  • 1 reply
  • 447 views
  • 0 likes
  • 2 in conversation