Call it like this:
%unquote(%ild_out)
Read this article to learn why:
https://stats.oarc.ucla.edu/wp-content/uploads/2016/02/bt185.pdf
Bart
Hi, Instead of using %bquote
, can use %nrstr
to handle the special characters and ensure the macro variables are correctly interpreted.
%macro ild_out;
%do i=2 %to &max_ild.;
%nrstr(
define e%eval(&i.-1)_prog_yn / "Did event%eval(&i.-1) progress to a higher grade per Investigator (Y/N)" style(column)=[cellwidth=0.8in] display;
define e%eval(&i.-1)_prog_date / "If yes, date when event%eval(&i.-1) progressed to a higher grade (event&i.)" style(column)=[cellwidth=0.8in] display;
define e&i._grade / "Grade of event&i." style(column)=[cellwidth=0.8in] display;
define e&i._out / "Outcome of event&i." style(column)=[cellwidth=0.8in] display;
define e&i._action / "Dose action of event&i. for DXd ADC" style(column)=[cellwidth=0.8in] display;
)
%end;
%mend ild_out;
Hope this helps
Thanks a lot, himself! It didn't process and reported the message below. All the macro variables are masked in the define blocks.
Call it like this:
%unquote(%ild_out)
Read this article to learn why:
https://stats.oarc.ucla.edu/wp-content/uploads/2016/02/bt185.pdf
Bart
Why do you want to use %BQUOTE()? It does not seem to serve any purpose.
%macro ild_out;
%local next previous style;
%let style=style(column)=[cellwidth=0.8in] display;
%do next=2 %to &max_ild.;
%let previous=%eval(&next-1);
define e&previous._prog_yn / "Did event&previous. progress to a higher grade per Investigator (Y/N)" &style.;
define e&previous._prog_date / "If yes, date when event&previous. progressed to a higher grade (event&i.)" &style.;
define e&next._grade / "Grade of event&next." &style.;
define e&next._out / "Outcome of event&next." &style.;
define e&next._action / "Dose action of event&next. for DXd ADC" &style.;
%end;
%mend ild_out;
Also where does the value for the "magic" macro variable MAX_ILD come from? It is not a parameter that the macro accepts. Nor is it another LOCAL macro variable that macro created.
Thank you so much, Tom! &maxild is the maximum number of events that was defined in other data step. Your solution also works perfectly. I wish I could mark it as the second solution. Much appreciate it.
It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.
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.