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