То, как вы формулируете свой вопрос в данный момент, похоже, что вы хотите простого объединения. Используя пакет tidyverse
:
library(tidyverse)
trip <- tibble(ID= c("car1","car1","car2","car2"),
start_trip = c("6:30","16:15", "07:05","15:30"),
end_trip = c("7:00","16:45","07:40","16:05"),
trip_distance = c(20,30,25,20))
parking <- tibble(ID= c("car1","car1","car1","car2","car2","car2"),
end = c("6:30","16:15","0:00", "07:05","15:30","0:00"),
start = c("0:00","7:00","16:45","0:00","07:40","16:05"))
parking %>% left_join(trip %>% select(-start_trip), by = c("start" = "end_trip", "ID"))
, что приведет к
ID end start trip_distance
<chr> <chr> <chr> <dbl>
1 car1 6:30 0:00 NA
2 car1 16:15 7:00 20
3 car1 0:00 16:45 30
4 car2 07:05 0:00 NA
5 car2 15:30 07:40 25
6 car2 0:00 16:05 20
Таким образом, я сопоставляю время от кадра данных поездки с временами кадра данных парковки (при условии, что конец поездка приводит к тому же времени парковки!). Кроме того, идентификатор автомобиля должен совпадать. Если нет совпадения, расстояние будет NA. Я удалил start_trip из фрейма данных поездки, поскольку вы не указали его в своем примере.