Dans R, à condition de supprimer les lignes en double dans ID, la Date et l'Événement

0

La question

Arrière-plan

J'ai dun dataframe:

d <- data.frame(ID = c("a","a","a","a", "b","b"),
                event = c("G12","G12","O99","O99","B4","B2"),
                date = as.Date(c("2011-01-01","2011-01-01","2011-12-23","2011-12-23","2011-01-01","2011-07-12")),
                stringsAsFactors=FALSE)

Comme vous pouvez le voir, ID a a 4 lignes, dont 2 qui sont des répétitions basé sur event et date (les lignes 2 et 4 sont les doublons).

Le Problème et de Sortie Désiré

Je voudrais supprimer ces doublons en demandant R pour supprimer des lignes dans les ID qui ont le même event et date. En d'autres termes, je voudrais quelque chose qui ressemble à ceci:

d <- data.frame(ID = c("a","a", "b","b"),
                event = c("G12","O99","B4","B2"),
                date = as.Date(c("2011-01-01","2011-12-23", "2011-01-01","2011-07-12")),
                stringsAsFactors=FALSE) 

Ce que j'ai essayé

J'ai fait une tentative, mais ce n'est pas tout à fait là:

d2 <- subset(d, duplicated(d$ID, d$event))

Toutes les pensées?

data.table dplyr duplicates r
2021-11-23 17:55:50
1

La meilleure réponse

1

Une option est d'utiliser unique

unique(d)
#>   ID event       date
#> 1  a   G12 2011-01-01
#> 3  a   O99 2011-12-23
#> 5  b    B4 2011-01-01
#> 6  b    B2 2011-07-12

À l'aide de data.table

library(data.table)

dt <- data.table(d)

unique(dt[, .(event, date), by = ID])

Créé sur 2021-11-23 par le reprex paquet (v2.0.1)

2021-11-25 13:24:16

Dans d'autres langues

Cette page est dans d'autres langues

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................