Я пытаюсь проверить, является ли значение в одной строке уникальным по сравнению со всеми предыдущими строками по группам.
Например, для ID=1
я хочу сравнить препарат текущей строки со всеми предыдущими строками (или с сегодняшним днем, сравнить с теми, DATE
ранее текущей строки) в ID=1
, например. В строке 2 препарат A
такой же, как в строке 1, поэтому EXIST_BEFORE
кодируется как 1
; для строки 4 C
уникально по сравнению с предыдущими строками (A
, B
, C
), поэтому кодируется как 0
.
добавить еще один вопрос: как подсчитать количество различных drug
до текущего date
? например, для ID=1
, prev_drug
для строки 4 равно 2
, поскольку в нем два препарата (A, B) отличаются от препарата C до DATE
строки 4.
ID DATE DRUG EXIST_BEFORE prev_drug
1 2001-01-01 A NA 0
1 2001-02-01 A 1 0
1 2001-03-15 B 0 1
1 2001-04-20 C 0 2
1 2001-05-29 A 1 2
1 2001-05-02 B 1 2
2 2001-03-02 A NA 0
2 2001-03-23 C 0 1
2 2001-04-04 D 0 2
2 2001-05-05 B 0 3
Я знаю только, как сравнить с одной строкой выше на lag()
, но понятия не имею о сравнении с предыдущей датой для каждого ID
.