Gibt es eine idiomatische Methode, um die eindeutigen Schlüssel einer Datentabelle zu erhalten, wenn sie als einzelne Spalte angegeben wird?Abrufen der von einer data.table verwendeten (eindeutigen) Schlüssel
Ich arbeite über eine Reihe von Datensätzen mit jeweils etwa 10 Millionen Zeilen und möchte Funktionsaufrufe/Overhead auf ein Minimum reduzieren. Mit dem unten Spielzeug Beispiel
require(data.table)
d_test<-data.table(id=c(1,1,2,7,2,3,5),
amt=c(100,200,400,600,231,-100,-200),
pay=c(-2,rep(1:3,2)),
key="id")
der Ausgang Ich suche bin entspricht, entweder als Vektor oder data.table,
unique(d_test[,.(id)])
oder unique(d_test$id)
das heißt, c(1,2,3,5,7)
Ich denke, der idiomatische Weg könnte 'eindeutig sein (d_test [, key (d_test), mit = FALSE])', aber für den speziellen Fall eines einspaltigen Schlüssels, Ihre Ansätze und Georges (in der Antwort unten) scheint in Ordnung zu sein. Beachten Sie, dass der Standardwert von 'unique.data.table'' 'by = key (x)' ist. Siehe '? Unique.data.table' – Frank