Dear, I need flag certain OBS in the following data based on following conditions. Please help in my code. I need to flag all avg OBS within awindow if visitwindow is not unscheduled.(OBS 2 and 4 flag='y') If visit=unscheduled then I have to flag OBS with least diff value withinin awindow(OBS 8 flag=y) If visit=unscheduled and diff=same then I have to flag OBS with last date (OBS 12 flag=y) I trying the following code. Please suggest any thing I need to modify. Thanks data id test visitwindow awindow diff date 1 bp Day 7 (-1, +2) Wk 1 Day 4 (-1, +2) Wk 1 2 2015-05-15 1 bpavg Day 7 (-1, +2) Wk 1 Day 4 (-1, +2) Wk 1 2 2015-05-15 1 bp Day 7 (-1, +2) Wk 1 Day 4 (-1, +2) Wk 1 1 2015-05-16 1 bpavg Day 7 (-1, +2) Wk 1 Day 4 (-1, +2) Wk 1 1 2015-05-16 1 bp unscheduled Day 10 (+/-3) Wk 2 2 2015-05-25 1 bpavg unscheduled Day 10 (+/-3) Wk 2 2 2015-05-25 1 bp unscheduled Day 10 (+/-3) Wk 2 1 2015-05-26 1 bpavg unscheduled Day 10 (+/-3) Wk 2 1 2015-05-26 1 bp unscheduled Day 24&25 (+/-3) Wk 4 1 2015-06-25T11:35 1 bpavg unscheduled Day 24&25 (+/-3) Wk 4 1 2015-06-25T11:35 1 bp unscheduled Day 24&25 (+/-3) Wk 4 1 2015-06-25T12:35 1 bpavg unscheduled Day 24&25 (+/-3) Wk 4 1 2015-06-25T12:35 output needed id test visitwindow a.window diff date flag 1 bp Day 7 (-1, +2) Wk 1 Day 4 (-1, +2) Wk 1 2 2015-05-15 1 bpavg Day 7 (-1, +2) Wk 1 Day 4 (-1, +2) Wk 1 2 2015-05-15 y 1 bp Day 7 (-1, +2) Wk 1 Day 4 (-1, +2) Wk 1 1 2015-05-16 1 bpavg Day 7 (-1, +2) Wk 1 Day 4 (-1, +2) Wk 1 1 2015-05-16 y 1 bp unscheduled Day 10 (+/-3) Wk 2 2 2015-05-25 1 bpavg unscheduled Day 10 (-1, +2) Wk 1 2 2015-05-25 1 bp unscheduled Day 10 (+/-3) Wk 2 1 2015-05-26 1 bpavg unscheduled Day 10 (+/-3) Wk 2 1 2015-05-26 y 1 bp unscheduled Day 24&25 (+/-3) Wk 4 1 2015-06-25T11:35 1 bpavg unscheduled Day 24&25 (+/-3) Wk 4 1 2015-06-25T11:35 1 bp unscheduled Day 24&25 (+/-3) Wk 4 1 2015-06-25T12:35 1 bpavg unscheduled Day 24&25 (+/-3) Wk 4 1 2015-06-25T12:35 y My code: Proc sort data=data1; by id test date awindow decending diff; run; data date2; set data1; if index(visit,'unscheduled') = 0 and test='bpavg' then do; if first.awindow then flag='y'; end; if index(visit,'unscheduled') > 0 and test='bpavg' then do; if last.diff then flag.'y'; end; run;
... View more