BookmarkSubscribeRSS Feed
🔒 This topic is locked. We are no longer accepting replies to this topic. Need further help? Please sign in and ask a new question.
SAS_Tipster
Moderator

Quite often it is necessary to set a default value for a macro variable or parameter that is passed to a program. If the program is a macro, the %IF statement can be used to check if the value is provided and provide a default value if not. Since the %IF statements are not allowed outside of macros, that technique won't work for a non-macro program (e.g., a file/program that is %INCLUDEd). The following code snippet demonstrates the use of the coalescec function to assign a default value.

%global myParameter;  /* ensure it exists */
%let myParameter = %sysfunc(coalescec(&myParameter,defaultValue));

If the myParameter macro variable has a value, it will be used, otherwise defaultValue will be assigned as the value. This technique can also be used in macros instead of using a %IF statement.

 

The coalescec function is used regardless of whether the expected value for the parameter is numeric since macro is a text manipulation facility, (i.e., everything in macro is interpreted as a character string).


Thanks to Don Henderson for sharing this tip on sasCommunity.org.

SAS Innovate 2025: Call for Content

Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!

Submit your idea!

Visit a random SAS tip This SAS Tips board is not open for replies or comments, but we welcome your feedback and questions. Have a question or comment about this tip? Start a new topic in one of our discussion boards, and reference this tip topic.
Discussion stats
  • 0 replies
  • 5614 views
  • 0 likes
  • 1 in conversation