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;
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;
%let no_of_obs=0;
data _null_;
set a;
call symput("no_of_obs",_n_);
run;
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
@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.
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.
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
Still thinking about your presentation idea? The submission deadline has been extended to Friday, Nov. 14, at 11:59 p.m. ET.
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.
Ready to level-up your skills? Choose your own adventure.