Как скопировать значение в новом фрейме данных на основе ключевых ссылок другого фрейма данных, таких как идентификатор, начальное и конечное значение? (в R) - PullRequest
0 голосов
/ 09 марта 2020

У меня есть два набора данных о продолжительности поездки и продолжительности парковки, и я хочу указать расстояние, пройденное в поездках, в продолжительности парковки таким образом, чтобы каждое пройденное расстояние составляло go в строках продолжительности парковки, которая будет происходить после поездки. как показано на рисунке. Я хотел бы, чтобы эту задачу выполнили в R, но мне не хватает некоторых навыков, чтобы это произошло. Какие-либо предложения? Любая помощь будет оценена!

enter image description here

1 Ответ

2 голосов
/ 09 марта 2020

То, как вы формулируете свой вопрос в данный момент, похоже, что вы хотите простого объединения. Используя пакет 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 из фрейма данных поездки, поскольку вы не указали его в своем примере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...