BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
ybz12003
Rhodochrosite | Level 12

Hello:

 

Could someone explain the macro statement below?   Thanks.

 

 

%If &&M&I = 0 %then %GOTO out;

statement;

%out: %end;

 

1 ACCEPTED SOLUTION

Accepted Solutions
Astounding
PROC Star

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.

View solution in original post

2 REPLIES 2
Astounding
PROC Star

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.

ChrisNZ
Tourmaline | Level 20

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: Register Today!

 

Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.


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
  • 840 views
  • 2 likes
  • 3 in conversation