Seite 1 von 1

unique() in Data.table

Verfasst: Mi Apr 04, 2018 12:17 pm
von Regression
Hallo Zusammen!

ich möchte in einer data.table die unique() Funktion auf eine Spalte anwenden, gruppiert mit einer anderen.
Es funktioniert soweit gut, bis auf die Tatsache, dass nur diese beiden Spalten dann ausgegeben werden, ich benötige allerdings alle Spalten.

Hierzu ein minimal Beispiel mit meinem Ansatz:

Code: Alles auswählen

a<-c(1,1,1,2,2,3,3,3)
b<-c(1,2,2,1,2,1,2,2)
c<-c(1,2,3,4,5,6,7,8)
myDT<-data.table(a,b,c)
myDT[,unique(b),a]
hier wird die Spalte c nicht mit ausgegeben:

Code: Alles auswählen

   a V1
1: 1  1
2: 1  2
3: 2  1
4: 2  2
5: 3  1
6: 3  2
was ich benötige ist:

Code: Alles auswählen

a V1 c
1 1 1
1 2 2
2 1 4
2 2 5
3 1 6
3 2 7
Hat jemand eine Idee?

Vielen Dank im Voraus!

Re: unique() in Data.table

Verfasst: Mi Apr 04, 2018 1:10 pm
von jogo
Hallo Regression,

Code: Alles auswählen

library("data.table")
myDT <- data.table(a=c(1,1,1,2,2,3,3,3), b=c(1,2,2,1,2,1,2,2), c=c(1,2,3,4,5,6,7,8))
unique(myDT, by=c("a", "b"))   ## oder myDT[!duplicated(myDT, by=c("a", "b"))]
Gruß, Jörg

Re: unique() in Data.table

Verfasst: Mi Apr 04, 2018 1:16 pm
von Regression
Super!
Besten Dank!