Hello, I'm running a loop macro through many >5000 datasets using proc phreg with the fast option.However, some datasets fail generating the Floating Point Exception and Domain Error which I cannot seem to get around (I have looked at these data and cannot find the reason for them failing): ERROR: Domain error.
WARNING: Output 'parameterestimates' was not created. Make sure that the output object name, label,
or path is spelled correctly. Also, verify that the appropriate procedure options are used
to produce the requested output object. For example, verify that the NOPRINT option is not
used.
ERROR: Termination due to Floating Point Exception
NOTE: The SAS System stopped processing this step because of errors.
NOTE: The PROCEDURE PHREG printed page 1558.
NOTE: PROCEDURE PHREG used (Total process time):
real time 23.74 seconds
cpu time 23.73 seconds Running the same datasets without the fast option works. Thus my solution would be to tell the macro to continue if error and redo the analysis removing the fast option for the failing datasets. However, the termination above causes a total abort and the %SYSERR handling I've implemented has no effect, the termination is final. NOERRORABEND is true. %macro analysis(catnum);
ods output parameterestimates=pedes_&catnum;
proc phreg data=output_&catnum fast;
strata yearentry origin;
class sex ;
effect aspl=spline(age / naturalcubic knotmethod=equal(5));
effect tspl=spline(num / naturalcubic knotmethod=list(1,3,5,10,20,50,100,150));
model (entry,exit)*censored(1)= max_des sex aspl tspl ;
run;
%if %SYSCC>0 or %SYSERR>0 or %error>0 or %length(%SYSERRORTEXT)>0 %then %goto continue;
%continue:
ods output parameterestimates=pedes_&catnum;
proc phreg data=output_&catnum;
strata yearentry origin;
class sex ;
effect aspl=spline(age/ naturalcubic knotmethod=equal(5));
effect tspl=spline(num / naturalcubic knotmethod=list(1,3,5,10,20,50,100,150));
model (entry,exit)*censored(1)= max_des sex aspl tspl ;
run;
%mend;
Loop macro:
%macro loop(start,stop);
%do iii=&start %to &stop;
%analysis(&iii);
%end;
%mend;
Any idea howto overcome this abortion error to continue the loop cycle? Another OK, solution would be to just continue the loop macro but from i+1, then I could check the error and cycle through only the error sets without the fast option. (Aggregating the data to a few sets and running the analysis using a by statement produces the same failures in the same datasets, I've checked for missing records and rounded entry and exit etc without success). Thanks! (SAS 9.4 TS Level 1M4)
... View more