У меня есть групповые данные и флаги, которые создаются каждый раз, когда имя изменяется в этой группе. Я могу вытащить последние два или первые два наблюдения в группе, но я изо всех сил пытаюсь понять, как вытащить последнее наблюдение с изменением имени И строкой сразу после.
Приведенный ниже код дает мне первые или последние два наблюдения для каждой группы, в зависимости от того, как я сортирую данные.
DATA LastTwo;
SET WhatIveGot;
count + 1;
BY group_ID /*data pre sorted*/;
IF FIRST.group_ID THEN count=1;
IF count<=2 THEN OUTPUT;
RUN;
Мне нужно быть ПОСЛЕДНИМ наблюдением с изменением имени и следующей строкой.
group_ID NAME DATE NAME_CHange
1 TOM 1/1/19 0
1 Jill 1/30/19 1
1 Jill 1/20/19 0
1 Bob 2/10/19 1
1 Bob 2/30/19 0
2 TOM 2/1/19 0
2 Jill 2/30/19 1
2 Jill 2/20/19 0
2 Jim 3/10/19 1
2 Jim 3/30/19 0
2 Jim 4/15/19 0
3 Joe 2/20/19 0
3 Kim 3/10/19 1
3 Kim 3/30/19 0
3 Ken 4/15/19 1
4 Tim 3/10/19 0
4 Tim 3/30/19 0
Желаемый результат:
group_ID NAME DATE NAME_CHange
1 Bob 2/10/19 1
1 Bob 2/30/19 0
2 Jim 3/10/19 1
2 Jim 3/30/19 0
3 Ken 4/15/19 1
Случаи для Group_ID 2 и 3 являются препятствием. Данные уже отсортированы по дате.
Спасибо за любую помощь заранее