Я знаю, что есть один способ сделать это:
library(data.table)
X = data.table(x = c(1,1,1,2,2,5,6))
Y = data.table(y = c(2,5))
X[Y, .N, on=.(x>=y), by=.EACHI]
, который должен дать:
x N
1: 2 4
2: 5 2
Но что если я захочу выполнить более сложное условие, подобное этому?
X[Y, .N, on=.(x>=y & x<=y+3), by=.EACHI]
Это не сработает, так как я получаю следующую ошибку:
Error in `[.data.table`(X, Y, .N, on = .(x >= y & x <= y + 3), by = .EACHI) :
Column(s) [y & x] not found in i
Как правильно это сделать?