Я хочу рекурсивно фильтровать фрейм данных, d
по произвольному числу условий (представленных в виде строк в другом фрейме данных z
).
Я начинаю с фрейма данных d
:
d <- data.frame(x = 1:10, y = letters[1:10])
Второй кадр данных z
содержит столбцы x1
и x2
, которые являются нижним и верхним пределами фильтрации d$x
. Этот фрейм данных z
может вырасти до произвольного числа строк.
z <- data.frame(x1 = c(1,3,8), x2 = c(1,4,10))
Я хочу вернуть все строки d
, для которых d$x <= z$x1[i]
и d$x >= z$x2[i]
для всех i
, где i = nrow(z)
.
Так что для этого игрушечного примера исключите все из 1: 1, 3: 4, 8:10 включительно.
x y
2 2 b
5 5 e
6 6 f
7 7 g