Como eu faço uma pesquisa negativa / nomatch / inverse no data.table?

O que acontece se eu quiser selecionar todas as linhas em um data.table que não contêm um valor específico na variável de chave usando a pesquisa binária? A propósito, qual é o jargão correto para o que eu quero fazer? É "nojoin"? É "seleção negativa"?

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

Vamos fazer uma seleção positiva para todas as linhas em que x == "a" mas usando pesquisa binária

DT["a"]

Isso é lindo, mas eu quero o oposto disso. Eu quero todas as linhas que não são "a" em outras palavras, onde x! = "A"

DT[x!="a"]

Isso é uma varredura de vetores. A linha acima funciona, mas usa varredura vetorial. Eu quero usar binário. Eu estava esperando o seguinte para trabalhar, mas infelizmente ...

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

Os dois acima não funcionam e tentando jogar com nomatch me levou a lugar nenhum.

questionAnswers(2)

yourAnswerToTheQuestion