SAS Programming

DATA Step, Macro, Functions and more
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-white.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.

 

Early bird rate extended! Save $200 when you sign up by March 31.

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
  • 17778 views
  • 1 like
  • 4 in conversation