In SAS 9.2
I am converting a series of similar temporary table creation blocks into a macro. I figured out how to write the macro with the
exception of where one table contains one more column than another. I need to be able to pass a blank value into
a macro that won’t throw off my SQL create table statement.
For the column I want I found that I can use
%MyMacro(%str(four_digit_year varchar(4),));
I am not sure what I can use if I want to include a null. Eg.
%MyMacro(null)
It seems that I can’t use “”
The same idea would be useful here. If I could feed in a blank &group into a
template.
proc template;
define statgraph TotalGraph;
dynamic TITLE1 TITLE2;
begingraph;
entrytitle halign=left TITLE1;
entrytitle TITLE2;
layout overlay / xaxisopts =(label = ' ') yaxisopts =(label = ' ' linearopts=(viewmin=0)) walldisplay=(fill);
seriesplot x=FOUR_DIGIT_YEAR y=students_enrolled / &group
name='a' index=index display=all
ROLENAME=(Year=ACADEMIC_PERIOD_DESC Level=&enrRepTy)
TIP=(Year Level Y) tiplabel=(Year='Academic Term' Y='Students Enrolled' Level ='Level') datalabel=students_enrolled;
endlayout;
endgraph;
end;
run;
Passing a null value should be easy:
%MyMacro ()
Worked for me. If you have a method that accepts three parameters and you feed it two SAS feeds only two parameters. Apparently Polymorphism is not included in SAS.
It's not difficult to overcome:
%MyMacro (A,,C)
The first parameter receives a value of A, the second is null, and the third is C. It might be easier to understand if you switch from positional parameters to keyword parameters, though.
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
Still thinking about your presentation idea? The submission deadline has been extended to Friday, Nov. 14, at 11:59 p.m. ET.
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.