Если возможно, я бы хотел выбрать последние две строки каждой группы (ID), которые имеют действительное значение (т. Е. Не NA) в моей переменной результата (исходе).
Пример данных выглядит так:
df <- read.table(text="
ID outcome
1 800033 3
2 800033 3
3 800033 NA
4 800033 2
5 800033 1
15 800076 2
16 800076 NA
17 800100 4
18 800100 4
19 800100 4
20 800100 3
30 800125 2
31 800125 1
32 800125 NA", header=TRUE)
В случае, если у участника нет двух допустимых значений в моей исходной переменной (например, ID == 800076), я все же хотел бы сохранить последние две строки этой группы (ID). Все остальные строки должны быть удалены.
Поэтому мой окончательный набор данных будет выглядеть так:
ID outcome
4 800033 2
5 800033 1
15 800076 2
16 800076 NA
19 800100 4
20 800100 3
30 800125 2
31 800125 1
Любые советы о том, как это сделать, высоко ценятся!