Hi Everyone,
I have a a variable called FiscalYear and it's formatted:
value FYF
1 = "FY16"
2 = "FY17"
3 = "FY18"
4 = "FY19"
5 = "Older Than FY16"
I have a simple macro:
%let FYMacro = 3;
I want the the title to display for the format:
title "Hospital Report for &FYMacro";
The result I get is:
Hospital Report for 3
What I want is:
Hospital Report for FY18
Any suggestions would be greatly appreciated! Thank you!
There are also options to use by-group processing and have individual titels created by by-group - but you haven't given us enough detail to propose such an approach.
Below code shows an approach to achieve what you've asked for.
proc format;
value fyf
1 = "FY16"
2 = "FY17"
3 = "FY18"
4 = "FY19"
5 = "Older Than FY16"
;
run;
%let FYMacro = 3;
title "Hospital Report for %sysfunc(putn(&FYMacro,fyf.))";
proc print data=sashelp.class;
run;
title "Hospital Report for %sysfunc(putn(&fymacro,fyf.))";
There are also options to use by-group processing and have individual titels created by by-group - but you haven't given us enough detail to propose such an approach.
Below code shows an approach to achieve what you've asked for.
proc format;
value fyf
1 = "FY16"
2 = "FY17"
3 = "FY18"
4 = "FY19"
5 = "Older Than FY16"
;
run;
%let FYMacro = 3;
title "Hospital Report for %sysfunc(putn(&FYMacro,fyf.))";
proc print data=sashelp.class;
run;
There may be a situation where you need to deal with the trailing blanks. I have not been able to figure a way other than another %SYSFUNC.
%CMPRES is a bit shorter:
%cmpres(%sysfunc(putn(&FYMacro,fyf)))
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!
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.