Heluuu, I am trying to find a window of interest in my time data. For an item x I have an interval [a, b], and inside this interval at various points I have examinations e. Each examination comes with a date d. My problem is that in some cases the interval [a, b] is large, and there is a significant gap between the last examination e n and b. I would like to scratch all examinations that occur prior to this gap. I have the following relevant points in a table:
DATA dsHistory;
INPUT ItemsX ExamsE EndpointB;
DATALINES;
0001 02/03/95 04/08/13
0001 07/11/98 04/08/13
0001 09/09/02 04/08/13
0001 01/06/06 04/08/13
0205 01/05/87 02/11/10
0205 14/03/01 02/11/10
0205 22/02/04 02/11/10
0205 17/08/08 02/11/10
0205 11/08/09 02/11/10
;
RUN;
Using this example, I would like x 0001 to disappear (as there is no e i close to b 0001 ), and I would like the first observation of x 0205 to disappear as well (there is a significant gap between the first observation and the others). In short, my proposed algorithm looks like:
foreach unique subset ItemX x in X
t_in_sequence = b(x)
foreach ExamsE e in x
if t_in_sequence - e > 6 years
Remove observation corresponding to e(x) from set;
else
t_in_sequence = t_examination;
Now, my problem is that I don't know how to do this other than splitting the dataset into several thousand subsets, and reiterating through them with a new t_in_sequence every time. How can I go through each x inplace? How can I update t_in_sequence while going through x? Does anyone have suggestions on how to do this? Thank you for reading
... View more