unique() in Data.table

Wie rufe ich R-Funktionen auf, wie selektiere ich Daten, ich weiß nicht genau ....

Moderatoren: EDi, jogo

Antworten
Regression
Beiträge: 76
Registriert: Mo Jan 15, 2018 9:57 am

unique() in Data.table

Beitrag 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!
jogo
Beiträge: 2086
Registriert: Fr Okt 07, 2016 8:25 am

Re: unique() in Data.table

Beitrag 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
Regression
Beiträge: 76
Registriert: Mo Jan 15, 2018 9:57 am

Re: unique() in Data.table

Beitrag von Regression »

Super!
Besten Dank!
Antworten