Hello:
Could someone explain the macro statement below? Thanks.
%If &&M&I = 0 %then %GOTO out;
statement;
%out: %end;
The result depends on the value of the macro variable &i. When &i is 1, the program examines the macro variable &M1 to see if it is zero. When &i is 2, the program examines the macro variable &M2 to see if it is zero. Etc.
When a zero is found, the program skips over the statement(s) in the middle.
The result depends on the value of the macro variable &i. When &i is 1, the program examines the macro variable &M1 to see if it is zero. When &i is 2, the program examines the macro variable &M2 to see if it is zero. Etc.
When a zero is found, the program skips over the statement(s) in the middle.
Run this to help you make sense of the logic.
Here the value of i=1, so &&m&i becomes &m1, and the value of m1 is 0.
option symbolgen nomlogic;
%macro test;
%let i =1;
%let m1=0;
%put Print this line;
%if &&m&i = 0 %then %goto out;
%put This line is skipped;;
%out:
%put This is the end;
%mend;
%test
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!
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.