У меня есть следующий набор данных
DT <- data.table(
id = c(1,2,3,4,4,5,6,6,7),
date = c("2013-11-22","2017-01-24","2020-02-10","2011-01-03"
,"2011-01-03","2012-04-03","2010-09-03","2010-09-03"
,"2010-05-03"),
status = c("Never","Current","Former",NA,"Former"
, NA,"Never","Former","Current")
)
Я хочу создать уникальный id
и удалить дубликаты.
- Строка
id
, которую следует сохранить, зависит от на status
. - Если у staus есть
NA
, а не NA
, я хочу сохранить наблюдение без NA
. - Если статус имеет
Former
и Never
, я хочу сохранить наблюдение Former
.
Пример вывода ниже:
id date status
1: 1 2013-11-22 Never
2: 2 2017-01-24 Current
3: 3 2020-02-10 Former
4: 4 2011-01-03 Former
5: 5 2012-04-03 <NA>
6: 6 2010-09-03 Former
7: 7 2010-05-03 Current
Исходный набор данных имеет больше строк и столбцов, и функция data.table
будет эффективное время. Также некоторые id
встречаются более одного раза. Я пробовал раньше, чтобы сохранить id
с последней датой. Но чем, у меня слишком много "NA", в которых была другая запись статуса для более ранней даты.
Как я могу определить для идентичных id
, какие status
следует сохранить?