/* 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'
--*;
Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.
Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.
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.