Hi Everyone,
I run a macro and would like to do proc copy whenever the count is even number.
I received error notice and am not sure how to fix it.
NOTE: %INCLUDE (level 1) ending.
ERROR: Required operator not found in expression: MOD(&GROUP,2)=0
ERROR: The macro OUTER_LOOP will stop executing.
Any help is very appreciated.
HHCFX
%MACRO OUTER_LOOP;
%DO GROUP=1 %TO &MAX_GROUP;
... Mycode
%include "C:\mysas_code.sas" /lrecl=500;
*export subsample of final file;
%if MOD(&GROUP,2)=0 %then %do;
data F2_&group; set F2; run;
proc copy in=work out=myfolder; select F2_&group;run;
%end;
%END;
%MEND;
%OUTER_LOOP; run;
a quick look tells me you need %sysfunc to invoke sas functions
like
%MACRO OUTER_LOOP;
%DO GROUP=1 %TO &MAX_GROUP;
... Mycode
%include "C:\mysas_code.sas" /lrecl=500;
*export subsample of final file;
%if %sysfunc(MOD(&GROUP,2)=0 )%then %do;
data F2_&group; set F2; run;
proc copy in=work out=myfolder; select F2_&group;run;
%end;
%END;
%MEND;
%OUTER_LOOP; run;
a quick look tells me you need %sysfunc to invoke sas functions
like
%MACRO OUTER_LOOP;
%DO GROUP=1 %TO &MAX_GROUP;
... Mycode
%include "C:\mysas_code.sas" /lrecl=500;
*export subsample of final file;
%if %sysfunc(MOD(&GROUP,2)=0 )%then %do;
data F2_&group; set F2; run;
proc copy in=work out=myfolder; select F2_&group;run;
%end;
%END;
%MEND;
%OUTER_LOOP; run;
Alternatively, you could take advantage of this combination. %IF always applies %EVAL, and %EVAL performs integer arithmetic. So you could code:
%if &group = &group / 2 * 2 %then %do;
Thanks a lot!
It works perfectly.
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
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.