Конвертировать коды аэропортов в полные названия аэропортов - PullRequest
2 голосов
/ 30 апреля 2019

Мне нужно преобразовать коды аэропортов в полные названия аэропортов, например, EWR / PVG для Newark / Shanghai, используя R. Существует пакет с именем 'airportr', функция которого airport_lookup помогает преобразовывать сокращения в полные имена.

> airport_lookup("PVG", output_type = "city")
[1] "Shanghai"

Однако, если у меня несколько таких записей, как я могу преобразовать все такие разные коды одновременно.Будет ли радостно использоваться?Я довольно новичок в R. Я был бы очень признателен, если бы кто-то смог разобраться в этой проблеме.

Я предоставляю пример набора данных:

df8=data.frame("Student"= c("A", "B", "C", "D"), "Itinerary"= c("EWR/PVG", "PHL-YYZ/TPE", "GYE-BOG/MDE/JFK", "JFK/SCL"))

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

| Student |    Itinerary    |                                 Cities |
|---------|:---------------:|---------------------------------------:|
| A       |     EWR/PVG     |                        Newark/Shanghai |
| B       |   PHL-YYZ/TPE   |            Philadelphia-Toronto/Taipei |
| C       | GYE-BOG/MDE/JFK | Guayaquil - Bogota/ Rio Negro/New York |
| D       |  JFK/SCL        | New York/Santiago                      |

1 Ответ

0 голосов
/ 30 апреля 2019

Использование базы R *apply функции

> airports <- strsplit(as.character(df8$Itinerary), "\\W")
> cities <- lapply(airports, function(x){
    paste0(sapply(x, airport_lookup, output_type = "city"), collapse="-")
  })
> df8$Cities <- do.call(rbind, cities)
> df8
  Student       Itinerary                              Cities
1       A         EWR/PVG                     Newark-Shanghai
2       B     PHL-YYZ/TPE         Philadelphia-Toronto-Taipei
3       C GYE-BOG/MDE/JFK Guayaquil-Bogota-Rio Negro-New York
4       D         JFK/SCL                   New York-Santiago
...