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