Subconfigurando uma tabela de dados por intervalo, usando a pesquisa binária
Como você define um subconjunto de uma tabela de dados por um intervalo numérico, com a intenção de usar a pesquisa binária?
Por exemplo:
require(data.table)
set.seed(1)
x<-runif(10000000,min=0,max=10)
y<-runif(10000000,min=0,max=10)
DF<-data.frame(x,y)
DT<-data.table(x,y)
system.time(DFsub<-DF[DF$x>5 & DF$y<7,])
# user system elapsed
# 1.529 0.250 1.821
#subset DT
system.time(DTsub<-DT[x>5 & y<7])
# user system elapsed
#0.716 0.119 0.841
O item acima não usa uma chave (verificação em vetor) e a velocidade não é tão dramática. Qual é a sintaxe para definir um intervalo numérico de uma tabela de dados, usando a pesquisa binária? Não consigo encontrar um bom exemplo na documentação; seria útil se alguém pudesse fornecer um exemplo usando a tabela de dados de brinquedos acima.
Edição: Esta pergunta é semelhante, mas ainda não demonstra como subconjunto por um intervalo:data.table: varredura de vetor v pesquisa binária com colunas numéricas - setkey super lento