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...
Build your skills. Make connections. Enjoy creative freedom. Maybe change the world. Registration is now open through August 30th. Visit the SAS Hackathon homepage.
Register today!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.
Select SAS Training centers are offering in-person courses. View upcoming courses for: