R data.table
Paket bietet schnelle Untermenge von Werten basierend auf Schlüsseln.Wie kann ich die Negation eines Schlüsselwerts mit dem Paket data.table von R subsettieren?
So zum Beispiel:
set.seed(1342)
df1 <- data.table(group = gl(10, 10, labels = letters[1:10]),
value = sample(1:100))
setkey(df1, group)
df1["a"]
kehren alle Zeilen in df1 wo Gruppe == "a".
Was ist, wenn ich alle Zeilen in df1
wo group != "a"
möchte. Gibt es eine präzise Syntax dafür mit data.table
?
Aber '! =' Ist wie '==' d. H. _vector scans_. Stattdessen gibt es ein _not join_ idiom in [diese Frage] (http://stackoverflow.com/questions/7920688/non-joins-with-data-tables) und [diese Frage] (http://stackoverflow.com/ Fragen/7822138/porting-set-operations-von-rs-daten-frames-to-data-tables-how-to-identify-dupl). Diese verlinken auf eine Feature-Anfrage, um die Nicht-Join-Syntax noch einfacher zu machen. In diesem Fall wäre es "df1 [-" a "]". Das Nicht-Join-Idiom sollte schneller sein als das Vektor-Scannen. –
Ja, Matt, wie ich vermutete, verwenden die obigen Lösungen Vektor-Scans, die ich möglichst vermeiden würde. Ich habe immer noch eine Geschwindigkeitszunahme im Vergleich zu ähnlich großen Datenfeldern in meinem Kommentar bemerkt, aber ich werde herausfinden müssen, warum das so ist. In der Zwischenzeit haben Sie mir die richtigen Suchbegriffe und alternativen Formulierungen der Frage gegeben, und Sie verstehen klar, wonach ich suche. Danke für all deine harte Arbeit an diesem tollen Paket. –