/ Published in: SAS
                    
                                        
3 examples
                
                            
                                Expand |
                                Embed | Plain Text
                            
                        
                        Copy this code and paste it in your HTML
/* This macro will allow you to step through the lowercase letters of */
/* the alphabet on a %DO loop. For uppercase letters, edit the first */
/* %LET statement to include them as well. */
%macro iterm(beg,end);
%let lst=a b c d e f g h i j k l m n o p q r s t u v w x y z;
%let start=%sysfunc(indexc(%sysfunc(compress(&lst)),&beg));
%let finish=%sysfunc(indexc(%sysfunc(compress(&lst)),&end));
%do i = &start %to &finish;
%put %scan(&lst,&i);
%end;
%mend;
/* Just pass in starting and ending value */
%iterm(a,e)
/** An alternative to the above example using the RANK and BYTE function **/
%macro iterm(beg,end);
%do i = %sysfunc(rank(&beg)) %to %sysfunc(rank(&end));
%put %sysfunc(byte(&i));
%end;
%mend;
/* Just pass in starting and ending value */
%iterm(a,e)
%macro loop(values);
* Count the number of values in the string;
%let count=%sysfunc(countw(&values));
* Loop through the total number of values;
%do i = 1 %to &count;
%let value=%qscan(&values,&i,%str(,));
%put &value;
%end;
%mend;
* %STR is used to mask the commas from the macro compiler when;
* the macro %LOOP is called.;
%loop(%str(2,3,5,7,11,13,17))
URL: http://support.sas.com/kb/25/961.html
Comments
 Subscribe to comments
                    Subscribe to comments
                
                