V R, podmíněně odstranit duplicitní řádky v rámci ID, Datum a Události

0

Otázka

Pozadí

Mám d, datovém:

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)

Jak můžete vidět, ID a má 4 řádky, z nichž 2 se opakuje na základě event a date (řádky 2 a 4 jsou duplikáty).

Problém a Požadovaný Výstup

Chtěl bych odstranit tyto duplicitní řádky tím, že žádá R odstranit řádky v rámci ID , které mají stejné event a date. Jinými slovy, rád bych něco, co vypadá takto:

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) 

Co jsem se snažil

Udělal jsem pokus, ale není to docela tam:

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

Nějaké nápady?

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

Nejlepší odpověď

1

Jednou z možností je použití unikátní

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

Pomocí data.table

library(data.table)

dt <- data.table(d)

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

Vytvořen na 2021-11-23 do reprex balíček (v2.0.1)

2021-11-25 13:24:16

V jiných jazycích

Tato stránka je v jiných jazycích

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