二分探索を使用して、キー変数に特定の値を含まない data.table 内のすべての行を選択したい場合はどうなりますか? ところで、私がやりたいことの正しい専門用語は何ですか? 「ノジョイン」ですか?「ネガティブセレクション」ですか?
DT = data.table(x=rep(c("a","b","c"),each=3), y=c(1,3,6), v=1:9)
setkey(DT,x)
x=="a" のすべての行に対して正の選択を行いますが、二分探索を使用します
DT["a"]
それは美しいですが、私はその反対が欲しいです。「a」ではないすべての行、つまり x!="a" が必要です
DT[x!="a"]
それがベクタースキャンです。上記の行は機能しますが、ベクター スキャンを使用します。バイナリーを使いたいです。私は次のように動作することを期待していましたが、残念ながら...
DT[!"a"]
DT[-"a"]
上記の2つは機能せず、nomatchで遊んでもどこにも行きませんでした。