I am running a marco that iterates through all variables in my dataset, and for each variable, runs a hpfmm procedure. The marco works perfectly until it reaches a variable for which there is a floating point error, in which case, the macro terminates
This is a snippet of my code and its associated error
proc hpfmm data = nf_allgpr_s4_div_ge3 seed=12345 ;
model gprPWY_5971_s4 = / kmin=1 kmax=3 dist=STUDENT ;
ods output ConvergenceStatus=myConvergenceStatus ;
run;
ERROR: Floating Point Overflow.
ERROR: Termination due to Floating Point Exception
NOTE: The SAS System stopped processing this step because of errors.
I have tried the above program with proc fmm, and get the same issue
My questions are
Thank you so much for your input
You should report the floating-point overflow to SAS technical support. Include the data for the gprPWY_5971_s4 variable and the information about your SAS version.
1. You can try rescaling the gprPWY_5971_s4 variable. Use PROC MEANS to see if that is a likely problem. Sometimes data that has extreme ranges (eg, a range of values such as [0, 1e9]) can lead to overflows. If the variable has a wide range, try using PROC STDIZE to rescale.
2. To skip the variable use the DROP statement in your macro:
proc hpfmm data = nf_allgpr_s4_div_ge3(DROP=gprPWY_5971_s4 ) ...
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
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.