у меня есть кадры два данных:фильтра на основе нескольких условий в другом кадре данных
df
где в течение одногоx
Есть несколько значенийy
matchDf
, который определяет ограничения Я хотел бы использовать для фильтрацииdf
Я хотел бы, чтобы фильтровать только те строки, где y
ниже или равна заданной max_y
что x
попадает в интервал <x_from, x_to)
Есть ли способ сделать это в R (без SQL, который я использовал ниже)?
df <- read.table(header = TRUE, text = '
x y
100 0.1
100 0.2
100 0.3
250 0.2
250 0.3
250 0.4
375 0.2
375 0.25
375 0.35
420 0.15
420 0.16
420 0.17
500 0.23
500 0.55')
matchDf <- read.table(header = TRUE, text = '
x_from x_to max_y
0 300 .2
300 500 .3
500 99999 .5
')
library(sqldf)
sqldf('select a.*
from
df a
join matchDf b on (a.x >= b.x_from
and a.x < b.x_to
and a.y <= b.max_y)'
)