Certainly:
Data want;
Set have;
If ((value1 < value2 < value3) or (value1 < required_result and value2 < required_result and value3 < required_result)) and (_n_ > 2) and (_n_ > max_recordnum) then do;
max_recordnum = _n_ + 3;
Saved_average = average1;
End;
Retain max_recordnum saved_average;
If saved_average = . Then required_result = average1;
Else required_result = saved_average;
Run;
IS the problem here because required_result is used in the first if condition before even it has been creared?
OK, it's looking a little clearer. The OR condition should look at SAVED_AVERAGE, rather than REQUIRED_RESULT. SAVED_AVERAGE is retained, but REQUIRED_RESULT begins each observation as missing:
If ((value1 < value2 < value3) or (value1 < saved_average and value2 < saved_average and value3 < saved_average)) and (_n_ > 2) and (_n_ > max_recordnum) then do;
Thank you very much, Astounding!
all works now as it is supposed to!
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!
Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.