BookmarkSubscribeRSS Feed
woo
Barite | Level 11 woo
Barite | Level 11

please help,

 

I have one dataset "A" which has one variable "test" which came out with zero observation 

 

i wants to mention it in auto email from SAS to team that "we have &no_of_obs observation for test" but problem is my below macro variable,no_of_obs, is resolving to &no_of_obs only since i have zero observation,

 

is there any work around to resolve it to zero (0)?

 

data _null_;

set a;

call symput("no_of_obs",_n_);

run;

 

5 REPLIES 5
Tom
Super User Tom
Super User

Change the order of the statements.  SAS stops the data step as soon as it reads past the end of the input stream. So the CALL SYMPUT() never runs.

 

data _null_;
  call symputX("no_of_obs",_n_-1);
  set a;
run;
 
PaigeMiller
Diamond | Level 26
%let no_of_obs=0;
data _null_;
set a;
call symput("no_of_obs",_n_);
run;
--
Paige Miller
woo
Barite | Level 11 woo
Barite | Level 11

Thanks Tom, it worked fine, 

 

@ Miller - in my case, its not a case where i will always get 0 obs, could be possible obs>0

 

 

PaigeMiller
Diamond | Level 26

@woo wrote:

@ Miller - in my case, its not a case where i will always get 0 obs, could be possible obs>0

 

 


Yes, the code as I wrote it will produce a result of 0 if there is no data, and a positive number equal to the number of observations when there is a positive number of data points.

--
Paige Miller
Astounding
PROC Star

For efficiency purposes, this sort of problem is usually handled a little differently.  Notice that your original code executes CALL SYMPUT for each observation in the data set.  It that's a million times, you might be slowing the program down.  An alternative:

 

data _null_;

call symputx("no_of_obs", _nobs_);

stop;

set a nobs=_nobs_;

run;

 

Note that switching to CALL SYMPUTX will remove from your log the message about numeric to character conversion, and will remove leading blanks from the value of &NO_OF_OBS.

 

Good luck.

hackathon24-white-horiz.png

The 2025 SAS Hackathon has begun!

It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.

Latest Updates

Creating Custom Steps in SAS Studio

Check out this tutorial series to learn how to build your own steps in SAS Studio.

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