Сопоставьте вылеты и прибытия, чтобы восстановить траектории - PullRequest
0 голосов
/ 25 мая 2020

Я пытаюсь восстановить путешествия по воздуху, которые определяются исходной точкой ( начало ), пунктом назначения ( конец ), а также взлетами и посадками (различной продолжительности), например:

  start end takeoff landing
1     A   C       A       E
2     A   C       E       C
3     A   C       A       C
4     B   C       B       E
5     B   C       E       C

data.frame(
  start = c("A", "A", "A", "B", "B"),
  end = c("C", "C", "C", "C", "C"),
  takeoff = c("A", "E", "A", "B", "E"),
  landing = c("E", "C", "C", "E", "C")
  )

Вот, например, три самолета:

  • Тот, который взлетает в A, останавливается в E и приземляется в C

  • Тот, который взлетает в точке A и приземляется прямо в точке C; как start и взлет значения равны, а end и посадка значения также равны

  • Тот, который взлетает в точке B, делает остановку в точке E и приземляется в точке C

Я хотел бы добавить столбец, который суммирует путь, пройденный самолетами, таким образом, чтобы :

  start end takeoff landing       path
1     A   C       A       E c(A, E, C)
2     A   C       E       C c(A, E, C)
3     A   C       A       C    c(A, C)
4     B   C       B       E c(B, E, C)
5     B   C       E       C c(B, E, C)

Первое, что нужно сделать, это посмотреть на строки с одинаковыми начальными и конечными значениями, но затем я застрял, чтобы найти способ сопоставления последовательных значений взлета и посадки относительно друг друга, который свяжите начальную и конечную точки.

Спасибо за вашу помощь!

PS: конечно, взлеты и посадки не обязательно сортируются

Изменить: пример с большим количеством остановок:

  start end takeoff landing          path
1     A   C       A       E c(A, E, D, C)
2     A   C       E       D c(A, E, D, C)
3     A   C       D       C c(A, E, D, C)
4     A   C       A       C       c(A, C)
5     B   C       B       E    c(B, E, C)
6     B   C       E       C    c(B, E, C)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...