Ho una situazione come questa. Multiple data.table "rbinded".Come identificare solo le righe "non duplicate"
library(data.table)
x <- data.table(id=c(1,2,3,4),dsp=c(5,6,7,8),status=c(FALSE,TRUE,FALSE,TRUE))
y <- data.table(id=c(1,2,3,4),dsp=c(6,6,7,8),status=c(FALSE,FALSE,FALSE,TRUE))
z <- data.table(id=c(1,2,3,4),dsp=c(5,6,9,8),status=c(FALSE,TRUE,FALSE,FALSE))
w <- data.table(id=c(1,2,3,4),dsp=c(5,6,7,NA),status=c(FALSE,TRUE,FALSE,TRUE))
setkey(x,id)
setkey(y,id)
setkey(z,id)
setkey(w,id)
Bigdt<-rbind(x,y,z,w)
vorrei ottenere solo le righe non ripetute come:
id dsp status
1 6 FALSE
2 6 FALSE
3 9 FALSE
4 8 FALSE
4 NA TRUE
Così ho provato
Resultdt<-Bigdt[!duplicated(Bigdt)]
ma il risultato:
id dsp status
1 5 FALSE
2 6 TRUE
3 7 FALSE
4 8 TRUE
non corrisponde le mie aspettative. Ho provato in diversi metodi (dato che rbind non è obbligatorio), per esempio unire, unire, ecc. Il pacchetto data.table sembra potenzialmente quello che contiene la soluzione ... apparentemente. Qualche idea?
Il codice funziona bene per me (con copia da incollare da qui), Frank, scusa ma il tuo codice non fornisce il risultato previsto ... –
correct! Scusate, modifico, ma per quanto riguarda le altre linee? –
Questo è quello che ottengo: stato id dsp N 1 6 FALSE 1 2 6 FALSE 1 3 9 FALSE 1 4 8 FALSE 1 4 NA TRUE 1 –