Как удалить строку фрейма данных на основе повторяющейся даты и идентификатора - PullRequest
0 голосов
/ 05 июля 2019

Я пытаюсь удалить ошибочный дубликат из моего кадра данных, в котором в строках дубликатов (например, идентификаторы пациентов 1 и 3 ниже) нет информации (NA).

Дубликаты, которые необходимо удалить, всегда встречаются первыми в паре, поэтому я подумал о том, чтобы как-то использовать эту информацию для их удаления.

Упростили приведенные ниже данные, чтобы немного уменьшить проблему (ПРИМЕЧАНИЕ: я ищу функцию, которая может удалить несколько дубликатов, подобных этой, в большом наборе данных без необходимости идентифицировать их вручную):

Click here for mock dataset

До сих пор я пытался отработать приведенный ниже код:

test <- ea2[!duplicated(ea2[,c("PatientID", "SessionDate2")]),]

но это, конечно, просто удаляет вторую дублирующую строку для идентификаторов пациентов 1 и 3, которые мне нужно сохранить в наборе данных.

1 Ответ

0 голосов
/ 05 июля 2019

Дубликаты, которые необходимо удалить, всегда появляются первыми в паре

Не рекомендуется полагаться на порядок входящих строк, потому что он может измениться, особенно когда извлекает избаза данных .

Не могли бы вы отбросить строки с бесполезной информацией, а затем использовать свой код duplicated()?Если это так, мне нравится tidyr::drop_na().

ea2 <- tidyr::drop_na(ea2, PatientID)
ea2 <- tidyr::drop_na(ea2, SessionDate2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...