I have the table below, i want to create cure_stress_s1 n number of times but not sure how to put this into a macro.
table
period curr_rate wt_param
0 0.01 0.21
1 0.02 0.52
2 0.03 0.35
data test;
set table;
cure_stress_s1 = (cure_rate * (1 + weighted_param_diff));
cure_stress_s2 = (cure_stress_s1 *(1 + weighted_param_diff));
cure_stress_s3 = (cure_stress_s2 *(1 + weighted_param_diff));
cure_stress_s4 = (cure_stress_s3 *(1 + weighted_param_diff));
run;
Any help would be appreciated.
Thanks
You don't want macros, you want arrays:
data test;
set table;
array cure_stress{4} 8.;
cure_stress{1}=cure_rate * (1 + weighted_param_diff);
do I=2 to 4;
cure_stress{I}=cure_stress{I-1} * (1 + weighted_param_diff);
end;
run;
You could of course put number of iterations into a macro variable if you want and replace that in the code.
You don't want macros, you want arrays:
data test;
set table;
array cure_stress{4} 8.;
cure_stress{1}=cure_rate * (1 + weighted_param_diff);
do I=2 to 4;
cure_stress{I}=cure_stress{I-1} * (1 + weighted_param_diff);
end;
run;
You could of course put number of iterations into a macro variable if you want and replace that in the code.
Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!
Check out this tutorial series to learn how to build your own steps in SAS Studio.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.