Your example is not reproducible. I recommend to read how to ask SO questions on R tag to make the R tag on SO a solid knowledge base rather than fast and much more temporal Q&A.
Sorry for off-topic.
You can potentially get a significant speed-up when using data.table index. It currently requires to filter only on single variable. In your case you would look like:
set2key(data, x)
ix = data[x == 1, which = TRUE]
iy = data[y > -6, which = TRUE] # this will not use index (yet)!
data[union(ix, iy), ...]
Use options("datatable.verbose"=TRUE)
to ensure you are using indexes.
The code is not reproducible due to lack of sample of data. So I cannot provide any benchmark, which may be valuable because potential speed-up depends on the data, and may results in slow down instead.