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

标签 r lapply

我需要将机场代码转换为完整的机场名称,例如,使用 R 将 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                      |

最佳答案

使用 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

关于r - 将机场代码转换为完整的机场名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55910874/

相关文章:

r - 使用 cbind 合并矩阵并匹配 : name of the last column is dropped

R:使用 lapply 将 data.frame 中的值用作列表的子集元素

r - 根据R中另一个向量中定义的数字位置查找向量的元素

r - 如何按组仅保留特定列中具有最低和最高值的行?

rcpp函数构造一个函数

将 "flipped"表正确读入 data.frame

从 lapply 返回匿名函数 - 出了什么问题?

r - 如何增加矢量大小?

r - 如何仅从 .R 文件导入函数而不执行整个文件

r - 如何使这个嵌套 for 循环工作得更快