12-13-2016 01:17 AM
Execute SAS functions or user-written functions.
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;
12-13-2016 09:14 AM
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.