在r中有条件地删除行

时间:2015-07-03 17:13:20

标签: r duplicates duplicate-removal

我想删除具有重复日期和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

3 个答案:

答案 0 :(得分:5)

使用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

答案 1 :(得分:3)

使用dplyr

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

答案 2 :(得分:3)

使用data.table

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

确保使用最新的1.9.5版本 解析data.table#635: Delete rows by reference后,它可能会更快。