Hi, I have problem on passing parm to a macro wish someone can give me a hand. Following is the script that I have. I am trying to pass parm to the macro using a do loop but it was not successful. Can anyone give me some advice. thanks.
DATA rev_data;
FORMAT rep_month $7. ;
INPUT @1 rep_month $7.;
CARDS;
2012-01
2012-02
2012-03
;
data rev_data; set rev_data;
by rep_month;
if first.rep_month then do;
cnt = left(put(_n_,6.));
call symput('mth'||cnt, rep_month);
call symput('mthcount', cnt);
end;
run;
%put _user_;
%macro a(m_mth, m_mthcount);
%put month = &m_mth. count = &m_mthcount.;
%mend;
%a(&mth1, &mthcount);
data _d_;
do i = 1 to &mthcount;
runmth = '&mth'||i;
%a(&mth||i,i);
end;
run;
For the last part of your code, I have modified it to macro, hopefully it is what you want:
%macro test;
data _d_;
%do i = 1 %to &mthcount;
runmth = "&&mth&i";
output;
%a(&&mth&i,&i);
%end;
run;
%mend;
%test
proc print;run;
Kindly Regards,
Haikuo
For the last part of your code, I have modified it to macro, hopefully it is what you want:
%macro test;
data _d_;
%do i = 1 %to &mthcount;
runmth = "&&mth&i";
output;
%a(&&mth&i,&i);
%end;
run;
%mend;
%test
proc print;run;
Kindly Regards,
Haikuo
Hi HaiKuo, thank you for your help.. Your solution work.. thanks a lot...
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!
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.
Ready to level-up your skills? Choose your own adventure.