BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
Red_Squirrel
Calcite | Level 5

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?

Astounding
PROC Star

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;

Red_Squirrel
Calcite | Level 5

Smiley Happy Thank you very much, Astounding!

all works now as it is supposed to!

SAS Innovate 2025: Save the Date

 SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!

Save the date!

What is Bayesian Analysis?

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 17 replies
  • 2322 views
  • 7 likes
  • 3 in conversation