Это было действительно мое намерение. Я использовал ответ Aramis7d, а затем закончил цепочку right_join (data). Я считаю, что это выходит так же.
я есть ситуация, когда у меня есть два фрейма данных, к которым я хотел бы присоединиться. Таблицаparams
описывает параметр для единицы измерения в терминах временных и угловых диапазонов. Таблицаdata
длиннее и содержит параметры id, time и angle.
Я хотел бы присоединиться к значению параметра изparams
когда идентификатор совпадает, а время находится в диапазоне между valid_from и valid_to и ang находится между angle_begin angle_end вdata
Таблица.
Ниже приведен пример таблиц.
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))