BookmarkSubscribeRSS Feed
Tap222
Calcite | Level 5

%sysfunc - why this function we use?

2 REPLIES 2
Reeza
Super User

Documentation:

Execute SAS functions or user-written functions.

 

Logic:

How does SAS macro processing know if text you type is a string or a function? Wrapping it with SYSFUNC tells the processor that you want to evaluate that function, not treat it as a string.

%let my_func = substr(Awesome, 1, 2);
%let my_func_executed = %sysfunc(substr(Awesome, 1, 3));

%put &my_func;
%put &my_func_executed;

Results:

 

 

54 %let my_func = substr(Awesome, 1, 2);
55 %let my_func_executed = %sysfunc(substr(Awesome, 1, 3));
56
57 %put &my_func;
substr(Awesome, 1, 2)
58 %put &my_func_executed;
Awe
Astounding
PROC Star

Macro language contains just a handful of functions.  DATA steps, on the other hand, contain hundreds of functions.  %SYSFUNC was invented so that you could tell macro language to use a DATA step function.  That way, the macro language would not have to reprogram all those DATA step functions into a macro language version.  Most DATA step functions (not all) can be called using %SYSFUNC.

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

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!

Register Now

How to Concatenate Values

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 2 replies
  • 1474 views
  • 5 likes
  • 3 in conversation