将机场代码转换为完整的机场名称

时间:2019-04-29 21:12:01

标签: r lapply

我需要使用R将机场代码转换为完整的机场名称,例如Newark / Shanghai的EWR / PVG。有一个名为“ airportr”的程序包,其“ airport_lookup”功能有助于将缩写词转换为全名。

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

但是,如果我有多个这样的条目,那么如何一次转换所有这些不同的代码。 lapply会投入使用吗?我是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 :(得分:0)

使用R base *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