Удаление строк условно в г

Я хочу удалить строки с дублированными датами и идентификаторами. Я всегда хочу сохранить первый ряд при удалении дубликатов.

**df1**
ID  Date        score1  score2
73  2014-05-04  5       7
73  2014-05-04  5       8
73  2014-07-12  2       7
73  2014-07-12  4       3
79  2014-09-11  3       7
82  2014-05-04  5       7
82  2014-05-04  5       6

**Wanteddf**
ID  Date        score1  score2
73  2014-05-04  5       7
73  2014-07-12  2       7
79  2014-09-11  3       7
82  2014-05-04  5       7

3 ответа

Решение

С помощью dplyr:

library(dplyr)
df1 %>% distinct(Date, ID)

С помощью base R

 df1[!duplicated(df1[1:2]),]
 #   ID       Date score1 score2
 #1 73 2014-05-04      5      7
 #3 73 2014-07-12      2      7
 #5 79 2014-09-11      3      7
 #6 82 2014-05-04      5      7

Использование data.table:

library(data.table)
setDT(df1)
unique(df1, by=c("Date","ID"))

Убедитесь, что используете последнюю версию 1.9.5.
После разрешения data.table#635: Удалить строки по ссылке, это может быть еще быстрее.

Другие вопросы по тегам