Я ищу способ напечатать текущее, ведущее и запаздывающее наблюдение согласно переменной флага.Если наблюдение помечено, я хочу напечатать это наблюдение, а также его отстающий и передний ряд.
Имеют:
ID VAR1 VAR2 Flag
--------------------------------------
ID1 1 15 .
ID1 2 14 1
ID1 3 13 .
ID1 4 12 .
ID2 5 11 .
ID2 6 10 .
ID2 7 9 1
ID2 8 8 .
ID2 9 7 .
ID3 10 6 .
ID3 11 5 1
ID3 12 4 .
ID3 13 3 .
ID3 14 2 1
ID3 15 1 .
Хочу:
ID VAR1 VAR2 Flag
--------------------------------------
ID1 1 15 .
ID1 2 14 1
ID1 3 13 .
ID2 6 10 .
ID2 7 9 1
ID2 8 8 .
ID3 10 6 .
ID3 11 5 1
ID3 12 4 .
ID3 13 3 .
ID3 14 2 1
ID3 15 1 .
Я пробовал функции Proc Expand
, но поскольку эта процедура не может справиться с отсутствующими значениями, она неуместно в моем рабочем случае.
Другой подход состоит в том, чтобы упорядочить набор данных в желаемом порядке, а затем создать переменную, нумерацию каждой строки по порядку - печать текущей строки + 1, -1 при условии флага.
IsЕсть ли более прямой способ получить набор данных, состоящий из текущих, отстающих и ведущих строк в соответствии с флагом?