在 r 中有条件地删除行

Deleting rows conditionally in r

我想删除具有重复日期和 ID 的行。我总是想在删除重复项时保留第一行。

**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

使用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: Delete rows by reference 会更快