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

All, 
 I have a simple question. How can one perform a logical test to validate if a macro variable has missing value ? 

For e.g.: 

%Let a = .; 
%Put &a.; 
%If &a = %str() %Then
%Do;
%Put "1";
%End;

 I thought something like this, but doesn't get me too far. 

1 ACCEPTED SOLUTION

Accepted Solutions
Astounding
PROC Star
That's for a nonnull value. For a null value:

%if %length(&a)=0 %then %do;

View solution in original post

6 REPLIES 6
Astounding
PROC Star
There are several ways, and an entire paper has been published on the subject. My favorite way:

%if %length(&a) %then %do;
Astounding
PROC Star
That's for a nonnull value. For a null value:

%if %length(&a)=0 %then %do;
UdayGuntupalli
Quartz | Level 8

@Astounding ,
   Thank you for your response. May I ask you to offer a little more clarity , 

 

 

%Let a = . ;
%if %length(&a) %then 
	%do;
		%put 1; 
	%end;
	%else;
		%put 0; 
	%end; 

  This returns an error. Can you point as to what is wrong ? Additionally, can you point me to the paper you are referring to ? 

 

 

 

 

FreelanceReinh
Jade | Level 19

@UdayGuntupalli wrote:
(...) Additionally, can you point me to the paper you are referring to ? 

Just for completeness, this is (most likely) the paper Astounding referred to: https://support.sas.com/resources/papers/proceedings09/022-2009.pdf

Astounding
PROC Star
In macro language . is a character and not a missing value.

This statement is incorrect:

%else;

It should be:

%else %do;

Authors of the paper are Chung and King. For me, it's too difficult to find and post links using a mobile phone.
Ksharp
Super User
%If &a =  %Then %Do;%Put "1";%End;

sas-innovate-wordmark-2025-midnight.png

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
  • 6 replies
  • 17411 views
  • 1 like
  • 4 in conversation