Wie wähle ich Zeilen nach zwei Kriterien in data.table in R aus
Sagen wir, ich habe ein Daten.Tabelle und ich möchten, wählen Sie alle Zeilen, wo die variable x hat den Wert b. Das ist einfach
library(data.table)
DT <- data.table(x=rep(c("a","b","c"),each=3), y=c(1,3,6), v=1:9)
setkey(DT,x) # set a 1-column key
DT["b"]
Durch die Art und Weise, es scheint, dass man einen Schlüssel, wenn der Schlüssel nicht auf x gesetzt, dann funktioniert das nicht. Durch die Art und Weise, was passieren würde, wenn ich zwei Spalten, die als Schlüssel?
Jedenfalls, es geht weiter, lasst uns sagen, dass ich wollen, wählen Sie alle Zeilen, wo die variable x war a oder b
DT["b"|"a"]
funktioniert nicht
Aber die folgenden Werke
DT[x=="a"|x=="b"]
Aber das nutzt Vektor-scan-a-la-Daten-frames. Es gilt nicht die binäre Suche. Ich denke, für kleinere Datenmengen ist es nicht egal.
Ist, was soll ich tun, oder bin ich unwissend von Daten.table-syntax?
Und noch eins. Gibt es irgendwelche Beispiele für komplexere Boolesche multi-Variablen-Auswahl (oder Teilmenge) Verfahren mit Daten.Tabelle?
Ich weiß, ich könnte immer wieder mit der Teilmenge () - Funktion, da ein Daten.Tabelle verhält sich wie eine Daten.frame, wenn es muss.
InformationsquelleAutor der Frage Farrel | 2011-12-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist ein Weg, der nur in den Sinn gekommen, nachdem ich die Frage gestellt habe und es funktioniert, aber ich weiß nicht, wie es in den benchmarks. Ich bin derzeit nicht an einem computer mit einem installierten R. ich denke, ich sollte eine cloud-Instanz. Trotzdem, ich mag die syntax
InformationsquelleAutor der Antwort Farrel
Mithilfe der
%in%
Betreiber scheint zu geben einen Faktor von 2 performance-bump. Bedenken Sie:BEARBEITEN: Hinzufügen Farrel die option
Beachten Sie, dies ist auf einem anderen computer, aber die relative Beulen sind die gleichen.
InformationsquelleAutor der Antwort Chase