Unir tabelas com base em vários intervalos em R

Tenho uma situação em que tenho dois quadros de dados aos quais gostaria de ingressar. A mesaparams descreve o parâmetro para uma unidade em termos de faixas de tempo e ângulo. A mesadata é mais longo e contém parâmetros de id, tempo e ângulo.

Gostaria de juntar o valor param deparams quando a correspondência de id e o tempo estão no intervalo entre valid_from e valid_to e ang está entre angle_begin angle_end nodata mesa.

Abaixo está um exemplo das tabelas.

params <- data.frame(id = 1:4
                    ,valid_from  = 1
                    ,valid_to    = c(10, 20, 30, 40)
                    ,angle_begin = c(120, 90, 0, 50)
                    ,angle_end   = c(180, 170, 160, 150)
                    ,param       = c("A", "B", "C", "D"))

data <- data.frame(id = rep(1:4, each=100)
                  ,time = rep(seq(from = 0.5, to = 50, by = 0.5), 4)
                  ,ang  = rep(runif(100, 0, 360), 4))

questionAnswers(3)

yourAnswerToTheQuestion