Я хочу добавить столбец последовательности в свой набор данных sas, но в соответствии с идентификаторами и датами транзакций. Для иллюстрации ниже приведена таблица, на которую я ссылаюсь:
ID | TXN_DT |
01 | 01JAN2020 |
01 | 01JAN2020 |
01 | 02JAN2020 |
01 | 03JAN2020 |
02 | 01JAN2020 |
02 | 02JAN2020 |
02 | 02JAN2020 |
02 | 03JAN2020 |
02 | 03JAN2020 |
и я хочу добавить такую последовательность:
ID | TXN_DT | SEQ |
01 | 01JAN2020 | 1 |
01 | 01JAN2020 | 1 |
01 | 02JAN2020 | 2 |
01 | 03JAN2020 | 3 |
02 | 01JAN2020 | 1 |
02 | 02JAN2020 | 2 |
02 | 02JAN2020 | 2 |
02 | 03JAN2020 | 3 |
02 | 03JAN2020 | 3 |
Я пытаюсь запустить следующий код, но он, кажется, перепрыгивает строку вверх и не копирует значение предыдущей строки, а вместо этого переходит к 2 строкам выше.
data want;
set have;
by id;
if first.id then seq=1;
else seq+1;
if txn_dt=lag(txn_dt) then seq = lag(seq);
keep id seq txn_dt;
run;
любая помощь? Заранее спасибо!
seq
только тогда, когдаtxn_dt ^= lag(txn_dt)
- person mjsqu   schedule 14.02.2020