/* input data */
data c1;
a='a';
b='b';
c='';
d='d';
run;
/* macro to iterate */
%macro doSomething(iter=);
data c2;
set c1;
array letters(4) $ a b c d;
x = &iter;
var = strip(letters(x));
if var='b' then put x= "true. var='b'";
else put x= "false. var^='b'";
run;
%mend doSomething;
%*-- test running it one at a time --*;
%doSomething(iter=1)
%doSomething(iter=2)
%*-- run them all --*;
%macro doAll;
%local i;
%do i = 1 %to 4;
%doSomething(iter=&i)
%end;
%mend doAll;
%doAll
%*-- on log
x=1 false. var^='b'
x=2 true. var='b'
x=3 false. var^='b'
x=4 false. var^='b'
--*;
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.