Hi @null
The following code gives the desired result with your test data, but it doesn't follow your rules. By looking at your input, i looks to me as the rules could also be expressed as:
Give a new value to want, when
actual row is the first row for any usubjid, or
a new "group" of concecutive vsstresn values within a given usubjid is encountered, i.e. vsstresn ne previous vsstresn + 1.
data b (drop=oldstressn);
set a;
by usubjid;
retain want;
oldstressn = lag(vsstresn);
if first.usubjid then want = vsstresn;
else if vsstresn ne oldstressn + 1 then want = vsstresn;
run;
... View more