Wie mache ich eine Negativ- / Nomatch- / Invers-Suche in data.table?

Was passiert, wenn ich mit der binären Suche alle Zeilen in einer data.table auswählen möchte, die keinen bestimmten Wert in der Schlüsselvariablen enthalten? Übrigens, was ist der richtige Jargon für das, was ich tun möchte? Ist es "nojoin"? Ist es "negative Auswahl"?

DT = data.table(x=rep(c("a","b","c"),each=3), y=c(1,3,6), v=1:9)
setkey(DT,x)

Nehmen wir eine positive Auswahl für alle Zeilen vor, in denen x == "a" ist, aber die binäre Suche verwendet

DT["a"]

Das ist schön, aber ich möchte das Gegenteil davon. Ich möchte alle Zeilen, die nicht "a" sind, mit anderen Worten, wo x! = "A"

DT[x!="a"]

Das ist eine Vektorabtastung. Die obige Zeile funktioniert, verwendet jedoch Vektorabtastung. Ich möchte binär verwenden. Ich hatte erwartet, dass das Folgende funktioniert, aber leider ...

DT[!"a"]
DT[-"a"]

Die beiden oben genannten funktionieren nicht und der Versuch, mit Nomatch zu spielen, brachte mich nicht weiter.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage